サーバーアプリケーションがMicrosoft Graphを使用して自分のExcelファイルとやりとりしたい。つまり、ファイルはアプリケーションに属し、アプリケーションの特定のユーザーには属しません。ユーザーの操作なしでMicrosoft Graphユーザーアカウントを使用するサービスを許可する方法?
Azure IDを持つアプリケーションを登録し、Microsoft Graphの「ユーザーがアクセスできるすべてのファイルにフルアクセスする」アクセス許可を与えました。
OAuthリソースオーナーのパスワード資格認定を使用しようとしています。
私はこのような認証トークンを取得することができます
POST https://login.microsoftonline.com/common/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=password
&resource=https://graph.microsoft.com
&client_id=<ID of application registered with Azure AD>
&username=<Microsoft username>
&password=<password>&scope=Files.ReadWrite.All
をしかし、応答が唯一の範囲User.Read
を示しています。
{
"token_type": "Bearer",
"scope": "User.Read",
"expires_in": "3600",
"ext_expires_in": "0",
"expires_on": "1494467388",
"not_before": "1494463488",
"resource": "https://graph.microsoft.com",
"access_token": "eyJ0e...",
"refresh_token": "AQAB..."
}
そして、私はアカウントの1ドライブ内のファイルを一覧表示しようとすると、私がやりますエラーは発生しませんが、レスポンスにアイテムが含まれていません:
Request:
GET https://graph.microsoft.com/v1.0/me/drive/root/children
Authorization: bearer eyJ0e...
Response:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('<account ID>')/drive/root/children",
"value": []
}
同じアカウントでログインしたときに、グラフエクスプローラで同じリクエストを行います。応答には、そのアカウントの1つのドライブルートにあるすべてのアイテムが含まれています。
私は、OAuthクライアントの資格認定(calling Microsoft Graph in a serviceの手順に従って)が許可されているが、特定のユーザーアカウント(アプリケーションだけでなく)の承認を得ているため、私はそのユーザーのファイルにアクセスすることを期待します。
私は間違ったことをしていますか、またはリソース所有者パスワード資格認定を使ってファイルアクセスをサポートしていませんか?
後者の場合、アプリケーションでユーザーの資格情報を使用してMicrosoft Graphを介してユーザーの操作なしでExcelファイルを操作できるようにするにはどうすればよいですか?
UPDATE:
私が使用していたアカウントに割り当てられた管理者権限を持っていた、とAzureのポータルでのMicrosoftのグラフのためのアプリケーションのアクセス権を再設定し、それはまだ私のために働いていませんしています。
は、ここで私が使用しているアカウントの詳細、次のとおりです。
ファイル自体がどこに格納されているかは不明です。言い換えれば、Excelファイルをどこに保存したいのですか?管理者独自のOneDriveの下にある場合は、サーバー側にリフレッシュトークンをキャッシュし、通常のファイルの読み取り/書き込みアクセス権を使用できます。 –
もう1つの考え方 - SharePointチームサイトは、Excelファイルを個々のユーザーのドライブの外に保存するための別のオプションかもしれません。 –
@SudhiRamamurthy私はログインしているユーザーアカウントのOneDriveルートにファイルを保存しています。私はユーザーのアカウントを使用する必要があると信じています。なぜなら、アプリケーションのみを許可すると、ファイルのアクセス権を取得できないからです。 SharePointチームサイトをご利用いただきありがとうございます。私はそれを調べます。 – Ergwun