OpenID Connect Implicit Client specification указывает необязательное значение параметра prompt=login
для неявных клиентов SHOULD
запрашивает конечный пользователь для повторной проверки подлинности.Параметр приглашения OpenID Connect: SHOULD vs MUST
ли правильно интерпретировать 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: Сервер авторизации должен запрашивать у пользователя повторную аутентификацию, заставляя пользователя снова войти в систему.