azure - Azure AD B2C - 多重身份体验框架自定义策略可以互换使用
问题描述
适用于多种应用。我们将 AAD B2C 用于我们的身份验证系统。我们选择了自定义策略。造成这种情况的原因之一是我们希望允许不同的用户组访问不同的应用程序,方式如下:
- 超级用户可以访问所有应用程序,包括我们的 CMS
- 产品管理员可以访问面向客户的 CMS 和最终产品
- 产品用户可以访问最终产品
为此,我们制定了以下政策:
- B2C_1A_xxx_cms
- B2C_1a_xxx_product
- B2C_1A_xxx_customercms
在所有策略中,我们对内部身份验证 API 进行 API 调用,该 API 通过 MS Graph API 验证用户的组成员身份。问题是这些策略似乎可以互换使用:
https://{tenant}.b2clogin.com/{tenant}/b2c_1a_xxx_cms/oauth2/v2.0/authorize?response_type=id_token&scope={scope}%20openid%20profile&client_id={client_id}&redirect_uri={redirect_uri}&nonce={nonce}&client_info=1&x-client-SKU=MSAL.JS&x-client-Ver=1.4.4&client-request-id={client-request-id}&response_mode=fragment
在上述 url 中,用户可以通过将 b2c_1a_xxx_cms 替换为 b2c_1a_xxx_product 来访问 CMS,从而绕过针对特定应用程序的基于组的验证。
我们政策的原始实施基于本教程: https ://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-get-started
我们如何配置这些策略以使更改 URL 和尝试登录是不可能的?
解决方案
推荐阅读
- reactjs - 处理具有许多字段的反应表单中的错误
- ios - 在 SpriteKit 中,一旦击中目标,使箭头跟随目标
- sql - ORACLE 查询以查找数据库中所有用户的所有权限/访问权限
- vue.js - 单击操作不适用于 vuetify 徽章
- excel - VBA复制和粘贴工作簿中每个工作表的值
- sql - Excel SQL 查询的查询计划
- java - 在 Spring Boot 中启动时从数据库加载密钥
- c# - 如何在 Visual Studio 2017 的 C# 中启用代码建议功能?
- azure - 在使用 Redis 时限制 Azure 上的输出缓存大小
- python - 使用生成器从文件构造列表