#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 анонимный или также требуется функциональный ключ. Подробные шаги приведены ниже.
- Настройте Azure AD для функции Azure. Пожалуйста, обратитесь к https://learn.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-azure-function-app-settings#auth .
- Получить токен доступа
Я получаю токен доступа от 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-адресу в приведенном выше заявлении, но ничего не получил