2016-12-20 36 views
1

私はクライアントIDと秘密情報で認証しています。Microsoft Graph APIのコンテンツ401権限がありません

私のアプリケーションにはすべての許可ボックスが表示されており、上記のトークンを使用してユーザーをリストし、ドライブとフォルダをトラバースすることができます。 https://graph.microsoft.com/v1.0/drives/%s/items/%s/contentのコンテンツにアクセスし、Locationヘッダーに別のURLを返します。しかし、そのURLを取得しようとすると、401 Unauthorizedが返されます。

+0

また、項目jsonには、 '' @ microsoft.graph.downloadUrl ":" https:// {tenant} -my.sharepoint.com/personal/ {user} _ {tenant} _onmicrosoft_com/_layouts/15/download.aspx?UniqueId = ...&access_token = ...&prooftoken = ... "' アクセスできるはずのように見えますが、それでも動作しません。 – Alastair

答えて

0

他のURLもgraph.microsoft.comにありますか?そうでない場合は、そのURL用の新しい認証トークンを取得し、ダウンロード要求に使用する必要があります。

ちょうどあなたがすでにgraph.microsoft.comで行っているが、他のサーバー名と同様:

AuthenticationResult result = context.acquireToken("https://onedrive-server-name", new ClientCredential(clientId, clientSecret), null).get();  
+0

'https:// {tenant} -my.sharepoint.com'というロケーションURLリソースのトークンを試しましたが、まだ401を取得しています。' https:// manage.windowsazure.com'では、グラフ、O365 Sharepointすべての読み取り権限を持つ私のアプリにオンラインとAzure AD。 – Alastair

0

は、あなたが追加した次の権限行います Files.ReadAllをかFiles.ReadWriteAll 取り消しアプリケーションのアクセスと再試行(https://portal.office.com/account/#apps

"@ microsoft.graph.downloadUrl"はデフォルトで動作するはずですが、ライブラリ設定でオフラインアクセスを無効にしている可能性がありますか?このアクセストークンを使用して

AuthenticationContext context = new AuthenticationContext(url, true, ForkJoinPool.commonPool()); 
AuthenticationResult result = context.acquireTokenByRefreshToken(refreshToken, new ClientCredential(clientId, clientSecret), "https://graph.microsoft.com", null).get(); 
String token = result.getAccessTokenType() + " " + result.getAccessToken(); 

+0

私は 'ClientCredential'、' AsymmetricKeyCredential'、または完全にログインしているリフレッシュトークンを使ってダウンロードしていることはありません。私は '@ microsoft.graph.downloadUrl'を取得しますが、401を取得します。 ダウンロードが無効になる可能性はありますか? – Alastair

0

は私が管理者ユーザでログインしてリフレッシュトークンは、その後adal4jを使用して償還することができます app authentication using Azure AD

から得られたリフレッシュトークンを取得することにより、利用者からコンテンツをダウンロードすることに成功しました https://graph.microsoft.com/v1.0/drives/{driveid}/items/{itemid}/content

重要な追加ステップが1つあります。管理ユーザーを座に追加する必要がありますeコレクションのオーナーに、あなたがアクセスしているコンテンツのユーザーが含まれています。これはthis blogに記載されています。

関連する問題