私はAzure Active Directoryに1年以上前にアプリケーションを定義していましたが、その前にすべてが動作するまで必要なアクセス権で遊んでいました。アプリケーションのディレクトリアクセス権が取り消されましたが、グラフAPIはまだデータを読み込みます
前回から数分前まで、「Windows Azure Active Directory」には「ディレクトリデータの読み取り」と「サインインしてユーザープロファイルを読む」の2つの権限がありました。
しかし、私は彼らを取り消さして「保存」をクリックした:
私はそのアプリのクライアントIDと再びグラフAPIにログインする前に、AADに同期化のための数分を与え、 Keyと対応するTenantIDが表示されますが、ディレクトリデータを読み取ることができることがわかりました。
元々、私は別のアプリで反対の問題をデバッグしていました。他のアプリケーションは、同じアクセス許可(「ディレクトリデータの読み取り」と「ユーザーのプロファイルの読み取りと読み取り」)を使用してこのアプリケーションと同じように設定されますが、常にエラーがスローされます。
System.Data.Services。 Client.DataServiceClientException:{"odata.error":{"code": "Authorization_RequestDenied"、 "message":{"lang": "en"、 "value": "操作を完了するための権限がありません"}}}
ログイン情報のいずれかが間違っている場合、返されるエラーは異なります(400 Bad Requestまたは401 Not Authorized)ので、ログインは機能しますが、アプリケーションにはディレクトリへのアクセスに必要な権限がないようですデータ。
私は私の最初のアプリは一度これらの他の権限が設定されていたし、再び「失効した」ことを排除することはできませんので、私は考えられないことを考えなければならない:
それは、アプリへのアクセス権のだろういったん認められれば、本当に再び取り消されることはありませんか?
更新:いいえ、それほど簡単ではありません。彼らは取り消されないだけでなく、新しいアプリのために設定されていません。私は新しいアプリ上のすべての権限を確認した場合でも、「権限が不十分」のエラーがまだそこにある:
アプリケーションにログインしているユーザーはいません。私のWindowsサービスは、アプリケーションのClientIDとTenantIDとKeyを使用してGraph APIに接続しており、さらに認証せずにGraph APIからデータを読み取ることができるはずです。 – Alexander
ユーザーが存在しないアプリケーションであっても、最初に同意する必要があります。つまり、権限をまだ更新するには、ユーザーがアプリケーションにサインインする必要があります。 –