9

试图弄清当前 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);

这将导致:

抛出异常:mscorlib.dll 中的“Microsoft.Identity.Client.MsalServiceException”

附加信息: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 日以来没有更新。这甚至是我应该使用的包吗?

4

1 回答 1

18

将客户端凭据流与 Azure AD V2.0 一起使用时,为此请求中的参数传递的值scope应该是所需资源的资源标识符(应用程序 ID URI),并带有.default后缀。对于 Microsoft Graph 示例,该值为https://graph.microsoft.com/.default

请点击这里了解更多详情。这是一个使用 Azure AD V2.0 端点的客户端凭据流的教程

于 2017-04-11T04:48:15.157 回答