#oauth-2.0 #jwt #openid-connect #micronaut #callbackurl
#oauth-2.0 #jwt #OpenID-connect #micronaut #callbackurl
Вопрос:
У меня есть веб-приложение Micronaut, которое использует OpenID / OAuth2 / JWT. В некоторых средах все работает очень хорошо с этой настройкой, однако в других средах происходит сбой аутентификации на этапе, на котором вызывается настроенный callback-uri. По какой-то причине в этих средах генерируется URL-адрес «http» вместо «https». Это приводит к сбою вызова, поскольку мое приложение доступно только через https.
Я понятия не имею, почему он пытается использовать http в первую очередь, однако, если бы я смог указать callback-uri в качестве абсолютного / полного URL, тогда я, вероятно, смог бы обойти эту аномалию в этих средах.
Пример конфигурации yml, которую я использую:
application:
name: xxxxx
security:
authentication: idtoken
oauth2:
enabled: true
clients:
azure:
client-id: ${OAUTH_CLIENT_ID}
client-secret: ${OAUTH_CLIENT_SECRET}
openid:
issuer: https://login.microsoftonline.com/xxx
callback-uri: ${OAUTH_CALLBACK_URI}
redirect:
login-success: ${LOGIN_SUCCESS_URL}
logout: '/logout-handler/logout-success'
endpoints:
logout:
get-allowed: true
token:
jwt:
cookie:
cookie-same-site: none
cookie-secure: true
В этой конфигурации, если я установлю переменную среды callback-uri (OAUTH_CALLBACK_URI) в /oauth / callback / azure, например, тогда полный URL, который, по-видимому, используется, будет http://xxxxx/oauth/callback/azure . Однако, если я использую полный URL для переменной среды, например https://xxxxx/oauth/callback/azure тогда полный URL, который он использует, по-прежнему добавляет это, в отличие от использования его в качестве абсолютного URL, т. Е. http://xxxxx/https://xxxxx/oauth/callback/azure .
Возможно ли указать этот uri как абсолютный и не добавлять его, как указано выше, эффективно дублируя его?
Комментарии:
1. Я задавал аналогичный вопрос в Micronaut gitter: gitter.im/micronautfw/questions?at=5fc4e66c223b350d80e5315e . Получил ответ от Kleeh: gitter.im/micronautfw/questions?at=5fc4ebd8afc2922cf2ca0bc0 . Тем не менее, я до сих пор не нашел ни одного решения.
Ответ №1:
Хорошие новости. Это было исправлено в micronaut-security 2.3.4https://github.com/micronaut-projects/micronaut-security/pull/644