#keycloak #keycloak-rest-api
#keycloak #keycloak-rest-api
Вопрос:
Мы хотели бы, чтобы пользователи проходили аутентификацию в приложении Slack, предоставляя их текущий JWT Keycloak в качестве процедуры одноразовой аутентификации. Это позволило бы нам связать их идентификатор пользователя Slack с идентификатором пользователя Keycloak.
Однако я не могу найти какую-либо конечную точку, такую как GetCallerIdentity AWS, в Keycloak. Я просмотрел документы, и самое близкое, что я могу найти, — это идентификационный токен, упомянутый здесь . Однако я ничего не могу найти о том, как разгадать этот идентификационный токен, чтобы безопасно получить информацию о его владельце.
Кто-нибудь может указать мне правильное направление?
Спасибо!
Ответ №1:
Open ID Connect определяет конечную точку userinfo, которая похожа на конечную точку AWS GetCallerIdentity. Но для этого требуется запустить запрос. Я бы предпочел прочитать данные пользователя из токена.
Стандартные библиотеки JWT (OIDC) поддерживают декодирование токенов. Токен доступа / идентификатора состоит из 3 частей: заголовок, полезная нагрузка, подпись. Вы можете использовать декодирование base64 в части полезной нагрузки, и вы получите json с данными пользователя. Конечно, правильная реализация также прочитает заголовок, чтобы получить используемый алгоритм, и он проверит подпись токена с использованием открытого ключа и алгоритма IdP. В противном случае кто-то может подделать токен.
https://jwt.io/#debugger-io обеспечивает приятный визуальный интерфейс, который поможет вам понять, а также расшифровать структуру токена:
Имейте в виду: то, что возвращается в ответе userinfo, зависит от конфигурации клиента OIDC в Keycloak
Комментарии:
1. Спасибо! Это очень полезно, это именно то, что мне нужно было знать. Я ценю это.