Keycloak Gatekeeper 不会阻止任何请求



我正在尝试使用keycloak + keycloak-gatekeeper在个人API中进行授权:api.mydomain.com。 到目前为止,我已经完成了:

  1. 在钥匙斗篷中创建了一个领域MY-REALM,钥匙斗篷的URL是 https://auth.mydomain.com
  2. 在同一
  3. 领域创建了一个confidential clientAuthorization EnabledONValid redirect URIS: https://api.mydomain.com/*
  4. 已创建用户
  5. 在我的服务器内部,https://api.mydomain.com 指向 127.0.0.1:5000
  6. 127.0.0.1:5001 是"真正的 API">
  7. 使用以下 config.yaml 配置了 keycloak-gatekeeper:
client-id: <MY-API-CLIENT-ID>
client-secret: <SECRET>
discovery-url: https://auth.mydomain.com/auth/realms/<MY-REALM>
enable-default-deny: true
listen: 127.0.0.1:5000
upstream-url: http://127.0.0.1:5001
verbose: true
enable-logging: true
enable-security-filter: true
enable-json-logging: true

现在,如果我在浏览器中访问 https://api.mydomain.com 我会被重定向到 https://auth.mydomain.com,要求输入用户和密码。 我提供了在第 3 点中创建的用户,并按预期再次重定向到 https://api.mydomain.com。 到目前为止一切顺利。

问题出在授权部分的配置上: 在 keycloak ->Clients-><MY-API-CLIENT-ID>->Authorization->Resources中,我将默认策略编辑为拒绝resource/*中的每个请求,但我可以像以前一样访问 https://api.mydomain.com 中的每个资源 (URL)。

我试过:

  1. 按领域角色限制(只有管理员可以访问特定资源)。
  2. 按范围限制。
  3. 否定策略中的逻辑。
  4. 按客户端角色限制。
  5. 祈祷。
  6. 哭。

当然,我已经在钥匙斗篷的Evaluate选项卡中尝试了上述所有组合,并且有效地在这里模拟策略显示DENY

那我做错了什么?顺便说一下,每次请求后,这是来自钥匙斗篷守门人的日志:

{"level":"debug","ts":1554936731.4022436,"caller":"keycloak-gatekeeper/middleware.go:337","msg":"access permitted to resource","access":"permitted","email":"testmail@mail.com","expires":201.59779997,"resource":"/*"}

任何想法将不胜感激。

Gatekeeper 不使用Keycloak -> Clients -> <MY-API-CLIENT-ID> -> Authorization -> Resources

它有自己的资源配置,例如:

resources:
- uri: /admin/*
methods:
- GET
roles:
- openvpn:vpn-user
- openvpn:commons-prod-vpn

文档:https://www.keycloak.org/docs/latest/securing_apps/index.html#configuration-options

相关内容

  • 没有找到相关文章

最新更新