试图明确当前的v2.0端点是否支持守护进程和服务器端应用程序流。
本文讨论了流程:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-flows
它声明:
本文介绍了使用Azure AD v2.0可以构建的应用程序类型,无论您使用哪种语言或平台。本文中的信息旨在帮助您在开始使用代码之前了解高级方案。
进一步说明:
目前,v2.0端点不支持此部分中的应用类型,但它们位于未来开发的路线图中。有关v2.0端点的其他限制和限制
最后,我尝试构建一个连接到Graph API的应用程序,该应用程序按计划通过"凭据连接到API"允许它代表允许它访问的用户访问API。
在我的测试工具中,我可以使用以下方式获取令牌:
var pca = new PublicClientApplication(connector.AzureClientId)
{
RedirectUri = redirectUrl
};
var result = await pca.AcquireTokenAsync(new[] {"Directory.Read.All"},
(Microsoft.Identity.Client.User) null, UiOptions.ForceLogin, string.Empty);
在相同的线束中,我无法使用以下方式获取令牌:
var cca = new ConfidentialClientApplication(
connector.AzureClientId,
redirectUrl,
new ClientCredential(connector.AzureClientSecretKey),
null) {PlatformParameters = new PlatformParameters()};
var result = await cca.AcquireTokenForClient(new[] { "Directory.Read.All" }, string.Empty);
这将导致:
抛出异常:' Microsoft.Identity.Client.MsalServiceException'在mscorlib.dll中
附加信息:AADSTS70011:输入的提供值 参数'范围'无效。范围Directory.Read.All不是 有效。 跟踪ID:dcba6878-5908-44a0-95f3-c51b0b4f1a00 相关ID:1612e41a-a283-4557-b462-09653d7e4c21 时间戳:2017-04-10 20:53:05Z
MSAL包,Microsoft.Identity.Client(1.0.304142221-alpha),自2016年4月16日起尚未更新。这甚至是我应该使用的包吗?
答案 0 :(得分:12)
在Azure AD V2.0中使用客户端凭据流时,此请求中为scope
参数传递的值应该是所需资源的资源标识符(应用程序ID URI),并附加{{ 1}}后缀。对于Microsoft Graph示例,值为https://graph.microsoft.com/.default。