SAML2 - логин пользователя по запросу, инициированному IdP
Я пытаюсь выяснить, как войти в систему пользователя в стандартном приложении Web Forms и приложении Web Forms с поддержкой Owin, используя инициированный IdP запрос и библиотеку Sustainsys SAML2.
У меня есть IdP в Azure, я могу отправить запрос, и Azure может отправить POST с SAMLResponse на мою конечную точку ACS.
Но я не знаю, как войти в систему, используя этот токен. В документации Sustainsys нет примеров.
var spOptions = new SPOptions
{
EntityId = new EntityId("https://localhost:44317/Saml2"),
ReturnUrl = new Uri("https://localhost:44317/Saml2/Acs")
};
В базовой конфигурации SAML для IdP Azure
Identifier (Entity ID): https://localhost:44317/Saml2
Reply URL (Assertion Consumer Service URL): https://localhost:44317/Saml2/Acs
IdP работает нормально, я вижу POST с токеном на мой сайт. Но я думал, что есть некоторая особенность автологина. Но, похоже, я был не прав.
Итак, мои вопросы:
- Где я должен установить URL возврата, чтобы получить ответ? Является ли конечная точка ACS правильной?
- Как обработать токен и войти в систему пользователя, используя обработчики и Owin?
1 ответ
- Конечная точка ACS верна.
SPOptions.ReturnUrl
должно быть установлено в вашем приложении, где вы хотите, чтобы пользователь заканчивал после завершения аутентификации.
Вам также необходимо установить AllowUnsolicitedAuthnResponse
флаг Idp, чтобы разрешить Idp инициировать вход в систему