介绍
配置 API 驱动的入站预配应用后,需要授予访问权限,以便 API 客户端可以向预配 /bulkUpload API 发送请求并查询 预配日志 API。 本教程指导你完成配置这些权限的步骤。
根据 API 客户端如何使用 Microsoft Entra ID 进行身份验证,可以在两个配置选项之间进行选择:
- 配置服务主体:如果 API 客户端计划使用 Microsoft Entra 注册应用的 服务主体并使用 OAuth 客户端凭据授予流进行身份验证,请按照以下说明进行操作。
- 配置托管标识:如果 API 客户端计划使用 Microsoft Entra 托管标识,请按照以下说明进行操作。
配置服务主体
此配置在 Microsoft Entra ID 中注册应用,该 ID 表示外部 API 客户端,并授予它调用入站预配 API 的权限。 可以在 OAuth 客户端凭据授予流中使用服务主体客户端 ID 和客户端密码。
- 至少使用https://entra.microsoftonline.cn登录凭据登录到 Microsoft Entra 管理中心()。
- 浏览至 Entra ID>应用注册。
- 单击“ 新建注册”选项。
- 提供应用名称,选择默认选项,然后单击“ 注册”。
- 从“概览”页中复制 应用程序(客户端)ID 和 目录(租户)ID 值,并将其保存以便稍后在 API 客户端中使用。
- 在应用的上下文菜单中,选择 “证书和机密 ”选项。
- 创建新客户端机密。 提供机密和到期日期的说明。
- 复制客户端机密的生成值,并将其保存以供稍后在 API 客户端中使用。
- 在上下文菜单 API 权限中,选择“ 添加权限”选项。
- 在 “请求 API 权限”下,选择 Microsoft Graph。
- 选择“应用程序权限”。
- 搜索并选择 Permissions ProvisioningLog.Read.All 和 SynchronizationData-User.Upload。
注释
如果要配置服务主体以供 HR ISV 使用,并且该 ISV 将在租户中实例化 API 驱动的预配应用,请考虑授予
Application.ReadWrite.OwnedBy和SynchronizationData-User.Upload.OwnedBy应用程序权限。 这可确保 ISV 只能将数据/bulkUpload上传到与它创建的应用关联的 API 终结点。 - 在下一个屏幕上单击“ 授予管理员同意 ”以完成权限分配。 在确认对话框中单击“是”。 你的应用应具有以下权限集。
- 现在,你已准备好将服务主体用于 API 客户端。
- 对于生产工作负荷,我们建议将 基于客户端证书的身份验证 与服务主体或托管标识配合使用。
配置托管标识
本部分介绍如何向托管标识分配必要的权限。
配置 托管身份 用于 Azure 资源。
从 Microsoft Entra 管理中心复制托管标识的名称。 例如:下面的屏幕截图显示了与一个名为“CSV2SCIMBulkUpload”的 Azure 逻辑应用工作流相关联的系统分配的托管标识的名称。
运行以下 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若要确认应用了权限,请查找 Microsoft Entra ID 中的 企业应用程序 下的托管标识服务主体。 删除 应用程序类型 筛选器以查看所有服务主体。
现在,你已准备好将托管标识用于 API 客户端。