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

Mon*_*ton 7 azure-active-directory azure-ad-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访问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);
Run Code Online (Sandbox Code Playgroud)

在相同的线束中,我无法使用以下方式获取令牌:

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);
Run Code Online (Sandbox Code Playgroud)

这将导致:

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

附加信息:AADSTS70011:输入参数"scope"的提供值无效.范围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日起尚未更新.这是否是我应该使用的包?

Nan*_* Yu 16

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

请点击此处了解更多详情.而这里是使用客户端证书的教程与Azure的AD V2.0端点流动.