2016-07-04 20 views
1

アプリケーションモードで実行すると、Microsoft Graph APIを使用してOneDrive for Businessのフォルダとファイルにアクセスできますか?アプリケーションモードのOneDrive for Business〜Microsoft Graph

私はAzure AD(証明書など)でアプリを正常に設定しました。私はベアラトークンを取得できました。特定のエンドポイントからのデータも正常に要求しました。ただし、ユーザーのOneDrive for Businessフォルダまたはファイルで作業することはできません。

その他のケースでは、ユーザーOneDrives内のフォルダとファイルに対してCRUD操作を実行するためにサービスアカウント(完全な管理者権限を持つユーザーアカウント)を使用していますが、これはすべてのユーザーに対してアクセス許可を確認する必要がありますフォルダやファイルをCRUD操作の前に実行し、サービスアカウントをファイルとフォルダのアクセス権設定のユーザーに公開します。グラフAPIをアプリモードで使用すると、これらの問題はすべて解決すると思いますか?

私がどのような作品にいくつかの例を持って、そしてもっと重要なのは、doesen'tその一部:

  • graph.microsoft.com/v1.0/users
    は問題なく、ユーザーのリストを返します。

  • graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER
    問題のない指定されたユーザーに関する情報を返します。

  • graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive
    指定したユーザーに関する情報を問題なく返します。

  • graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive/root
    指定されたユーザーに関する情報が問題なく返されます。

  • graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive/root/children
    は期待通りに指定したユーザーがルートの子供をドライブについての情報を返しません。

  • graph.microsoft.com/v1.0/drives/UPN-PLACEHOLDER/root/children
    指定されたユーザーのドライブルートの子についての情報を期待通りに返しません。

  • graph.microsoft.com/v1.0/drives/DRIVE-ID-PLACEHOLDER/root/children
    は期待通りに指定したユーザーがルートの子供をドライブについての情報を返しません。

その他の注意事項:

  • 予想通り、私は通常のユーザーアカウントを使用してログインし、«/私»キーワードまたは私は完全な管理者権限を持つサービスアカウントを(使用している場合場合は、すべてのこれらのエンドポイントが動作UPNを持つアプリケーションモードでは、すべてがルートよりも深いレベルの情報を要求します(つまり、ルート/子または特定のフォルダ)がempyを返します。
  • 私たちは、SDK抽象化と純粋なHTTP要求の両方をうまく使いこなしてみました。
  • 我々は、さまざまなアプリのpriviledgeの組み合わせの多くを試してみましたが、現在あなたがこれを行うことはできません理由は、我々はまだアプリのみの権限がOneDriveへのアクセスに公開しないことです
+0

アプリ専用トークンにはどのような役割がありますか? – Brad

答えて

2

に対するすべての権限を持っていましたファイル。これは私たちが取り組んでいることであり、すぐに公開されることを願っています。 blog postsにお気軽にご連絡ください。この機能が追加されたときにお知らせします。

希望します。

+0

よろしくお願いします。だから私はあなたを正しく理解しています:クライアントID、秘密と証明書を使ってトークンを要求すると、私はAzure AD(アプリケーション権限)の左のドロップダウンからアクセス権を持っています。 Azure AD(委任された権限)の右のドロップダウンからのアクセス許可? –

+0

ああ、もう一つの迅速なフォローアップの質問:クライアントSDK、シークレット、ユーザー名、パスワードを使ってトークンをリクエストするには、Graph SDKを使用できますか?私はこれを成功せずに試してみましたが、現在は "手動"のhttp投稿を使用していますが、両方のシナリオでトークンを取得するのと同じテクニックを使用することをお勧めします。 私は、クライアントID、シークレット、ユーザー名とパスワードを文字列として、または証明書の有無にかかわらずClientCredentialとUserPasswordCredentialを使用するAcquireTokenAsync()のオーバーロードを見つけることはできません。 UserCredentialsを使用した例が見つかりましたが、これらはv3で変更されたようです。 –

関連する問題