Невозможно использовать редактор ресурсов Azure для обновления additionalLoginParams в службе приложения, которая была перенесена на версию аутентификации 2

Я пытался получить токен-носитель из заголовков, которые Easy Auth внедряет в запросы к моей службе приложений Azure, чтобы предоставить пользователям, которые хотят выполнять вызовы API в мое приложение, но токен из хранилища токенов, предоставляемого в X-MS -TOKEN-AAD-ACCESS-TOKEN недействителен. Он имеет какой-то внутренний или зашифрованный формат и начинается с PAQABAAAAAAD - , а не ey , как JWT. X-MS-TOKEN-AAD-ID-TOKEN действителен, но он не обновляется, когда я посещаю /. Auth / refresh .

Я пробовал следовать инструкциям на http://jsandersblog.azurewebsites.net/2020/01/17/easy-auth-using-x-ms-token-aad-access-token-as-a- bearer-token / , чтобы получить настоящий токен на предъявителя, но Resource Explorer дает мне следующее:

Cannot execute the request for site ... because the site is running on auth version v2

Что делать?

0
задан 19 May 2021 в 04:43
1 ответ

Обратите внимание на то, что версия API, к которой Resource Manager хочет PUT запрос, устарела:

subscriptions / / resourceGroups / /providers/Microsoft.Web/sites/ / config / authsettings? api-version = 2018-02-01

Они предоставили новый, хотя это трудно узнать.

Я не знаю, почему они так долго обновляли свои инструменты. Но теперь вам нужно будет внести изменения с помощью интерфейса командной строки (если у вас его нет, перейдите по адресу https://docs.microsoft.com/en-us/cli/azure/install-azure- cli-windows? tabs = azure-cli ).

Сделать:

az login
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription_id>/resourceGroups/<group_name>/providers/Microsoft.Web/sites/<site_name>/config/authsettingsv2/list?api-version=2020-09-01"

Да, они обновили GET вместо POST, чтобы получить вашу конфигурацию. Обратите внимание на «authsettingsv2» в URL-адресе. Это новый раздел, который не поддерживает ни один из инструментов.

Скопируйте конфигурацию в редактор и внесите нужные изменения. Схема находится здесь: https://docs.microsoft.com/en-us/azure/templates/microsoft.web/sites/config-authsettingsv2?tabs=json

Если вы пытаетесь следовать ДополнительныйLoginParams совет по настройке, чтобы получить правильный токен-носитель AAD, вам следует изменить параметры parameters.azureActiveDirectory.login и добавить параметры входа, например:

  "azureActiveDirectory": {
    "enabled": true,
    "isAutoProvisioned": true,
    "login": {
      "disableWWWAuthenticate": false,
      "loginParameters": [
        "resource=<clientId from the velow registration block>"
      ]
    }, ...

Сохраните его как authsettingsv2.json в вашем рабочем каталоге или где-то еще и УДАЛИТЕ его:

az rest --method PUT --url "https://management.azure.com/subscriptions/ / resourceGroups / /providers/Microsoft.Web/sites/ / config / authsettingsv2? api-version = 2020-09-01 "--body @. / Authsettingsv2.json

Удалите файлы cookie и вернитесь в службу своего приложения. У вас будет годный жетон на предъявителя.

0
ответ дан 28 July 2021 в 14:41

Теги

Похожие вопросы