Azure AD:如何设置应用程序的自定义权限?

时间:2019-03-27 10:44:52

标签: azure azure-active-directory

我们已将Azure AD应用程序配置为访问多个组织资源(带掩码隐藏)(自定义资源,例如Contoso Service)。 我们想再添加一个资源作为此设置的一部分。

任何人都可以指导我或共享文档链接:如何配置此自定义权限以使其显示在Azure AD配置仪表板的列表中?

enter image description here

1 个答案:

答案 0 :(得分:3)

当您经历添加新的必需权限的体验时,门户将查看Azure AD租户中的所有 ServicePrincipal 对象。然后,对于每个 ServicePrincipal 对象,它查看 AppRoles OAuth2Permissions 属性,以查看该 ServicePrincipal 所代表的应用程序对象分别发布任何应用程序权限或委托权限。

因此,为了在可用资源(即API)列表中查看资源,首先需要确保在Azure AD租户中该资源存在一个 ServicePrincipal 对象(即在要创建客户端应用程序的应用程序注册的Azure AD租户中。

当您(或租户中的其他人)登录并同意该应用程序请求的权限时,通常会在您的Azure AD租户中创建应用程序的 ServicePrincipal 对象。如果租户中不存在 ServicePrincipal 对象,则可以通过引用资源应用程序的 AppId 来手动创建它。

使用Azure AD PowerShell:

New-AzureADServicePrincipal -AppId "{app-id}"

使用Azure CLI:

az ad sp create --id "{app-id}"

直接使用Azure AD图(例如,使用Azure AD Graph Explorer):

POST https://graph.windows.net/myorganization/servicePrincipals

{ "appId": "{app-id}" }

直接使用Microsoft Graph(测试版)(例如,使用Microsoft Graph Explorer):

POST https://graph.microsoft.com/beta/servicePrincipals

{ "appId": "{app-id}" }

在租户中创建 ServicePrincipal 对象后,如果它发布 AppRoles OAuth2Permissions ,您应该会在应用程序中看到它注册经验,选择您的应用需要哪种权限。

注1:引用Microsoft应用程序和服务的 ServicePrincipal 对象所描述的某些行为有所不同。

注意2:一旦您的Azure AD租户中存在一个 ServicePrincipal 对象,拥有备份应用程序注册的任何人都可以在您的租户中验证(作为应用程序)并获取访问令牌。这本身并不授予应用程序任何访问权限(至少不授予Microsoft服务访问权限),但此时用户更容易意外地(或有意地)授予该应用程序对您组织资源的访问权限(例如,在Azure中,例如,该应用将显示在可以授予订阅资源访问权限的用户,组或应用列表中。