注册 Microsoft Graph 应用程序

重要

自 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 交互模式

使用 Microsoft 图形 API 来管理 Azure AD B2C 租户中的资源时,可以使用两种通信模式:

  • 交互式 - 适用于运行一次任务,使用 B2C 租户中的管理员帐户来执行管理任务。 此模式要求管理员在调用 Microsoft Graph API 之前使用其凭据登录。

  • 自动化 - 对于计划或持续运行的任务,此方法使用你配置的具备执行管理任务所需权限的服务帐户。 通过在 Azure AD B2C 中注册一个应用程序,可以创建“服务帐户”,该应用程序和脚本将使用其 应用程序(客户端)IDOAuth 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 权限。

  1. 登录到 Azure 门户
  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的 Azure AD B2C 租户。
  3. 在 Azure 门户中,搜索并选择 Azure AD B2C
  4. 选择“应用注册”,然后选择“新建注册”
  5. 为应用程序输入名称。 例如 ,managementapp1
  6. 选择“仅此组织目录中的帐户”
  7. “权限”下,清除“授予管理员同意 openid 和 offline_access 权限”复选框。
  8. 选择“注册”。
  9. 记录应用程序概述页上显示 的应用程序(客户端)ID 。 在稍后的步骤中会使用此值。

授予 API 访问权限

若要让应用程序访问 Microsoft Graph 中的数据,请向已注册的应用程序授予相关 应用程序权限。 应用程序的有效权限是权限默示的完整特权级别。 例如,若要 Azure AD B2C 租户中创建、 读取更新删除 每个用户,请添加 User.ReadWrite.All 权限。

备注

User.ReadWrite.All 权限不包括更新用户帐户密码的功能。 如果应用程序需要更新用户帐户密码, 请授予用户管理员角色。 授予 用户管理员 角色时,不需要 User.ReadWrite.All 。 用户管理员角色包括管理用户所需的所有内容。

可以向应用程序授予多个应用程序权限。 例如,如果应用程序还需要管理 Azure AD B2C 租户中的组,请添加 Group.ReadWrite.All 权限。

应用注册

  1. 在“ 管理”下,选择 API 权限
  2. 在“已配置权限”下,选择“添加权限”。
  3. 选择“Microsoft API”选项卡,然后选择“Microsoft Graph”。
  4. 选择“应用程序权限”。
  5. 展开相应的权限组,选中要将其授予管理应用程序的权限的复选框。 例如:
    • “用户”“User.ReadWrite.All”:适用于用户迁移或用户管理方案 。
    • “组”“Group.ReadWrite.All”:适用于创建组、读取和更新组成员身份以及删除组 。
    • AuditLog>AuditLog.Read.All:用于读取目录的审核日志。
    • Policy>Policy.ReadWrite.TrustFramework:适用于持续集成/持续交付 (CI/CD) 方案。 例如,使用 Azure Pipelines 进行的自定义策略部署。
  6. 选择“添加权限”。 按照指示等待几分钟,然后继续下一步。
  7. 选择“向(租户名称)授予管理员许可”。
  8. 使用 Azure AD B2C 租户中分配有“云应用程序管理员”角色的帐户进行登录,然后选择“代表(你的租户名称)授予管理员同意”。
  9. 选择“刷新”,然后验证“状态”下是否显示“已为...授予”。 传播权限可能需要几分钟时间。

[可选]授予用户管理员角色

如果应用程序或脚本需要更新用户的密码,则需要将 用户管理员 角色分配给应用程序。 用户管理员角色具有你向应用程序授予的固定权限集。

若要添加 用户管理员 角色,请执行以下步骤:

  1. 登录到 Azure 门户
  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的 Azure AD B2C 租户。
  3. 搜索并选择“Azure AD B2C”
  4. 在“ 管理”下,选择“ 角色”和“管理员”。
  5. 选择 “用户管理员 ”角色。
  6. 选择“添加分配”。
  7. “选择 ”文本框中,输入之前注册的应用程序的名称或 ID,例如 managementapp1。 当它出现在搜索结果中时,请选择你的应用程序。
  8. 选择 并添加。 可能需要几分钟才能完全传播权限。

创建客户端密码

应用程序在请求令牌时需要客户端密码来证明其标识。 若要添加客户端密码,请执行以下步骤:

  1. 在“管理”下,选择“证书和机密”。
  2. 选择 新客户端密码
  3. 在“说明”框中输入客户端密码的说明。 例如,clientsecret1
  4. 在“过期时间”下,选择机密持续生效的时间,然后选择“添加”。
  5. 记下机密的“值”。 您将在后续步骤中将此值用于配置。

后续步骤

注册管理应用程序并向其授予所需权限后,应用程序和服务(例如 Azure Pipelines)可以使用其凭据和权限与 Microsoft Graph API 交互。