spring-boot - 选定的用户访问 Azure AD B2C 中的应用程序

标签 spring-boot azure azure-ad-b2c azure-ad-b2c-custom-policy

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

最佳答案

这不像 Microsoft Entra ID(以前称为 Azure AD)那样开箱即用,但是可以通过一些支持基础设施来实现这一点。

这些建议都适用于 REST API technical profiles 的自定义策略和用户流程使用 before sending the token API 连接器。

  1. 在外部数据库中保存客户端 ID、用户 ID 和角色的映射。例如,SQL 数据库。成功登录后,获取用户角色并将其添加到 JWT,然后将其发送到依赖方应用程序,该应用程序应验证 token 和所需的角色。请注意,如果您使用自定义策略,您可以阻止用户并在 Azure AD B2C 中显示阻止屏幕。

  2. 尽管未在 UI 中显示,您仍然可以使用 Microsoft Graph 添加 RBAC 分配并在登录时读取它们。这有点复杂,但您可以通过以下方式找到示例:

这两种实现都需要 API 来将角色读/写到持久存储(即数据库或目录)

您的应用程序还可以调用数据源来获取用户拥有的角色并决定如何处理该用户。通常这很好地位于 OnTokenValidated Microsoft Identity Web 事件中。

关于spring-boot - 选定的用户访问 Azure AD B2C 中的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77255399/

相关文章:

microsoft-graph-api - 如何获取自定义 Azure AD B2C 用户配置文件属性的值

Azure B2C 单点登录不起作用

mysql - 如何使用 Spring Boot 回滚 MySQL 数据库中的所有更改

java - MongoDb根据请求向不同的DB插入数据 SpringBoot Java

azure - ILogger 如何记录到 Azure Application Insights?

c# - Azure函数可选 "middle"路由参数

azure - 如何使用 MS Graph 在 Azure AD B2C 中自动授予 API 权限审批

java - Whitelabel错误页面404 Spring Boot Angular 6

java - GraphQL api 使用 Spring Boot Resttemplate 导致 {"errors":[ {"message" :"No query string was present"}]} always

linux - 如何从基于 Linux 的 Hadoop 客户端使用 Azure Blob 存储?