Как требовать проверку подлинности пользователя каждый раз в приложениях SAML и OIDC

Иногда необходимо, чтобы пользователи проходили проверку подлинности при каждом доступе к приложению, даже если у них есть активный сеанс. Это полезно для повышения безопасности или соблюдения требований. Вот как настроить такое поведение для приложений OpenID Connect (OIDC) и SAML.


Для приложений OIDC: используйте prompt=login параметр

OpenID Connect (OIDC) позволяет принудительно проверять подлинность пользователя, включая параметр prompt=login в запрос авторизации. Это гарантирует, что пользователю будет предложено войти при каждом доступе к приложению, независимо от существующего сеанса.

Пример: запрос авторизации OIDC

https://login.microsoftonline.com/common/oauth2/v2.0/authorize
?response_type=code
&client_id=blf6xxxx-xxxx-xxxx-21cd2263xxxx
&redirect_uri=https://jwt.ms
&scope=openid profile User.Read
&prompt=login

Основные параметры

  • response_type=code: задаёт поток кода авторизации.
  • client_id: уникальный идентификатор приложения.
  • redirect_uri: URI, на который перенаправляется пользователь после проверки подлинности.
  • scope: определяет разрешения, запрашиваемые приложением.
  • prompt=login: заставляет пользователя проходить проверку подлинности каждый раз.

Для приложений SAML: используйте ForceAuthn атрибут

В SAML того же эффекта можно добиться, установив атрибут ForceAuthn равным true в запросе проверки подлинности. Это указывает поставщику удостоверений (IdP) требовать от пользователя проверку подлинности, даже если у него есть активный сеанс.

Пример: запрос проверки подлинности SAML

<samlp:AuthnRequest 
    xmlns="urn:oasis:names:tc:SAML:2.0:metadata" 
    ID="C2d2FH4oiJ5kL6mN7oPQgR9tOUvIw" 
    Version="2.0" 
    IssueInstant="2013-03-18T03:28:54.1839884Z" 
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
    <ForceAuthn>true</ForceAuthn>
    <Issuer 
        xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
        https://www.contoso.com
    </Issuer>
</samlp:AuthnRequest>

Основные атрибуты

  • ForceAuthn=true: гарантирует, что IdP потребует от пользователя проверку подлинности.
  • Issuer: идентифицирует сущность, отправляющую запрос проверки подлинности.

Зачем принудительно проверять подлинность?

Принудительная проверка подлинности при каждом доступе к приложению полезна в таких сценариях, как:

  • Повышенная безопасность: предотвращает несанкционированный доступ из-за устаревших сеансов.
  • Соответствие требованиям: соблюдение нормативных требований о частой проверке подлинности.
  • Конфиденциальные приложения: защита приложений, обрабатывающих критически важные или конфиденциальные данные.

Заключение

Используете ли вы OIDC или SAML, принудительная проверка подлинности пользователей обеспечивает более высокий уровень безопасности и контроля доступа к вашим приложениям. Используйте prompt=login для приложений OIDC и ForceAuthn=true для приложений SAML, чтобы эффективно реализовать эту функцию.

Оставить комментарий