授予对入站预配 API 的访问权限
简介
配置 API 驱动的入站预配应用后,需要授予访问权限,以便 API 客户端可以将请求发送到预配 /bulkUpload API 并查询预配日志 API。 本教程介绍配置这些权限的步骤。
根据 API 客户端使用 Microsoft Entra ID 进行身份验证的方式,可以在两个配置选项之间进行选择:
- 配置服务主体:如果 API 客户端计划使用 Microsoft Entra 已注册应用的服务主体并使用 OAuth 客户端凭据授予流进行身份验证,请按照这些说明操作。
- 配置托管标识:如果 API 客户端计划使用 Microsoft Entra 托管标识,请按照这些说明操作。
配置服务主体
此配置在 Microsoft Entra ID 中注册一个代表外部 API 客户端的应用,并授予其调用入站预配 API 的权限。 可以在 OAuth 客户端凭据授予流中使用服务主体客户端 ID 和客户端密码。
- 至少使用应用程序管理员登录凭据登录到 Microsoft Entra 管理中心 (https://entra.microsoft.com)。
- 浏览到“Microsoft Entra ID”->“应用程序”->“应用注册”。
- 单击“新建注册”选项。
- 提供应用名称,选择默认选项,然后单击“注册”。
- 从“概述”边栏选项卡中复制“应用程序(客户端) ID”和“目录(租户) ID”值,并将其保存以供稍后在 API 客户端中使用。
- 在应用的上下文菜单中,选择“证书和机密”选项。
- 创建新客户端机密。 提供机密的说明和到期日期。
- 复制客户端密码的生成值,并将其保存以供稍后在 API 客户端中使用。
- 在上下文菜单“API 权限”中,选择“添加权限”选项。
- 在“请求 API 权限”下,选择“Microsoft Graph”。
- 选择“应用程序权限”。
- 搜索并选择权限“AuditLog.Read.All”和“SynchronizationData-User.Upload”。
- 在下一个屏幕上单击“授予管理员同意”以完成权限分配。 在确认对话框中,单击“是”。 应用应具有以下权限集。
- 现在可以将服务主体与 API 客户端结合使用。
- 对于生产工作负载,建议将基于客户端证书的身份验证与服务主体或托管标识配合使用。
配置托管标识
本部分介绍如何为托管标识分配必要的权限。
配置托管标识以用于 Azure 资源。
从 Microsoft Entra 管理中心复制你的托管标识名称。 例如:下方的屏幕截图显示了与名为“CSV2SCIMBulkUpload”的 Azure 逻辑应用工作流关联的系统分配的托管标识的名称。
运行以下 PowerShell 脚本,为托管标识分配权限。
Install-Module Microsoft.Graph -Scope CurrentUser Connect-MgGraph -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 = "AuditLog.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 客户端结合使用。