使用Microsoft Graph API和REST方法从Azure门户应用注册中检索应用所有者

uinbv5nw  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(112)

我正在尝试通过PowerShell脚本使用Microsoft Graph API和REST方法从清单下的Azure门户应用注册中检索应用所有者。我正在使用服务主体帐户(客户端密钥)、租户和客户端ID(应用ID)对Graph API进行身份验证。
下面是获取特定应用信息的代码:

Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/applications?$filter=appId eq 'appIdhere'" -Headers $headers -Method GET

我使用以下请求头和主体:

$requestBody = @{
"grant_type"    = "client_credentials"
"client_id"     = $clientId
"client_secret" = $clientSecret
"scope"         = "https://graph.microsoft.com/.default"
}

$headers = @{
Authorization = "Bearer $accessToken"
}

然而,上面的代码只在图上工作。请参阅下面的文档。(我使用了/applications端点,它仍然可以与下面的引用一起使用)Microsoft Graph API -列出服务主体的所有者
我想使用上面提到的URL来访问应用程序注册Azure门户下的应用程序清单,但在使用PowerShell伊势中的Invoke-RestMethod时,该URL将从Azure门户检索所有应用程序,而不是仅从URL中检索指定的应用程序。
我想请求帮助如何检索此URL下的指定信息:“https://graph.microsoft.com/v1.0/applications?$filter=appId eq 'f059f748-6b42-46ec-8d5b-23a0fee126ee'"。提前感谢那些将提供帮助的人。

jtjikinw

jtjikinw1#

我注册了一个Azure AD应用程序,并添加了API权限,如下所示:

现在,我添加了以下用户作为应用程序的应用程序所有者

要使用Microsoft Graph API从清单下的Azure门户应用注册中检索应用所有者,您可以使用以下查询:

GET https://graph.microsoft.com/v1.0/applications/<AppID>/owners

若要通过PowerShell调用REST API获得相同的结果,可执行以下脚本:

$requestbody = @{
    client_id = "ClientID"
    client_secret = "ClientSecret"
    scope = "https://graph.microsoft.com/.default"
    grant_type = 'client_credentials'
}
$AccessToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/TenantID/oauth2/v2.0/token" -Method Post -Body $requestbody
$token = $AccessToken.access_token
$query = "https://graph.microsoft.com/v1.0/applications/AppID/owners"
(Invoke-RestMethod -Headers @{Authorization = "Bearer $($token)"} -Uri $query -Method Get).value | select id

当我运行脚本时,我在响应中获得了Application所有者的Object ID,如下所示:

参考:List owners - Microsoft Graph v1.0 | Microsoft

相关问题