Параметр подсказки OpenID Connect: ДОЛЖЕН или ДОЛЖЕН

Спецификация неявного клиента OpenID Connect указывает необязательное значение параметра prompt=login для неявных клиентов. SHOULD запрашивать у конечного пользователя повторную аутентификацию.

Является ли правильный способ интерпретировать SHOULD одним из следующих:

  1. prompt=login Реализации, отвечающие требованию SHOULD, должны предлагать пользователям повторную аутентификацию, когда это необходимо, но не в определенных ситуациях, например. запрашивать у пользователя повторную аутентификацию при отсутствии активного сеанса, но не запрашивать, когда у пользователя есть активный сеанс.
  2. prompt=login реализации, отвечающие SHOULD требованию, MUST запрашивают у пользователей повторную аутентификацию.

Если правильным способом реализации требования SHOULD является вариант № 2 выше, чтобы всегда аутентифицироваться, как справиться с ситуацией, когда пользователю предлагается аутентифицироваться только в том случае, если срок действия сеанса истек? Будет ли это опускать параметр prompt?

Реализации от Microsoft Azure, Okta и Salesforce используют MUST для повторной аутентификации.

Использованная литература:

  • OpenID: Серверу авторизации СЛЕДУЕТ запрашивать Конечный пользователь для повторной аутентификации. Если он не может повторно аутентифицировать конечного пользователя, он ДОЛЖЕН вернуть ошибку, обычно login_required.
  • MS Azure: prompt=login заставит пользователя вводить свои учетные данные в этом запросе, блокируя единый вход.
  • Okta: может быть либо нет, либо вход. Значение определяет, должна ли Okta запрашивать аутентификацию (при необходимости) или принудительно запрашивать (даже если у пользователя уже есть сеанс). По умолчанию: поведение по умолчанию зависит от того, существует ли существующий сеанс Okta.
  • Salesforce: сервер авторизации должен запрашивать у пользователя повторная аутентификация, заставляющая пользователя снова войти в систему.

person Grokify    schedule 26.07.2016    source источник


Ответы (1)