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