如何通过PowerShell为新应用添加Azure Service Management的user_impersonation权限?
为新应用配置Azure Service Management的user_impersonation权限
你遇到的问题是因为user_impersonation属于委托权限(OAuth2 Permission Scopes),而非应用权限(AppRoles),所以通过$targetSp.AppRoles无法查询到该权限。以下是通过PowerShell完成配置的步骤:
步骤1:获取Azure Service Management服务主体并定位权限ID
# 获取Windows Azure Service Management API的服务主体 $targetSp = Get-AzureADServicePrincipal -Filter "DisplayName eq 'Windows Azure Service Management API'" # 查询user_impersonation权限的详细信息(重点记录Id值) $targetSp.OAuth2PermissionScopes | Where-Object { $_.Value -eq "user_impersonation" }
步骤2:获取新应用的对象信息
替换命令中的应用显示名称为你的新应用名称:
# 获取新应用的应用注册对象 $newApp = Get-AzureADApplication -Filter "DisplayName eq '你的新应用显示名称'"
步骤3:授予管理员同意的委托权限
使用步骤1中拿到的权限ID,执行以下命令完成权限配置:
# 提取user_impersonation的权限ID $permissionId = ($targetSp.OAuth2PermissionScopes | Where-Object { $_.Value -eq "user_impersonation" }).Id # 为新应用授予管理员同意的user_impersonation权限 New-AzureADApplicationOAuth2PermissionGrant -ResourceId $targetSp.ObjectId -ClientId $newApp.ObjectId -Scope "user_impersonation" -ConsentType "AllPrincipals"
执行完成后,新应用就会拥有与现有应用相同的Azure Service Management user_impersonation权限。
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

