Azure AD App API权限-在何处获取要授予的权限的ID

时间:2019-08-18 14:44:04

标签: azure azure-active-directory

我正在尝试以编程方式使用terraform授予对应用程序注册的API权限。 我不知道如何获取我要授予的权限的ID。我已经尝试从清单文件中复制和粘贴在其他地方使用的权限,但这看起来并不那么简单。

broken permission

此设置的描述来自Terraform文档。

id-(必需)资源应用程序公开的OAuth2Permission或AppRole实例之一的唯一标识符。

有人知道如何获取此处使用的权限指南吗?它们特定于应用程序注册吗?我猜是这样。

1 个答案:

答案 0 :(得分:1)

terraform中的id不是屏幕截图中的id,而是权限的同意显示名称,而不是id,它只是一个向导。

要获得id,可以使用AzureAD Powershell,如下所示。

例如,获得xxx-nex-kv-access API委派权限的Get-AzureADServicePrincipal -SearchString "xxx-nex-kv-access" ,例如您的屏幕截图。

1。找到服务主体。

xxx-nex-kv-access

该命令将列出与ObjectId相关的所有服务主体,确保您需要哪个,然后复制其中的AppIdGet-AzureADServicePrincipal。 (如果没有结果,则可以使用不带参数的ObjectId列出所有服务主体并找到所需的主体。)

2。使用$sp = Get-AzureADServicePrincipal -ObjectId "<ObjectId>" $sp.Oauth2Permissions | select Id,AdminConsentDisplayName,Value 获取委派的权限。

Id

enter image description here

required_resource_access { resource_app_id = "<AppId>" resource_access { id = "<Id>" type = "Scope" } } 是您要在地形中指定的内容,如下所示。

type

此外,您应该注意到Scope属性有两个值,RoleScope,您应该知道Delegated permission是{{ 1}}和RoleApplication permission

因此,如果要添加Application permission权限,则需要使用以下命令,然后在terraform中使用type = "Role"

$sp = Get-AzureADServicePrincipal -ObjectId "<ObjectId>"
$sp.AppRoles | select Id,DisplayName,Value