Невозможно выполнить автоматическое обновление после получения id_token при реализации неявного потока как в Azure ad, так и в службах идентификации Google

#authentication #oauth-2.0 #azure-active-directory #openid #implicit-flow

#проверка подлинности #oauth-2.0 #azure-active-directory #OpenID #неявный поток

Вопрос:

Я включил поддержку неявного потока в регистрации Azure AD, в которой говорится: — «Чтобы включить неявный поток предоставления, выберите токены, которые вы хотели бы получить от конечной точки авторизации:» И я пытаюсь пройти аутентификацию для нескольких идентификационных данных, поэтому не использую msal или adal. Но я не могу выполнить автоматическое обновление с помощью скрытого iframe.

  1. Отправлен запрос на авторизацию с областью действия, включающей OpenID и тип ответа как id_token (во всплывающем окне)
  2. Получить id_token и все остальное, включая состояние сеанса.

Теперь (через Iframe) Я пытаюсь получить токен с помощью автоматической аутентификации, отправив propmt=none, а id_token_hint = prev_id_token также попытался отправить login_hint = preferred_username (который я получил от JWTtoken.payloadObj.preferred_username)

P.S также пытались сначала отправить response_type как id_token, так и token, а затем попробовать автоматическое обновление, каждый раз с этой ошибкой происходит сбой:-

error=login_requiredamp;error_description=AADSTS50058: Session information is not sufficient for single-sign-on.
Trace ID: 5ceb4386-f4b1-40aa-8fb5-797c14379b00
Correlation ID: 3401101e-9098-4048-bb05-78926181d733
Timestamp: 2019-04-17 10:12:47Zamp;state={мое состояние}

Пожалуйста, дайте мне знать, чего мне не хватает, это должен быть неявный поток. и мне нужно добиться автоматического обновления с использованием скрытого i-фрейма.

Я реализовал его так, как указано в этом сообщении:- https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow

я не могу выполнить выделенную часть на этом изображении

Комментарии:

1. Возможно, ваш пользователь не согласен с разрешениями, которые вы запросили в первоначальном запросе на вход. Вы захотите запросить области, которые вы собираетесь использовать автоматически, в первом запросе, чтобы убедиться, что пользователь принял эти разрешения.

2. Я пытаюсь использовать свою собственную учетную запись.. Я дал согласие на все разрешения в самом AD, однажды у меня было такое же сомнение, поэтому я попытался отправить prompt=consent в первоначальном запросе, просто чтобы убедиться, что все разрешения согласованы

3. Есть ли какие-либо настройки в поставщиках аутентификации для включения единого входа через Open ID? @DanielDobalian

4. Насколько мне известно, он должен иметь возможность автоматически повторно использовать файл cookie сеанса, установленный Azure AD.

5. Отличный вопрос! Файл cookie сеанса устанавливается в браузере пользователя. Поставщик аутентификации обычно просто отслеживает, нужно ли аннулировать сеанс, который может показаться действительным (например, если пользователь сбросил свой пароль).