Azure Active Directory v2.0守护程序和服务器端应用程序支持

时间:2017-04-10 20:57:15

标签: azure-active-directory msal

试图明确当前的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日起尚未更新。这甚至是我应该使用的包吗?

1 个答案:

答案 0 :(得分:12)

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

请点击here了解详情。 here是使用Azure AD V2.0端点的客户端凭据流的教程。