Адаптер KeyCloak Node.js дает страницу KeyCloak, не найденную для клиентов publi c, и отказывает в доступе для клиентов только на предъявителя - PullRequest
0 голосов
/ 10 января 2020

Когда я настраиваю клиента publi c в Keycloak, задаю все необходимые поля для моей локальной песочницы

  • Тип доступа: publi c
  • Действительные URI перенаправления: http://localhost: 3000 / *
  • Веб-происхождение: *

Я сохраняю OID C JSON Keycloak со вкладки установки в локальный keycloak.json файл, добавьте мое приложение Node.js и нажмите http://localhost: 3000 / защищено , в моем браузере появится следующая страница:

enter image description here

** URL содержит дополнительные / после auth-server-url. Вот мой keycloak.json:

{
  "realm": "keycloak-node-monolith",
  "auth-server-url": "http://localhost:8180/auth/",
  "ssl-required": "external",
  "resource": "keycloak-node-monolith-public",
  "public-client": true,
  "confidential-port": 0
}

Проблема менее очевидна в случае клиентов только для канала-носителя, потому что нет аутентификации перенаправления и вы не видите URL.

В случае клиентов только с однонаправленным каналом все, что вы видите, - это «Отказано в доступе», даже если вы отправляете на сервер нужные токены однонаправленного канала.

Причина проблемы root та же, оба случая: Keycloak-connect добавляет дополнительно / после auth-server-url, поэтому вам нужно удалить / в вашем keycloak.json.

1 Ответ

0 голосов
/ 10 января 2020

Причина root в том, что keycloak-connect добавит дополнительные / после auth-server-url в keycloak.json.

Это означает, что вы не можете использовать OID * Keycloak Keycloak * JSON в том виде, в каком вы скопировали его из формы клиентов из Keycloak, вы должны удалить конечный / из auth-server-url. Это работает для меня:

{
  "realm": "keycloak-node-monolith",
  "auth-server-url": "http://localhost:8180/auth",
  "ssl-required": "external",
  "resource": "keycloak-node-monolith-public",
  "public-client": true,
  "confidential-port": 0
}

Это раздражает, если вы создаете сценарий использования только для носителя, потому что вы не видите URL-адреса. Мне потребовалось время, чтобы решить это. Я нашел решение после того, как построил клиент publi c и увидел, что происходит.

Проблема зарегистрирована в трекере проблем Keycloak с приоритетом Critical и, как ожидается, будет выпущена с 9.0.0 , Вы можете увидеть проблему здесь https://issues.redhat.com/browse/KEYCLOAK-12428.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...