密钥斗篷API出现403错误

时间:2020-03-30 12:19:16

标签: realm keycloak

我正在尝试使用Keycloak API(通过keycloak-admin库在节点中),但是我系统地收到错误403。

我通过图书馆成功获得了访问令牌;通过调用/auth/realms/master/protocol/openid-connect/token(在主领域)。

当我查看令牌内部时,我似乎具有能够查询用户的正确角色:

{ "jti": "xx-..", "exp": 1585561478, "nbf": 0, "iat": 1585561418, "iss": "https://auth-mycompany.com/auth/realms/master", "aud": "mycompany-realm", "sub": "xx-..", "typ": "Bearer", "azp": "admin-cli", "auth_time": 0, "session_state": "xx-..", "acr": "1", "resource_access": { "mycompany-realm": { "roles": [ "view-users", "query-groups", "query-users" ] } }, "scope": "email profile", "email_verified": true, "name": "myname", "preferred_username": "myname", "given_name": "my name", "email": "myemail@mycompany.com" }

但是,当我在https://auth-mycompany.com/auth/admin/realms/master/usershttps://auth-mycompany.com/auth/admin/realms/mycompany/users上进行GET时;我收到403错误。

也许它与我的令牌的“ aud”相关联?查询主域时,为什么为什么获得带有“ aud”:“ mycompany-realm”的令牌?

感谢您的帮助。

1 个答案:

答案 0 :(得分:-1)

我最终意识到这是由于我为管理端点实现了Port Restriction。如文档中所述,所有以/auth/admin开头的端点都得到一个403响应。而是可以通过Internet上不可访问的另一个端口(例如9991)访问这些端点。

我为解决此问题所做的工作:由于我的 Nodejs 服务和密钥斗篷服务器都在同一 kubernetes 集群上运行,因此我更改了authUrl服务名称为http://servicename.namespace.svc.cluster.local:9991/auth

的keycloak服务器的信息