我的问题是" SCOPE或PERMISSION"在ADAL for GRAPH API。
我使用ADAL 3.13并且我已经创建了以下脚本:
$adal = "C:\Users\filippog\Desktop\ADAL\_Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
$adalforms = "C:\Users\filippog\Desktop\ADAL\_Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"
[System.Reflection.Assembly]::LoadFrom($adal)
[System.Reflection.Assembly]::LoadFrom($adalforms)
[string] $adTenant = "****"
[string] $clientId = "1950a258-227b-4e31-a9cf-717495945fc2" #id client of powershell
[string] $resourceAppIdURI = "https://graph.windows.net/"
[string] $authority = "https://login.microsoftonline.com/$adTenant"
[uri] $redirectUri = "urn:ietf:wg:oauth:2.0:oob" #redirect urPowerShell - i of powershell
[string] $resourceURI = 'https://graph.microsoft.com/'
[string] $scope = "scope=mail.read"
$authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority #,$false
$PromptBehavior = [Microsoft.IdentityModel.Clients.ActiveDirectory.PromptBehavior]::Always
$platformParam = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformParameters" -ArgumentList $PromptBehavior
$userId = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier" -ArgumentList "****", "OptionalDisplayableId"
$authResult = $authContext.AcquireTokenAsync($resourceUri, $clientId, $redirectUri, $platformParam, $userId, $scope)
$AuthHeader=$authResult.result.CreateAuthorizationHeader()
$headers = @{
"Authorization" = $AuthHeader
"Content-Type" = "application/json"
}
Invoke-RestMethod -Headers $headers -Uri https://graph.microsoft.com/v1.0/me/messages -Method Get
我的问题是当我执行脚本并调用图表时(例如,graph/v1.0/me
它可以工作,但是当我调用graph/v1.0/me/messages
时,脚本会返回error 403
。
答案 0 :(得分:1)
Per Philippe的评论,请注册您自己的申请。 根据我所知,您正在尝试使用PowerShell客户端的ID进行操作,也不会使用ADAL 3.13进行增量/动态同意。 MSAL(新的auth客户端库)确实支持增量同意,您可以尝试使用它,但MSAL处于预览状态(您需要在apps.dev.microsoft.com上注册您的应用程序)。或者,如果您想继续使用ADAL,可以使用Azure门户网站portal.azure.com注册您的应用程序,搜索应用程序注册刀片,您将要注册本机客户端应用程序,并请求对用户,邮件以及Microsoft Graph中所需的任何其他内容的权限。
BTW - 出于兴趣,你想在这做什么?您是否尝试为Outlook和Microsoft Graph创建PowerShell客户端?如果我们提供了Microsoft Graph PowerShell客户端,您会对此感兴趣吗?如果是这样,请在UserVoice上提出申请。希望这有帮助,