Сгенерируйте токен JWT в Keycloak и получите открытый ключ для проверки токена JWT на сторонней платформе - PullRequest
0 голосов
/ 26 февраля 2019

Существует конечная точка для внутреннего сервера, которая выдает JSON-ответ на команду ping и защищена Apigee Edge Proxy .В настоящее время эта конечная точка не имеет защиты, и мы хотим внедрить проверку подлинности на основе токенов только для всех клиентов, выполняющих запрос.Все клиенты, выполняющие запросы к API, будут отправлять этот токен JWT в Авторизационный носитель , а Apigee Edge будет использоваться для проверки токена JWT.

Как использовать Keycloak для генерации этого токена JWT?

Кроме того, Apigee требуется открытый ключ из источника токена JWT (сервер, который подписал токен JWT, в этом случае, я полагаю, этоKeycloak).Итак, мое второе сомнение: пока я использую Keycloak для генерации токена JWT, как получить открытый ключ, с помощью которого сервер будет проверять, является ли токен действительным?

1 Ответ

0 голосов
/ 05 марта 2019

Наконец-то я смог найти ответ на этот вопрос из этой средней статьи .Все шаги, которые я упомянул ниже, имеют подробное описание в статье (см. Шаги с 1 по 9 для части токена, другие шаги относятся к приложению Spring Boot), но я хотел бы дать краткий обзор этих в отношении моего вопроса.

Создание токена JWT с помощью KeyCloak

  1. Установите и запустите сервер KeyCloak и перейдите к конечной точке (например, http://localhost:8080/auth). Войдите в систему с использованием начального имени администратора и пароля (имя пользователя =admin, пароль = admin).
  2. Создание области и клиента с openid-connect в качестве Client Protocol.
  3. Создание пользователей, ролей и сопоставление роли клиента для пользователя.
  4. Предполагая, что сервер находится на localhost, посещение http://localhost:8080/auth/realms/dev/.well-known/openid-configuration дает подробную информацию обо всех конечных точках безопасности
  5. http://localhost:8080/auth/realms/dev/protocol/openid-connect/token отправка запроса POST с действительными данными на этот URL дает JWTtokenс.

Получение открытого ключа сервера KeyCloak

  • Переход на Realm Settings и нажатие на Public key всплывает с открытым ключом сервера для этогоЦарство. Обратитесь к это изображение для лучшего понимания.
  • Добавьте -----BEGIN PUBLIC KEY----- и добавьте -----END PUBLIC KEY----- к этому скопированному открытому ключу, чтобы использовать его где угодно для проверки токена JWT.Ваш открытый ключ должен наконец выглядеть примерно так:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhAj9OCZd0XjzOIad2VbUPSMoVK1X8hdD2Ad+jUXCzhZJf0RaN6B+79AW5jSgceAgyAtLXiBayLlaqSjZM6oyti9gc2M2BXzoDKLye+Tgpftd72Zreb4HpwKGpVrJ3H3Ip5DNLSD4a1ovAJ6Sahjb8z34T8c1OCnf5j70Y7i9t3y/j076XIUU4vWpAhI9LRAOkSLqDUE5L/ZdPmwTgK91Dy1fxUQ4d02Ly4MTwV2+4OaEHhIfDSvakLBeg4jLGOSxLY0y38DocYzMXe0exJXkLxqHKMznpgGrbps0TPfSK0c3q2PxQLczCD3n63HxbN8U9FPyGeMrz59PPpkwIDAQAB
-----END PUBLIC KEY-----

Проверка токена на сторонней платформе

  • jwt.io - этоотличный сайт для проверки JWTtokens.Все, что мне нужно было сделать, это вставить в него токен и открытый ключ.Прочитайте введение на сайте здесь , чтобы узнать больше о проверке токенов.
...