我注册了一个应用程序,允许(或不允许)在用户中执行 CRUD 操作。我想知道该应用程序在 azure 中是否具有这些权限。
我尝试使用多个端点(应用程序、服务主体等),我获得了信息,但没有获得 API 权限。
我想看看我的应用程序是否具有 User.ReadWrite.All 权限。
我怎样才能得到它?我应该使用什么休息端点?要获取它,是否需要任何额外的许可?
提前非常感谢。
我尝试使用多个端点:
但我从来没有得到这些信息。
我注册了一个 Azure AD 应用程序并授予了 API 权限,如下所示:
首先,获取此服务主体的对象 ID,该对象 ID 可以在 企业应用程序 中找到,具有相同的名称:
现在,您可以运行下面的图形 API 调用,使用 appRoleId 检索 Application 权限,如下所示:
GET https://graph.microsoft.com/v1.0/servicePrincipals/spObjID/appRoleAssignments
回复:
要了解这些 Application 权限的名称,您需要使用不同的 API 调用来获取带有
appRoles
数据的 MS Graph 服务主体:
GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')?$select=appRoles
回复:
或者,您可以运行下面的 Microsoft Graph PowerShell 脚本,该脚本给出 Application 权限名称作为响应,如下所示:
Connect-MgGraph -Scope "Application.Read.All"
$spObjId = "spObjectId"
$servicePrincipal = Get-MgServicePrincipal -Filter "appId eq '00000003-0000-0000-c000-000000000000'" -Property "appRoles"
$appRoleAssignments = Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $spObjId
$permissions = @()
# Map AppRoleId to permission names
foreach ($assignment in $appRoleAssignments) {
$appRoleId = $assignment.AppRoleId
$matchedAppRole = $servicePrincipal.AppRoles | Where-Object { $_.Id -eq $appRoleId }
if ($matchedAppRole) {
$permissions += $matchedAppRole.Value
}
}
Write-Host -ForegroundColor Yellow "`nMS Graph permissions of 'Application' type granted to application are :"
foreach ($permission in $permissions) {
Write-Host -ForegroundColor Green "- $permission"
}
回复: