授予对入站预配 API 的访问权限

介绍

配置 API 驱动的入站预配应用后,需要授予访问权限,以便 API 客户端可以向预配 /bulkUpload API 发送请求并查询 预配日志 API。 本教程指导你完成配置这些权限的步骤。

根据 API 客户端如何使用 Microsoft Entra ID 进行身份验证,可以在两个配置选项之间进行选择:

配置服务主体

此配置在 Microsoft Entra ID 中注册应用,该 ID 表示外部 API 客户端,并授予它调用入站预配 API 的权限。 可以在 OAuth 客户端凭据授予流中使用服务主体客户端 ID 和客户端密码。

  1. 至少使用https://entra.microsoftonline.cn登录凭据登录到 Microsoft Entra 管理中心()。
  2. 浏览至 Entra ID>应用注册
  3. 单击“ 新建注册”选项。
  4. 提供应用名称,选择默认选项,然后单击“ 注册”。 应用注册的屏幕截图。
  5. 从“概览”页中复制 应用程序(客户端)ID目录(租户)ID 值,并将其保存以便稍后在 API 客户端中使用。 应用客户端 ID 的屏幕截图。
  6. 在应用的上下文菜单中,选择 “证书和机密 ”选项。
  7. 创建新客户端机密。 提供机密和到期日期的说明。
  8. 复制客户端机密的生成值,并将其保存以供稍后在 API 客户端中使用。
  9. 在上下文菜单 API 权限中,选择“ 添加权限”选项。
  10. “请求 API 权限”下,选择 Microsoft Graph
  11. 选择“应用程序权限”。
  12. 搜索并选择 Permissions ProvisioningLog.Read.AllSynchronizationData-User.Upload

    注释

    如果要配置服务主体以供 HR ISV 使用,并且该 ISV 将在租户中实例化 API 驱动的预配应用,请考虑授予 Application.ReadWrite.OwnedBySynchronizationData-User.Upload.OwnedBy 应用程序权限。 这可确保 ISV 只能将数据 /bulkUpload 上传到与它创建的应用关联的 API 终结点。

  13. 在下一个屏幕上单击“ 授予管理员同意 ”以完成权限分配。 在确认对话框中单击“是”。 你的应用应具有以下权限集。 应用权限的屏幕截图。
  14. 现在,你已准备好将服务主体用于 API 客户端。
  15. 对于生产工作负荷,我们建议将 基于客户端证书的身份验证 与服务主体或托管标识配合使用。

配置托管标识

本部分介绍如何向托管标识分配必要的权限。

  1. 配置 托管身份 用于 Azure 资源。

  2. 从 Microsoft Entra 管理中心复制托管标识的名称。 例如:下面的屏幕截图显示了与一个名为“CSV2SCIMBulkUpload”的 Azure 逻辑应用工作流相关联的系统分配的托管标识的名称。

    托管标识名称的屏幕截图。

  3. 运行以下 PowerShell 脚本,为托管标识分配权限。

    Install-Module Microsoft.Graph -Scope CurrentUser
    
    Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "Application.Read.All","AppRoleAssignment.ReadWrite.All,RoleManagement.ReadWrite.Directory"
    $graphApp = Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"
    
    $PermissionName = "SynchronizationData-User.Upload"
    $AppRole = $graphApp.AppRoles | `
    Where-Object {$_.Value -eq $PermissionName -and $_.AllowedMemberTypes -contains "Application"}
    $managedID = Get-MgServicePrincipal -Filter "DisplayName eq 'CSV2SCIMBulkUpload'"
    New-MgServicePrincipalAppRoleAssignment -PrincipalId $managedID.Id -ServicePrincipalId $managedID.Id -ResourceId $graphApp.Id -AppRoleId $AppRole.Id
    
    $PermissionName = "ProvisioningLog.Read.All"
    $AppRole = $graphApp.AppRoles | `
    Where-Object {$_.Value -eq $PermissionName -and $_.AllowedMemberTypes -contains "Application"}
    $managedID = Get-MgServicePrincipal -Filter "DisplayName eq 'CSV2SCIMBulkUpload'"
    New-MgServicePrincipalAppRoleAssignment -PrincipalId $managedID.Id -ServicePrincipalId $managedID.Id -ResourceId $graphApp.Id -AppRoleId $AppRole.Id
    
  4. 若要确认应用了权限,请查找 Microsoft Entra ID 中的 企业应用程序 下的托管标识服务主体。 删除 应用程序类型 筛选器以查看所有服务主体。 托管标识主体的屏幕截图。

  5. 安全性下单击权限面板。 确认权限已设置。 托管标识权限的屏幕截图。

  6. 现在,你已准备好将托管标识用于 API 客户端。

后续步骤