Как обеспечить безопасность функций Azure с помощью OAuth как для людей, так и для компьютеров? - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть приложение функций в Azure, которое должно быть в состоянии авторизовать / аутентифицировать как компьютер (поток учетных данных клиента), так и людей (поток кода авторизации).

Изначально я использовал easy-auth,Готовое решение Azures для защиты функций приложений. Однако в соответствии с этим https://stackoverflow.com/a/57357226/7411328 невозможно использовать поток учетных данных клиента с простой аутентификацией. Хотя я не понимаю, почему это так. Почему невозможно использовать одни и те же права доступа для двух разных потоков с одной регистрацией приложения?

Делая предположение (возможно, неверное), что вышеприведенное верно, и я должен выполнить проверку JWT самостоятельно.

Есть ли надежный способ узнать, вызывается ли API машиной или человеком?

Должен ли я делать это с двумя отдельными регистрациями приложений?

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

1 Ответ

1 голос
/ 11 ноября 2019

Насколько я знаю, вы можете использовать поток учетных данных клиента для вызова функции Azure, защищенной функцией easy-auth (AAD как поставщик проверки подлинности). В общем, вы можете попробовать выполнить следующие действия:

  1. Зарегистрируйте приложение Azure AD
  2. Получение токена доступа из Azure AD по следующему запросу:

URL:

POST https://login.microsoftonline.com/<your tenant ID/name>/oauth2/token

Заголовок:

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

Тело:

client_id=<your new resistered app ID>&
client_secret=<your new resistered app secret>&
resource=<your Azure function app ID which configed at easy-auth>&
grant_type=client_credentials

Результат: enter image description here

Используйте этот токен доступа для вызова функции Azure: enter image description here

Если вы используете Azure AD b2c, просьба предоставить мне более подробную информацию, и я проведу некоторые исследования для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...