Различия между SSO, инициированным SP, и SSO, инициированным IDP

107

Может ли кто-нибудь объяснить мне, в чем заключаются основные различия между SSO, инициированным SP, и SSO, инициированным IDP , включая то, что было бы лучшим решением для реализации единого входа в сочетании с ADFS + OpenAM Federation?

PBHLE
источник
2
Чтобы прояснить для всех, кто плохо знаком с концепцией единого входа: SP = поставщик услуг (система, которую пользователь хочет использовать) и IdP = идентификатор поставщика (система, которая аутентифицирует пользователя)
Seafish

Ответы:

72

В IDP Init SSO (Unsolicited Web SSO) процесс объединения инициируется IDP, отправляющим незапрашиваемый ответ SAML поставщику услуг SP. В SP-Init SP генерирует AuthnRequest, который отправляется IDP в качестве первого шага в процессе федерации, а затем IDP отвечает ответом SAML. IMHO ADFSv2 поддержка SAML2.0 Web SSO SP-Init сильнее, чем его поддержка IDP-Init re: интеграция со сторонними продуктами Fed (в основном вращается вокруг поддержки RelayState), поэтому, если у вас есть выбор, вы захотите использовать SP- Init, поскольку это, вероятно, облегчит жизнь с ADFSv2.

Вот несколько простых описаний системы единого входа из Руководства по началу работы с PingFederate 8.0, которые вы можете просмотреть и которые тоже могут помочь - https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html

Ян
источник
81

SSO, инициированный IDP

Из документации PingFederate: - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

В этом сценарии пользователь входит в систему IdP и пытается получить доступ к ресурсу на удаленном сервере SP. Утверждение SAML передается SP через HTTP POST.

Этапы обработки:

  1. Пользователь вошел в систему IdP.
  2. Пользователь запрашивает доступ к защищенному ресурсу SP. Пользователь не вошел на сайт SP.
  3. При желании IdP извлекает атрибуты из хранилища пользовательских данных.
  4. Служба SSO IdP возвращает браузеру HTML-форму с ответом SAML, содержащим утверждение аутентификации и любые дополнительные атрибуты. Браузер автоматически отправляет HTML-форму обратно в SP.

SSO, инициированный SP

Из документации PingFederate: - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

В этом сценарии пользователь пытается получить доступ к защищенному ресурсу непосредственно на веб-сайте SP без входа в систему. У пользователя нет учетной записи на сайте SP, но есть федеративная учетная запись, управляемая сторонним IdP. SP отправляет запрос аутентификации IdP. И запрос, и возвращенное утверждение SAML отправляются через браузер пользователя через HTTP POST.

Этапы обработки:

  1. Пользователь запрашивает доступ к защищенному ресурсу SP. Запрос перенаправляется на сервер федерации для обработки аутентификации.
  2. Сервер федерации отправляет HTML-форму обратно в браузер с запросом SAML для аутентификации от IdP. HTML-форма автоматически отправляется в службу SSO IdP.
  3. Если пользователь еще не вошел на сайт IdP или если требуется повторная аутентификация, IdP запрашивает учетные данные (например, ID и пароль), и пользователь входит в систему.
  4. Дополнительная информация о пользователе может быть получена из хранилища пользовательских данных для включения в ответ SAML. (Эти атрибуты предопределены как часть федеративного соглашения между IdP и SP)

  5. Служба SSO IdP возвращает браузеру HTML-форму с ответом SAML, содержащим утверждение аутентификации и любые дополнительные атрибуты. Браузер автоматически отправляет HTML-форму обратно в SP. ПРИМЕЧАНИЕ. Согласно спецификациям SAML, ответы POST должны иметь цифровую подпись.

  6. (Не показано). Если подпись и утверждение действительны, SP устанавливает сеанс для пользователя и перенаправляет браузер на целевой ресурс.

user3061250
источник
1
В отношении SSO, инициированного поставщиком услуг - в пункте 3 выше говорится: «Если пользователь еще не вошел в систему на сайте IdP или если требуется повторная аутентификация, IdP запрашивает учетные данные (например, идентификатор и пароль), и пользователь входит в систему». Как система определяет, вошел ли пользователь на сайт IdP? Например, генерирует ли он cookie?
Эдвардо
1
@Edwardo Ваше предположение верно. Когда сеанс устанавливается с IdP, обычно IdP создает файл cookie для поддержки этого сеанса.
jekennedy
У меня есть еще один вопрос stackoverflow.com/questions/43861315/… . Вы можете взглянуть на это?
kawadhiya21
49

SSO, инициированный SP

Билл пользователю: «Привет, Джимми, покажи мне этот отчет».

Джимми ИП: «Эй, я еще не уверен, кто вы. У нас есть процедура, поэтому сначала вы должны проверить себя у Боба, IdP. Я ему доверяю».

Боб, IdP: «Я вижу, что Джимми послал вас сюда. Пожалуйста, дайте мне свои учетные данные».

Билл пользователю: «Привет, я Билл. Вот мои учетные данные».

Боб, IdP: «Привет, Билл. Похоже, ты проверял».

Боб, IdP: «Привет, Джимми. Этот парень, Билл, проверяет, и вот дополнительная информация о нем. Делай здесь, что хочешь».

Джимми SP: «Хорошо, круто. Похоже, Билл тоже в нашем списке известных гостей. Я впущу Билла».

Система единого входа, инициированная IdP

Билл, пользователь: «Привет, Боб. Я хочу пойти к Джимми. Там строгая охрана».

Боб, IdP: «Привет, Джимми. Я доверяю Биллу. Он проверяет, и вот дополнительная информация о нем. Отсюда ты делаешь все, что хочешь».

Джимми SP: «Хорошо, круто. Похоже, Билл тоже в нашем списке известных гостей. Я впущу Билла».


Я расскажу здесь более подробно, но все же сохраню простоту: https://jorgecolonconsulting.com/saml-sso-in-simple-terms/ .

2upmedia
источник
33
Я не думаю, что второй разговор правильный .... вместо этого он должен быть: IdP: «Эй, вот немного информации о Сал, пожалуйста, впустите ее» / SP: «Хорошо, я доверяю тебе, я позволю ей in »
Джефф Олсон
4
первый разговор тоже неверен: на первом этапе SP еще ничего не знает о том, какой это пользователь, только в IdP пользователь войдет в систему и идентифицирует себя как «Sal»
Allie
4
Первый разговор должен быть: ИП: «Эй, а где твой ID?» IdP: «Подожди, я проверю. Дай мне посмотреть твое удостоверение личности, пожалуйста. Хорошо, братан, впусти ее, ее зовут Сал, и ей 21 год (необязательно)» SP: «Круто, чувак, ты классный! Эй, давай, заходи. ! "
Erdal G.
3
Я считаю, что этот ответ не заслуживает тех голосов, которые он получил. Он отвечает на вопрос творчески, возможно, не так точно, как указывали некоторые, но тем не менее творчески.
Аарон С
2
Было бы интересно увидеть правильный ответ в таком формате. Мои глаза остекленели, читая одобренные ответы, этот формат помогает очень быстро понять общую концепцию. Я не знаю достаточно, чтобы сам уверенно дать ответ на основе комментариев.
Шон Коннолли