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 инициировать вход в систему

Другие вопросы по тегам