如何在没有 web-API 的情况下基于持有者令牌检索用户信息(以及角色)
本文关键字:信息 用户 检索 令牌 角色 持有者 web-API 情况下 | 更新日期: 2023-09-27 18:32:43
我有自定义的网络服务。我们的前端应用程序将处理身份验证。我们的中间件层将使用持有者令牌的请求。
中间件需要通过调用 Graph-api 来确定用户是谁。中间件不是基本的 Web-API,而是一些第三方工具。我所拥有的只是令牌和httpContext。
如何验证持有者令牌是否正确如何在图形 API 上检索用户的信息?
持有者令牌应包含您需要的所有信息。假设此令牌是 JWT,您应该能够对其进行解码并查看它包含哪些声明。看看"System.IdentityModel.Tokens.Jwt"nuget 包。它包含 JwtSecurityTokenHandler 类,可能有助于解析令牌。
服务层不必是 Web API,即可使用 ADAL 从 Azure Active Directory 获取令牌。我认为 Vittorio 的以下文章应该可以帮助您了解如何与 AAD 交互以便能够与图形 API 通信:
-
http://www.cloudidentity.com/blog/2013/01/22/group-amp-role-claims-use-the-graph-api-to-get-back-isinrole-and-authorize-in-windows-azure-ad-apps/
-
http://www.cloudidentity.com/blog/2013/10/29/using-adals-acquiretokenby-authorizationcode-to-call-a-web-api-from-a-web-app/
好消息:我们最近在 Azure AD 中启用了应用程序角色功能,应用可以使用该功能声明可在 Azure 管理门户中分配给用户和组的角色(角色分配在 Azure AD 中)。当用户登录到应用时,Azure AD 会在持有者令牌中包含角色声明(在你的情况下为中间件服务的令牌)
在这里阅读: http://blogs.technet.com/b/ad/archive/2014/12/18/azure-active-directory-now-with-group-claims-and-application-roles.aspx
有关应用角色功能的深入探讨帖子和视频在这里:http://www.dushyantgill.com/blog/2014/12/10/roles-based-access-control-in-cloud-applications-using-azure-ad/
希望有帮助。