Тот же URI перенаправления для нескольких провайдеров в OIDC - PullRequest
0 голосов
/ 19 февраля 2019

Я хочу, чтобы мое приложение проверяющей стороны (RP) могло подключаться к любому провайдеру oidc.Это означает, что пользователи смогут настроить любого провайдера идентификации, который поддерживает openid connect.

Поэтому я хочу, чтобы в моем приложении RP было одно URI перенаправления, например

http://www.example.com/auth/callback

Так что все IDP будут вызывать один и тот же код в потоке кода авторизации.

Как РП будет различать каждого ВПЛ?и знаете, какой IDP вызывать для завершения потока oauth?

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете использовать параметр состояние запроса на авторизацию:

state Непрозрачное значение, используемое для поддержания состояния между запросом и обратным вызовом ...

Значение состояния будет содержать как случайную часть, так и идентификатор аутентификатора.Например, "google-A41DsGDm".Поставщик аутентификации должен возвращать то же значение состояния с URL перенаправления, содержащим код авторизации.Таким образом, ваш обработчик /auth/callback будет знать, какую конечную точку /token провайдера аутентификации следует вызывать для получения токенов (после проверки случайной части значения состояния).

Для полноты, если вы просто хотите использоватьодин обработчик бэкэнда, вы можете отобразить все URI, начинающиеся с /auth/callback, на обработчик и принять следующий параметр пути в качестве идентификатора поставщика аутентификации.Например /auth/callback/google?code=....

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