我正在开发一个 Web 应用程序,它利用 Azure 身份验证来访问各种 Web API。这些 Web API 的行为根据经过身份验证的用户的角色而有所不同。
但是,我们的客户支持团队在了解客户在应用程序中的体验方面遇到了困难。这主要是因为授予客户支持团队的权限与客户的权限不同。
我正在寻求有关如何实现一项功能的指导,该功能将使支持团队能够暂时切换到任何客户的权限。这将使他们能够完全按照客户的体验查看应用程序界面和功能。
具体来说,我想要以下方面的建议:
是的,您可以切换到基于角色的身份验证,以根据分配的角色对 Web API 的用户进行身份验证:
创建 Microsoft Entra ID 应用程序并公开 API:
授予管理员对 API 权限的同意:
现在根据要求创建应用程序角色:
根据您的要求为用户分配角色:
进入企业应用程序 -> 选择您的应用程序
现在我使用以下端点来验证用户:
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
对于 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
解码后,存在访问令牌范围和角色:
通过使用上述访问令牌,您可以根据分配给用户的角色执行基于角色的身份验证。
要在 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