Как вызвать лазурную функцию, которая защищена AAD - PullRequest
0 голосов
/ 01 сентября 2018

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

Есть идеи, как это сделать?

Спасибо Гириш

1 Ответ

0 голосов
/ 02 сентября 2018

Итак, для вызова функций Azure, защищенных AAD, вам нужно найти способ получения токена, который позволит вам проходить аутентификацию. Если вы этого не сделаете, вы получите HTTP 403 и будете перенаправлены (или получите ссылку для перенаправления) для входа.

Если вы хотите сделать это автоматически, я предполагаю, что вам потребуется субъект обслуживания, созданный в вашем арендаторе: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal.

Затем вы должны каким-то образом получить токен доступа - либо используя пустой HTTP-запрос:

POST https://{tenant}/oauth2/v2.0/token?client_id={client-id}
&scope={scope}
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh

Что здесь описано: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-get-jwt-token

Или используя Microsoft.IdentityModel:

AuthenticationContext = new AuthenticationContext("https://login.microsoftonline.com/" + Tenant);
Credential = new ClientCredential(clientId, clientSecret);

var result = await AuthenticationContext.AcquireTokenAsync("https://graph.windows.net", Credential);
return result.AccessToken;

Затем вам нужно будет добавить к каждому вашему запросу токен на предъявителя, который позволит вам проходить аутентификацию без приглашений на вход.

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