服务主体如何登录到我的Azure应用程序服务?
我已经通过以下方式在我的应用程序服务中启用了身份验证:无论何时访问我的网站端点,我都会被重定向到Azure AD登录页面,并且在输入凭据时能够继续。如何使用服务主体凭据登录?登录页面显然不接受客户端id。是否应该填充某些标头以使用服务主体凭据发出成功的请求服务主体如何登录到我的Azure应用程序服务?,azure,authentication,azure-web-app-service,Azure,Authentication,Azure Web App Service,我已经通过以下方式在我的应用程序服务中启用了身份验证:无论何时访问我的网站端点,我都会被重定向到Azure AD登录页面,并且在输入凭据时能够继续。如何使用服务主体凭据登录?登录页面显然不接受客户端id。是否应该填充某些标头以使用服务主体凭据发出成功的请求 非常感谢您的见解。您是正确的,交互式身份验证流(如登录页)不适用于应用程序和服务主体,它们仅适用于最终用户 关于如何进一步开展工作的几个要点: 使用非交互式身份验证流,如获取令牌 您可以根据您的平台使用相关的ADAL库,或者直接点击Azure
非常感谢您的见解。您是正确的,交互式身份验证流(如登录页)不适用于应用程序和服务主体,它们仅适用于最终用户 关于如何进一步开展工作的几个要点:
POST /contoso.com/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=625bc9f6-3bf6-4b6d-94ba-e97cf07a22de&client_secret=qkDwDJlDfig2IpeuUZYKH1Wb8q1V0ju6sILxQQqhJ+s=&resource=https%3A%2F%2Fservice.contoso.com%2F
下面是另一个使用ADAL for.NET的示例-
需要注意的代码的一个重要部分是
您没有明确提到您使用的是哪个平台,所以我分享了.NET示例,因为这是我最熟悉的一个。如果您需要另一个,请参阅本Microsoft文档指南,它链接到所有受支持的不同Microsoft库,每个库都有一些相关示例应用程序权限
。另一种类型的权限是委托权限
,但它们仅适用于用户Authorization
标题。值的格式为承载体
。在使用ADAL等身份验证库的情况下,该库将负责这一部分,但如果直接命中其余端点,则需要填充标头您能告诉我一些使用服务主体凭据从Azure Active directory获取令牌的smple ADAL代码吗?@user3740951当然。。我已经编辑了我的答案(第1点),以包含一个代码示例,该示例演示如何获取令牌。@user3740951多一个快速点。。请注意,我已经共享了与Azure AD v1.0端点和ADAL库相关的所有信息。。因为您下面的文档清楚地提到Azure AD v2.0(包括MSAL)还不支持Azure应用程序服务。。但在将来,无论何时支持,都应该考虑使用V2和MSAL。
authContext = new AuthenticationContext(authority);
clientCredential = new ClientCredential(clientId, appKey);
AuthenticationResult result = await authContext.AcquireTokenAsync(todoListResourceId, clientCredential);