配置权限分类
本文介绍如何在 Microsoft Entra ID 中配置权限分类。 通过权限分类,可根据组织的策略和风险评估确定不同权限的影响。 例如,可使用同意策略中的权限分类来确定允许用户同意哪一组权限。
支持三种权限分类:“低”、“中”(预览)和“高”(预览)。 目前,只能对无需管理员同意的委托权限进行分类。
执行基本登录所需的最小权限是 openid
、profile
、email
和 offline_access
,它们是 Microsoft Graph 上的所有委托的权限。 借助这些权限,应用可以读取已登录用户配置文件的详细信息,并且即使用户不再使用该应用,也可以保留此访问权限。
先决条件
要配置权限分类,你需要:
- 具有活动订阅的 Azure 帐户。 创建帐户。
- 以下角色之一:应用程序管理员或云应用程序管理员
管理权限分类
提示
本文中的步骤可能因开始使用的门户而略有不同。
使用 Microsoft Entra 管理中心按照以下步骤对权限进行分类:
- 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“应用程序”>“企业应用程序”>“同意和权限”>“权限分类”。
- 选择适用于要更新的权限分类的选项卡。
- 选择“添加权限”以对另一个权限进行分类。
- 选择 API,然后选择委托的权限。
在下例中,我们对单一登录所需的最小一组权限进行了分类:
可使用最新的 Azure AD PowerShell 对权限进行分类。 权限分类是在发布权限的 API 的 ServicePrincipal 对象上配置的。
运行以下命令以连接到 Azure AD PowerShell。 若要同意所需的范围,请至少以云应用程序管理员身份登录。
Connect-AzureAD -AzureEnvironmentName AzureChinaCloud -Scopes
使用 Azure AD PowerShell 列出当前权限分类
检索 API 的 ServicePrincipal 对象。 在这里,我们将检索 Microsoft Graph API 的 ServicePrincipal 对象:
$api = Get-AzureADServicePrincipal ` -Filter "servicePrincipalNames/any(n:n eq 'https://microsoftgraph.chinacloudapi.cn')"
读取 API 的委托权限分类:
Get-AzureADMSServicePrincipalDelegatedPermissionClassification ` -ServicePrincipalId $api.ObjectId | Format-Table Id, PermissionName, Classification
使用 Azure AD PowerShell 将权限分类为“低影响”
检索 API 的 ServicePrincipal 对象。 在这里,我们将检索 Microsoft Graph API 的 ServicePrincipal 对象:
$api = Get-AzureADServicePrincipal ` -Filter "servicePrincipalNames/any(n:n eq 'https://microsoftgraph.chinacloudapi.cn')"
查找要对其分类的委托的权限:
$delegatedPermission = $api.OAuth2Permissions | Where-Object { $_.Value -eq "User.ReadBasic.All" }
使用权限名称和 ID 设置权限分类:
Add-AzureADMSServicePrincipalDelegatedPermissionClassification ` -ServicePrincipalId $api.ObjectId ` -PermissionId $delegatedPermission.Id ` -PermissionName $delegatedPermission.Value ` -Classification "low"
使用 Azure AD PowerShell 删除委托的权限分类
检索 API 的 ServicePrincipal 对象。 在这里,我们将检索 Microsoft Graph API 的 ServicePrincipal 对象:
$api = Get-AzureADServicePrincipal ` -Filter "servicePrincipalNames/any(n:n eq 'https://microsoftgraph.chinacloudapi.cn')"
若要查找要删除的委托权限分类:
$classifications = Get-AzureADMSServicePrincipalDelegatedPermissionClassification ` -ServicePrincipalId $api.ObjectId $classificationToRemove = $classifications | Where-Object {$_.PermissionName -eq "User.ReadBasic.All"}
请删除权限分类:
Remove-AzureADMSServicePrincipalDelegatedPermissionClassification ` -ServicePrincipalId $api.ObjectId ` -Id $classificationToRemove.Id
可以使用 Microsoft Graph PowerShell 对权限进行分类。 权限分类是在发布权限的 API 的 ServicePrincipal 对象上配置的。
运行以下命令以连接到 Microsoft Graph PowerShell。 若要同意所需的范围,请至少以云应用程序管理员身份登录。
Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "Policy.ReadWrite.PermissionGrant".
使用 Microsoft Graph PowerShell 列出 API 的当前权限分类
检索 API 的 servicePrincipal 对象:
$api = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'"
读取 API 的委托权限分类:
Get-MgServicePrincipalDelegatedPermissionClassification -ServicePrincipalId $api.Id
使用 Microsoft Graph PowerShell 将权限分类为“低影响”
检索 API 的 servicePrincipal 对象:
$api = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'"
查找要对其分类的委托的权限:
$delegatedPermission = $api.Oauth2PermissionScopes | Where-Object {$_.Value -eq "openid"}
设置权限分类:
$params = @{ PermissionId = $delegatedPermission.Id PermissionName = $delegatedPermission.Value Classification = "Low" } New-MgServicePrincipalDelegatedPermissionClassification -ServicePrincipalId $api.Id -BodyParameter $params
使用 Microsoft Graph PowerShell 删除委托的权限分类
检索 API 的 servicePrincipal 对象:
$api = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'"
若要查找要删除的委托权限分类:
$classifications = Get-MgServicePrincipalDelegatedPermissionClassification -ServicePrincipalId $api.Id $classificationToRemove = $classifications | Where-Object {$_.PermissionName -eq "openid"}
请删除权限分类:
Remove-MgServicePrincipalDelegatedPermissionClassification -DelegatedPermissionClassificationId $classificationToRemove.Id -ServicePrincipalId $api.id