2016-12-02 40 views
0

我的問題是ADAP for GRAPH API中的「SCOPE or PERMISSION」。ADAL 3.13 - 圖表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

你真的不應該使用非你自己的應用程序的客戶端ID。註冊自己的本地客戶端應用程序非常簡單,您將獲得更多優勢(例如,您可以在登錄提示中控制命名和品牌)。 –

回答

0

每Philippe的評論,請註冊自己的應用程序。 你正在嘗試使用PowerShell的客戶端的ID做不會,據我知道的工作,也不會增量/動態同意ADAL 3.13。MSAL(一個新的auth客戶端庫瑞利)確實支持增量同意,你可以嘗試,但MSAL預覽(你需要在apps.dev.microsoft.com註冊你的應用程序)。或者,如果您想繼續使用ADAL,則可以使用Azure門戶在portal.azure.com上註冊您的應用程序,方法是搜索應用程序註冊刀片,在其中註冊本地客戶端應用程序,然後向用戶,郵件和您在Microsoft Graph中需要的任何其他內容。

順便說一句 - 出於興趣,你想在這裏做什麼?您是否想要爲Outlook和Microsoft Graph創建PowerShell客戶端?如果我們提供了Microsoft Graph PowerShell客戶端,您會對此感興趣嗎?如果是這樣,請在UserVoice上申請。

希望這會有所幫助,