Вставьте OIDC IDP в существующее соединение SP SAML - PullRequest
0 голосов
/ 24 октября 2019

В настоящее время у меня есть SP, который использует провайдера идентификации SAML. Он также поддерживает вход пользователей непосредственно в SP. Пользователь может войти непосредственно или пользователь может начать с SP и быть перенаправлен к провайдеру идентификации SAML для аутентификации.

Я планирую преобразовать SP для использования OIDC и IdSrv4 и вообще не иметь управляемых учетных данных SP. Я хотел бы по-прежнему поддерживать SAML-провайдера, но в идеале через новый IIDP OIDC. Как правильно добавить этот новый IIDP OIDC в ​​поток SAML? Должен ли я:

  1. Попросить SP и SAML связаться, а затем передать ответ SAML на IdP для перевода (это кажется неправильным и открытым для злоупотребления)
  2. Переадресация SP на IdP OIDCс некоторым контекстом, чтобы знать, чтобы перейти к SAML. Затем OIDC IdP обрабатывает ответ SAML и проходит через обычные потоки OIDC в ​​SP.
    1. Как лучше всего указывать IdP использовать (перенаправлять) определенный IdP SAML в определенных контекстах и ​​запрашивать кредиты OIDC IdP в других контекстах?
  3. Keep SPиспользуя SAML IdP, а также использовать OIDC IdP?
  4. Что-то еще?

1 Ответ

1 голос
/ 24 октября 2019

Вопрос 1 :

Попросите SP и SAML связаться, а затем передать ответ SAML на IdP для перевода (это кажется неправильным и открытым для злоупотребления)

Ответ :

OIDC и SAML - это два разных протокола объединения удостоверений, которые позволяют стороннему поставщику удостоверений предоставлять услуги аутентификации для веб-приложения проверяющей стороны.

SAML SPможет только посылать запрос аутентификации SAML в SAML IdP (Identity Provider), поскольку IIDP OIDC НЕ может декодировать запрос аутентификации SAML.

Вопрос 2 : SP должен перенаправить на OIDC IdP с некоторым контекстом, который необходимо знатьпойти в SAML. Затем OIDC IdP обрабатывает ответ SAML и проходит через обычные потоки OIDC к SP.

What is best practice to tell IdP to use (redirect to) a certain SAML IdP in certain contexts and prompting for OIDC IdP creds in other contexts?

Ответ :

OIDC IdP НЕ может декодировать запрос аутентификации SAML, поскольку OIDCи SAML - это два разных протокола.

Вопрос 3 : Сохранить SP с использованием SAML IdP, а также использовать OIDC IdP?

Ответ :

Да. Вы можете сохранить SP с помощью SAML IdP, а также развернуть OIDC RP (Проверяющую сторону) для использования OIDC IdP.

(1) Поставщик удостоверений может быть оснащен OIDC IdP (Поставщик удостоверений) и SAML IdP для поддержки протоколов OIDC и SAML.

Например, мы разработали систему аутентификации и авторизации с нулевым паролем в качестве провайдера идентификации для поддержки SAMLOIDC, OAuth и WS-Fed, то есть Система аутентификации и авторизации с нулевым паролем может обеспечить идентификацию / федерацию идентификации для любого веб-приложения, оснащенного либо SAML SP, OIDC RP, OAuth RP,или WS-Fed RP.

(2) Веб-приложение проверяющей стороны может быть оснащено OIDC RP (проверяющая сторона) и SAML SP (поставщик услуг) для поддержки протоколов OIDC и SAML.

Например, в качестве веб-приложения проверяющей стороны Openstack можно настроить как SAML SP или OIDC RP для связи с SAML IdP или OIDC IdP r. соответственно.

Официальная ссылка Openstack Настройка Keystone для Federation содержит инструкции по настройке Openstack в качестве SAML SP или OIDC RP.

Вопрос 4 :

Что-то еще?

Разрешение :

Страница входа в ваше веб-приложение может содержать две кнопки для Вход в OIDC и SAML login соответственно.

(1) Нажмите OIDC login , чтобы перенаправить пользователя на OIDC API вашего провайдера идентификации.

OIDC API вашего провайдера идентификации запросит пользователя предоставить свои учетные данные для аутентификации, такие как имя пользователя / пароль.

После того, как пользователь прошел аутентификацию, он будет перенаправлен обратно на OIDC API вашего веб-приложения.

Наконец пользователь войдет в ваше веб-приложение.

(2) Нажмите кнопку SAML login , чтобы перенаправить пользователя на API SAML вашего провайдера идентификации.

SAML API вашего провайдера идентификации запросит пользователя предоставить свои учетные данные для аутентификации, такие как имя пользователя / пароль.

После того, как пользователь будет аутентифицирован, пользователь будет перенаправлен обратно на SAMLAPI вашего веб-приложения.

Наконец пользователь войдет в ваше веб-приложение.

Дополнительный вопрос :

Я пытаюсь сделать IIDP OIDC SP для провайдера SAML, чтобы все мои RP OIDC не обязательно были SP SAML. Есть ли распространенный способ справиться с этим?

Я стараюсь, чтобы мои клиентские приложения (RP) не полагались на SAML. Но если IdP может сделать запрос SAML на основе этого ответа authn, создается впечатление, что OIDC может затем предоставить ответ auth OIDC.

Answer :

(1) Внедрение функции SAML SP в IIDP OIDC (т. Е. Создание IIDP OIDC в ​​качестве SAML SP для IdP SAML) является дорогостоящим решением.

(I) IIDP OIDC отправляет запрос аутентификации SAML в IdP SAML

(II) IdP OIDC декодирует ответ SAML из IdP SAML

(III) IdP OIDC преобразует утверждение SAML в токен OIDC (т. е. преобразует ответ SAML в ответ OIDC, который может быть декодирован с помощью OIDC RP)

RFC 7521 Assertion Framework для аутентификации и авторизации клиента OAuth 2.0 и RFC 7522 Язык разметки утверждений безопасности(SAML) 2.0 Профиль для клиентских авторизаций и авторизации OAuth 2.0 поддержка профиля носителя SAML 2 с потоком авторизационных грантов.

Микрофокус предоставляет инструкцию для Обмен SAML 2 с токеном доступа OAuth .

WSO2 также предоставляет инструкцию для Обмен токенов носителя SAML2 с OAuth2 - расширение SAMLТип предоставления .

(2) Экономически эффективным решением является

(I). На веб-сервере размещаются OIDC IdP и SAML IdP, а затем используется HAProxy для настройки OIDC IdP иSAML IdP для использования поддоменов, например, oidcidp.your-domain.com и samlidp.yourdomain.com

OIDC IdP и SAML IdP могут использовать одно и то же хранилище данных или репозиторий данных, например OpenLDAP, для аутентификации имени пользователя / пароля.

(II) OIDC RP обменивается данными с IdP OIDC, а SAML SP обменивается данными с IdP SAML.

(3) Другое экономически эффективное решение описывается решением вопроса 4.

Ваш провайдер идентификации использует OIDC IdP API и ** SAML IdP API "для связи с OIDC RP и SAML SP соответственно.

...