2016-12-02 7 views
0

私の問題は、ADAL for GRAPH APIの "SCOPEまたはPERMISSION"です。ADAL 3.13 - 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

、役立ちます。独自のネイティブクライアントアプリケーションを登録するのは簡単です(たとえば、サインインプロンプトでネーミングとブランディングを制御できます)。 –

答えて

0

パーフィリップさんのコメント、独自のアプリケーションを登録してください。あなたはPowerShellのクライアントのIDをどうしようとしている何 は/私の知る限りでは動作しません、でも増分しますADAL 3.13との動的同意MSAL(新しい認証クライアントlib rary)は増分同意をサポートしていますが、その代わりに試すことができますが、MSALはプレビューにあります(apps.dev.microsoft.comでアプリを登録する必要があります)。また、ADALを継続して使用したい場合は、Azureポータル(portal.azure.com)を使用してアプリを登録し、アプリ登録ブレードを検索してネイティブクライアントアプリを登録し、ユーザー、メール、その他Microsoft Graphで必要なものが含まれます。

BTW - 興味のあるところで、ここで何をしようとしていますか? OutlookとMicrosoft GraphのPowerShellクライアントを作成しようとしていますか? Microsoft Graph PowerShellクライアントを提供していれば、興味がありますか?もしそうなら、UserVoiceでこれをリクエストしてください。

・ホープこれはあなたが本当にあなた自身のないアプリケーションのクライアントIDを使用してはならない