MS Graph API访问具有合作伙伴凭据的客户端租户

时间:2017-11-22 02:00:25

标签: powershell office365 microsoft-graph

我使用以下PowerShell代码访问MS Graph API。

Import-Module MSOnline
$User = "UserName"
$Password = "Password"
$TenantName = "tenantname.onmicrosoft.com"
$clientId = "clientId"
$authority = "https://login.microsoftonline.com/$TenantName"
$authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority
$AADCredential = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential" -ArgumentList $AdminUser, $Password
$resourceAppIdURI = "https://graph.microsoft.com"
$authResult = $authContext.AcquireToken($resourceAppIdURI, $clientId,$AADCredential)

$authHeader = @{
    'Content-Type'='application\json'
    'Authorization'=$authResult.CreateAuthorizationHeader()
}
$uri = "https://graph.microsoft.com/beta/$TenantName/reports/getEmailActivityUserDetail(period='D7')"
Invoke-RestMethod -Uri $uri -Method Get -Headers $authHeader

当用户和租户同意时,它可以正常工作。我想要做的是使用具有委派权限的管理员访问我们的客户租户。我已将应用设置为具有预先同意权限,根据https://developer.microsoft.com/en-us/graph/docs/concepts/auth_cloudsolutionprovider,该权限也应允许我所遵循的行为。但是,当我使用合作伙伴管理员凭据和客户端租户名运行代码时,我收到400错误请求错误。我在这里错过了什么步骤?

1 个答案:

答案 0 :(得分:1)

根据documentation(请参阅主题开头的重要说明),对于CSP预先同意,Microsoft Graph中的目录和Intune资源仅支持合作伙伴模型。随着时间的推移,更多资源将支持合作伙伴/ CSP模型。如果这对您很重要,请在UserVoice上创建此请求。

希望这有帮助,