【发布时间】:2017-04-30 02:03:46
【问题描述】:
我的解决方案在通过 IdentityServer3 对 Azure AD 进行身份验证时运行良好。现在我们正在尝试集成一些 Microsoft Graph 功能。可悲的是,它惨遭失败。
通过其中一个演示 (https://graph.microsoft.io/en-us/docs/get-started/aspnetmvc) 项目运行,文档详细说明了在 Microsoft 应用注册门户 (https://apps.dev.microsoft.com) 上注册新应用程序,并明确告诉应用程序允许隐式流。
确保选中允许隐式流复选框,然后输入 http://localhost:55065/ 作为重定向 URI。 允许隐式流 选项启用 OpenID Connect 混合流。在认证过程中, 这使应用程序能够接收登录信息(id_token)和 应用程序使用的工件(在本例中为授权代码) 获取访问令牌。
当然,我们已经在 Azure 的生产门户上注册了一个应用程序来执行我们的身份验证,并且从 IdentityServer3 中的客户端,我们将流设置为Flow = Flows.Implicit,这似乎表明我们现在只有允许隐式流,但期望隐式流。
当我添加额外的范围 - offline_access User.Read Mail.Send - 我不再能够成功进行身份验证,相反,我收到一条错误消息,指出 Invalid Scope。
我担心“Microsoft 应用程序注册门户”与现实生活有很大不同,有些东西没有正确设置。生产 Azure 应用注册中没有特定的“允许隐式流”设置,所以它真的接受 Implicit Flow 吗?
有没有人幸运地集成了这两个系统,并通过使用 IdentityServer3 对 Azure AD 进行的单一身份验证获得了充分利用 Microsoft Graph 的预期结果?
【问题讨论】:
标签: c# azure azure-active-directory identityserver3 microsoft-graph-api