Spring Boot 选定用户以访问Azure AD B2C中的应用程序

ruoxqz4g  于 2023-10-16  发布在  Spring
关注(0)|答案(2)|浏览(87)

我在Azure AD B2C上注册了一个Spring Boot应用程序,默认情况下,Azure AD B2C上租户下的所有用户都可以访问此应用程序。如何将访问权限限制在少数选定的用户或组?我希望用户A访问应用程序A,用户B访问应用程序的B。我已经找到了如何在Azure AD上执行操作,但没有在Azure AD B2C上执行操作。

wvyml7n5

wvyml7n51#

这不像Microsoft Entra ID(以前的Azure AD)那样开箱即用,但是有一些方法可以通过一些支持基础设施来实现这一点。
这些建议既适用于通过REST API technical profiles的自定义策略,也适用于在发送令牌之前使用API连接器的用户流。
1.在外部数据库中保存客户端ID、用户ID和角色的Map。例如,SQL DB。成功登录后,获取用户角色并将其添加到JWT,然后将其发送到依赖方应用程序,后者应验证令牌和所需角色。注意,如果使用自定义策略,则可以停止用户并在Azure AD B2C中显示阻止屏幕。

这两种实现都需要一个API来将角色读/写到持久性存储(即数据库或目录)
您的应用还可以调用数据源来获取用户拥有的角色并决定如何处理该用户。通常,这很好地位于OnTokenValidated Microsoft Identity Web事件中。

qojgxg4l

qojgxg4l2#

您可以将Conditional Access用于用户流和自定义策略,具体取决于您使用的是哪种策略。
启用后,请设置适用于相应应用的策略,排除特定用户或组,并将其设置为阻止。这将阻止所有 * 其他用户 * 或不在选定组中的用户访问该应用程序。
请注意,条件访问策略在首次创建时可能需要一段时间(有时一个小时或更长时间)才能生效。

相关问题