Итак, для вызова функций 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;
Затем вам нужно будет добавить к каждому вашему запросу токен на предъявителя, который позволит вам проходить аутентификацию без приглашений на вход.