我们将Azure AD应用程序配置为访问多个组织资源(使用掩码隐藏)(自定义资源,如Contoso Service)。我们想添加一个资源作为此设置的一部分。
任何人都可以指导我或分享文档链接:如何配置此自定义权限以显示在Azure AD配置仪表板的列表中?
当您通过体验添加新的必需权限时,门户网站将查看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 Graph(例如使用Azure AD Graph Explorer):
POST https://graph.windows.net/myorganization/servicePrincipals
{ "appId": "{app-id}" }
直接使用Microsoft Graph(beta)(例如使用Microsoft Graph Explorer):
POST https://graph.microsoft.com/beta/servicePrincipals
{ "appId": "{app-id}" }
在您的租户中创建ServicePrincipal对象后,如果它发布AppRoles或OAuth2Permissions,您应该在选择应用所需的权限时在应用注册体验中看到它。
注意1:所描述的某些行为因ServiceProrincipal对象引用Microsoft应用程序和服务而异。
注意2:Azure AD租户中存在ServicePrincipal对象后,拥有备份应用程序注册的任何人都可以在您的租户中进行身份验证(作为应用程序)并获取访问令牌。这本身并不允许应用程序访问任何内容(至少不是Microsoft服务),但此时用户不小心(或有意)授予该应用程序访问组织资源的权限(例如在Azure中,例如,应用程序将显示在可以授予访问订阅资源的用户,组或应用程序列表中。