403 ошибки с API Keycloak - PullRequest
       32

403 ошибки с API Keycloak

0 голосов
/ 30 марта 2020

Я пытаюсь использовать API Keycloak (в узле через библиотеку 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" }

Однако когда я делаю GET на https://auth-mycompany.com/auth/admin/realms/master/users или https://auth-mycompany.com/auth/admin/realms/mycompany/users; Я получаю 403 ошибки.

Может, это связано с "одом" моего токена? Почему я получаю токен с "aud": "mycompany-realm", когда я запрашиваю мастер-область?

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 30 марта 2020

В конце концов я понимаю, что это связано с тем, что я реализовал Ограничение порта для конечных точек администратора. Как описано в документации, все конечные точки, начинающиеся с /auth/admin, получают ответ 403. Вместо этого эти конечные точки доступны через другой порт (например, 9991), который недоступен через inte rnet.

Что я сделал, чтобы исправить свою проблему: поскольку и моя Nodejs служба, и мой сервер keycloak работают в одном кластере kubernetes , я изменяю authUrl моего сервера keycloak с именем службы http://servicename.namespace.svc.cluster.local: 9991 / auth

...