如何为Azure认证的Web应用程序实现基于角色的视图切换?

问题描述 投票:0回答:1

我正在开发一个 Web 应用程序,它利用 Azure 身份验证来访问各种 Web API。这些 Web API 的行为根据经过身份验证的用户的角色而有所不同。

但是,我们的客户支持团队在了解客户在应用程序中的体验方面遇到了困难。这主要是因为授予客户支持团队的权限与客户的权限不同。

我正在寻求有关如何实现一项功能的指导,该功能将使支持团队能够暂时切换到任何客户的权限。这将使他们能够完全按照客户的体验查看应用程序界面和功能。

具体来说,我想要以下方面的建议:

  • 在 Azure 验证的 Web 应用程序中实现基于角色的视图切换的最佳实践。
  • 出于测试目的临时切换用户权限的技术。 实现此类功能时任何潜在的安全问题或考虑因素。 有关维护审计跟踪或日志以跟踪支持团队成员何时访问客户端权限的建议。
  • 任何见解、代码示例或推荐资源都将非常有用 赞赏。预先感谢您的协助!
azure-ad-msal msal.js msal msal4j
1个回答
0
投票

是的,您可以切换到基于角色的身份验证,以根据分配的角色对 Web API 的用户进行身份验证:

创建 Microsoft Entra ID 应用程序并公开 API:

enter image description here

授予管理员对 API 权限的同意:

enter image description here

现在根据要求创建应用程序角色

enter image description here

根据您的要求为用户分配角色:

进入企业应用程序 -> 选择您的应用程序

enter image description here

现在我使用以下端点来验证用户:

https://login.microsoftonline.com/TenantID/oauth2/v2.0/authorize?
&client_id=ClientID
&response_type=code
&redirect_uri=https://jwt.ms
&response_mode=query
&scope=api://xxx/.default
&state=12345

enter image description here

对于 sample,我通过 Postman 生成了令牌:

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

client_id:ClientID
grant_type:authorization_code
code:code
redirect_uri:https://jwt.ms
client_secret:ClientSecret
scope:api://xxx/.default openid offline_access

enter image description here

解码后,存在访问令牌范围和角色:

enter image description here

通过使用上述访问令牌,您可以根据分配给用户的角色执行基于角色的身份验证。

要在 msal.js 中执行相同操作,请参阅 ms-identity-javascript-react-tutorial/5-AccessControl/1-call-api-roles/README.md at main · Azure-Samples/ms-identity -javascript-react-tutorial · GitHub 作者:salman90

© www.soinside.com 2019 - 2024. All rights reserved.