我们想要调用Azure AD启用身份验证的azure函数。我们想从外部工具调用此函数可能是以自动方式使用http而不是用户获取登录提示然后记录。
知道怎么做吗?
谢谢Girish
因此,通常 - 要调用由AAD保护的Azure Functions,您必须找到一种获取令牌的方法,这将允许您进行身份验证。如果您没有这样做,您将获得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
或者通过使用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;
然后,您必须为每个请求添加一个Bearer令牌,这将允许您在没有登录提示的情况下进行身份验证。