【发布时间】:2016-06-18 14:01:44
【问题描述】:
我有一个与 WebAPI 对话的 Angular 应用程序,并且用户通过 Azure Active Directory 进行身份验证
我遵循https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp-dotnet-webapi 此处的示例,并能够针对 AD 对用户进行身份验证并将其传递给 Web API。
但是我想在 Web API 中访问 Graph API 并获取当前用户配置文件信息。如何设置?
已更新以提供有关设置的更多背景信息:
我有一个托管 html 和 javascript 文件的网站 (site.domain1.com),它制作了一个 SPA 应用程序。我在 api.domain2.com 上托管了 Web API。身份验证针对 Azure AD,使用带有 ADAL.js 和 angular-adal 的 OAuth 隐式流。我想在 SPA 中进行身份验证以获取 API 的 accessToken。我希望在 API 中作为查询 Graph API 的请求的一部分,以获取有关当前用户登录的更多信息。
我能够获取 API 的 accessToken 并且它目前会生成 Claims Principal。问题是用我在 Web API 中的当前身份查询 Graph API。
更新:
我不想将管理员权限授予 Web API,但我想将用户同意仅转发给浏览器的“读取用户配置文件”到网站和 Web API。
我使用了与位于此处https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof的样本类似的方法
它适用于我的测试 AD 并且不适用于生产 AD 的问题。说用户需要在使用 Graph Api 之前集中应用程序。(对于生产 AD,我只有用户可以添加用户权限,但不能添加应用程序权限。我的猜测是该方案工作我需要 AD 的全局管理员首先集中)。最终,我最终将用于网站和 Web API 的 Azure AD 应用程序合并在一起,并且它使用了与 Bootstrap Tokens 相同的 On Behalf Of 方法。但我想知道如何让它与 2 个应用程序一起正常工作。
【问题讨论】:
-
你看到样本了吗:github.com/Azure-Samples/…
-
是的,我做到了。谢谢链接。不同之处在于,在此示例中,他们从 JavaScript 访问 Graph API,但我想从 Web API 执行此操作。如果我从 JavaScript 访问 Graph API,它也适用于我,但我想从 Web API 执行此操作。
-
好的,我明白了。我给你提供了一些样品,希望对你有帮助。
-
@VladimirMakaev,您想使用用户凭据访问 GraphAPI 吗?
-
我想实现和弗拉基米尔一样的目标。你找到方法了吗?
标签: azure azure-active-directory adal azure-ad-graph-api