Azure Веб-приложение - Azure AD - SPA - `токен` отсутствует в типе response_type - PullRequest
0 голосов
/ 20 марта 2020

Мы используем Azure веб-приложение и используем аутентификацию веб-приложения для обеспечения Azure аутентификации AD. У нас это работает, но мы пытаемся получить токен доступа, поскольку мы используем его для блокировки вызовов API. Если посмотреть на сетевые вызовы, вызов авторизации для конечной точки MSFT имеет только «код open_id» для типов ответов. Очевидно, я могу работать над преобразованием кода ответа в токен доступа, но я также должен иметь возможность получить токен доступа в обратном вызове.

Я проверил, что для oauth2AllowImplicitFlow установлено значение true в манифесте, но это все, что я могу найти.

Есть идеи, как добавить "токен" в список response_type?

1 Ответ

1 голос
/ 20 марта 2020

open_id: это область, а не тип ответа. Вы, вероятно, имеете в виду id_token

code: означает, что служба приложения выполняет поток Код авторизации . Он использует возвращенный код для обмена на текущий токен доступа.

Насколько я понимаю, вы используете встроенную аутентификацию AppService . Вам, вероятно, не нужно менять способ аутентификации AppService. Для этого есть хороший учебник , но в основном все, что вам нужно сделать, это позвонить GET /.auth/me в ваш SPA, чтобы получить токены. GET /.auth/refresh будет переопределять sh токены, если он правильно настроен.

GET https://xxx.azurewebsites.net/.auth/me


[
  {
    "access_token": "...",
    "expires_on": "2020-03-20T09:49:01.0000000Z",
    "id_token": "ey...",
    "provider_name": "aad",
    "refresh_token": "...",
    "user_claims": [
      {
        "typ": "foo",
        "val": "bar"
      },
      ...
    ],
    "user_id": "..."
  }
]

Если вы действительно хотите попробовать возиться со встроенной аутентификацией, вы можете попробовать изменить это (взято из "refre sh" инструкций, упомянутых выше). В любом случае вам, возможно, придется сделать это частично из-за функции refre sh.

Azure Active Directory : In https://resources.azure.com, выполните следующие действия: 1. В верхней части страницы выберите «Чтение / запись».

В левом браузере перейдите к подпискам> группы ресурсов>> поставщики> Microsoft.Web> сайты>> config> authsettings.

Нажмите Изменить.

Измените следующее свойство. Замените на Azure идентификатор приложения Active Directory службы, к которой вы хотите получить доступ.

"additionalLoginParams": ["response_type=code id_token", "resource=<app_id>"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...