Приложение с функцией аутентификации Azure active directory

#azure-active-directory #azure-functions

#azure-active-directory #azure-функции

Вопрос:

Я выполняю проверку подлинности Azure active Directory для приложения с функцией, следуя приведенному ниже URLhttps://www.c-sharpcorner.com/article/secure-azure-function-with-azure-ad /

Но когда я нажимаю на свой URL-адрес через приложение-функцию, он выдает несанкционированный, нужно ли мне делать что-нибудь еще

пожалуйста, ознакомьтесь с приведенными ниже снимками экрана.

введите описание изображения здесь

любая помощь приветствуется

Ответ №1:

Мы могли бы использовать токен доступа для прямого доступа к вашему функциональному API Azure, если ваш уровень аутентификации функции azure анонимный или также требуется функциональный ключ. Подробные шаги приведены ниже.

  1. Настройте Azure AD для функции Azure. Пожалуйста, обратитесь к https://learn.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-azure-function-app-settings#auth .
  2. Получить токен доступа

Я получаю токен доступа от AAD, используя ClientID и clientSecret, используя следующий код:

 METHOD: POST

Url : https://login.microsoftonline.com/your directory ID/oauth2/token 

HEADERS:  Content-Type : application/x-www-form-urlencoded

BODY: grant_type =client_credentialsamp;resource =”your Function url”amp;client_id     =”the application that your register  id”amp;client_secret =”the key you create”
  

Пожалуйста, обратите внимание, что в соответствии с порталом ресурсов Azure (https://resources.azure.com /), разрешенные аудиозаписи по умолчанию являются

 https://{functionAppName}.azurewebsites.net/.auth/login/aad/callback
  

Итак, я добавил https://{functionAppName}.azurewebsites.net/ в качестве разрешенных аудиторий.

введите описание изображения здесь

Тогда я могу использовать токен доступа напрямую. Я тестировал это с Postman:

введите описание изображения здесь

Пожалуйста, обратите внимание, что если ваш уровень аутентификации функции Azure не является анонимным, вам необходимо добавить функциональный ключ

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

1. Я добавил URL-адрес в разрешенную аудиторию и использовал postman; Я все еще получаю сообщение «У вас нет разрешения на просмотр этого каталога или страницы». Возможно ли, что я получаю неправильный access_token из AAD?

2. Здравствуйте, я смог решить проблему. Проблема заключалась в сгенерированном токене AAD. Передача идентификатора приложения вместо «https://<AzureFunctionAppName>.azurewebsites.net /» в контексте. AcquireTokenAsync(«https://<AzureFunctionAppName>.azurewebsites.net /», cc). Результат

3. небольшие сомнения в приведенном выше URL-адресе login.microsoftonline.com/your необходим идентификатор каталога / oauth2 /token «Ваш идентификатор каталога»

4. Идентификатор каталога необходим. Если вы не знаете свой идентификатор каталога, вы можете использовать «общий». для получения более подробной информации, пожалуйста, обратитесь к learn.microsoft.com/en-us/azure/active-directory/develop /… .

5. Привет, я знаю идентификатор клиента, но мы не хотим использовать его для генерации токена, есть ли какая-либо альтернатива? вы упомянули в приведенном выше заявлении «Общий», могу я узнать, что это такое? я перешел по указанному вами URL-адресу в приведенном выше заявлении, но ничего не получил