重要
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
Microsoft Graph 允许管理 Azure AD B2C 租户中的许多资源,包括客户用户帐户和自定义策略。 通过编写调用 Microsoft图形 API 的脚本或应用程序,可以自动执行租户管理任务,例如:
- 将现有用户存储迁移到 Azure AD B2C 租户
- 在 Azure DevOps 中使用 Azure Pipeline 部署自定义策略,并管理自定义策略密钥
- 在自己的页面上托管用户注册,并在后台的 Azure AD B2C 目录中创建用户帐户
- 自动化应用程序注册
- 获取审核日志
以下部分可帮助你准备使用 Microsoft 图形 API 自动管理 Azure AD B2C 目录中的资源。
使用 Microsoft 图形 API 来管理 Azure AD B2C 租户中的资源时,可以使用两种通信模式:
交互式 - 适用于运行一次任务,使用 B2C 租户中的管理员帐户来执行管理任务。 此模式要求管理员在调用 Microsoft Graph API 之前使用其凭据登录。
自动化 - 对于计划或持续运行的任务,此方法使用你配置的具备执行管理任务所需权限的服务帐户。 通过在 Azure AD B2C 中注册一个应用程序,可以创建“服务帐户”,该应用程序和脚本将使用其 应用程序(客户端)ID 和 OAuth 2.0 客户端凭据 授权进行身份验证。 在这种情况下,应用程序自身直接调用 Microsoft Graph API,而不是像之前所述的交互式方法那样由管理员用户进行调用。
通过创建以下部分所示的应用程序注册来启用 自动 交互方案。
Azure AD B2C 身份验证服务直接支持 OAuth 2.0 客户端凭据授予流(目前为公共预览版),但不能使用它通过 Microsoft Graph API 管理 Azure AD B2C 资源。 但是,你可以使用 Microsoft Entra ID 和 Microsoft 标识平台/令牌 终结点为 Azure AD B2C 租户中的应用程序设置/token
。
在脚本和应用程序可以与 Microsoft 图形 API 交互以管理 Azure AD B2C 资源之前,需要在 Azure AD B2C 租户中创建应用程序注册,以授予所需的 API 权限。
- 登录到 Azure 门户。
- 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的 Azure AD B2C 租户。
- 在 Azure 门户中,搜索并选择 Azure AD B2C。
- 选择“应用注册”,然后选择“新建注册”。
- 为应用程序输入名称。 例如 ,managementapp1。
- 选择“仅此组织目录中的帐户”。
- 在“权限”下,清除“授予管理员同意 openid 和 offline_access 权限”复选框。
- 选择“注册”。
- 记录应用程序概述页上显示 的应用程序(客户端)ID 。 在稍后的步骤中会使用此值。
若要让应用程序访问 Microsoft Graph 中的数据,请向已注册的应用程序授予相关 应用程序权限。 应用程序的有效权限是权限默示的完整特权级别。 例如,若要 在 Azure AD B2C 租户中创建、 读取、 更新和 删除 每个用户,请添加 User.ReadWrite.All 权限。
备注
User.ReadWrite.All 权限不包括更新用户帐户密码的功能。 如果应用程序需要更新用户帐户密码, 请授予用户管理员角色。 授予 用户管理员 角色时,不需要 User.ReadWrite.All 。 用户管理员角色包括管理用户所需的所有内容。
可以向应用程序授予多个应用程序权限。 例如,如果应用程序还需要管理 Azure AD B2C 租户中的组,请添加 Group.ReadWrite.All 权限。
- 在“ 管理”下,选择 API 权限。
- 在“已配置权限”下,选择“添加权限”。
- 选择“Microsoft API”选项卡,然后选择“Microsoft Graph”。
- 选择“应用程序权限”。
- 展开相应的权限组,选中要将其授予管理应用程序的权限的复选框。 例如:
- “用户”“User.ReadWrite.All”:适用于用户迁移或用户管理方案 。
- “组”“Group.ReadWrite.All”:适用于创建组、读取和更新组成员身份以及删除组 。
- AuditLog>AuditLog.Read.All:用于读取目录的审核日志。
- Policy>Policy.ReadWrite.TrustFramework:适用于持续集成/持续交付 (CI/CD) 方案。 例如,使用 Azure Pipelines 进行的自定义策略部署。
- 选择“添加权限”。 按照指示等待几分钟,然后继续下一步。
- 选择“向(租户名称)授予管理员许可”。
- 使用 Azure AD B2C 租户中分配有“云应用程序管理员”角色的帐户进行登录,然后选择“代表(你的租户名称)授予管理员同意”。
- 选择“刷新”,然后验证“状态”下是否显示“已为...授予”。 传播权限可能需要几分钟时间。
如果应用程序或脚本需要更新用户的密码,则需要将 用户管理员 角色分配给应用程序。 用户管理员角色具有你向应用程序授予的固定权限集。
若要添加 用户管理员 角色,请执行以下步骤:
- 登录到 Azure 门户。
- 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的 Azure AD B2C 租户。
- 搜索并选择“Azure AD B2C”。
- 在“ 管理”下,选择“ 角色”和“管理员”。
- 选择 “用户管理员 ”角色。
- 选择“添加分配”。
- 在 “选择 ”文本框中,输入之前注册的应用程序的名称或 ID,例如 managementapp1。 当它出现在搜索结果中时,请选择你的应用程序。
- 选择 并添加。 可能需要几分钟才能完全传播权限。
应用程序在请求令牌时需要客户端密码来证明其标识。 若要添加客户端密码,请执行以下步骤:
- 在“管理”下,选择“证书和机密”。
- 选择 新客户端密码。
- 在“说明”框中输入客户端密码的说明。 例如,clientsecret1。
- 在“过期时间”下,选择机密持续生效的时间,然后选择“添加”。
- 记下机密的“值”。 您将在后续步骤中将此值用于配置。
注册管理应用程序并向其授予所需权限后,应用程序和服务(例如 Azure Pipelines)可以使用其凭据和权限与 Microsoft Graph API 交互。