はじめに
Graph API で Microsoft 365 テナントの情報にアクセスする際のアクセス許可について、概要をまとめました。
Graph API のアクセス許可
アクセス許可の種類
Graph API は、利用者や管理者が許可したテナント内の情報にのみアクセスすることができます。
Graph API にアクセスを許可する方法には、以下の 2 種類があります。
- ユーザー委任権限
- アプリケーション許可権限
ユーザー委任権限
ユーザー委任権限は、アプリケーションがユーザーに代わって情報にアクセスすることを許可する方法です。ユーザーがサインインして利用するアプリケーションで使用されます。
この方法では、ユーザーがアプリケーションにサインインし、アプリケーションに対して自分の代わりに情報へアクセスすることを行うことを許可します。
ユーザー委任権限では、ユーザーがアプリケーションにサインインする必要があります。
アプリケーションがアクセスできる情報は、サインインしたユーザーが参照できる範囲に限られます。
アプリケーション許可権限
アプリケーション許可権限は、テナント管理者が Entra ID 管理センターからアプリケーション自体に対して、アクセス権限を付与する方法です。テナント内の全ユーザーの情報にアクセスしたい場合などに使用します。
アプリケーション自体にアクセス権限が付与されているため、アプリケーションにユーザーがサインインする必要はありません。
アプリケーション許可権限が付与されたアプリケーションは、テナント全体の情報を取得することが可能になります。
アクセス許可の比較
2 つのアクセス許可の違いをまとめてみました。
主な違い
アクセス許可 | サインイン | 管理者による許可 | アクセスできる範囲 |
---|---|---|---|
ユーザー委任 | 必要 | API によっては必要 | サインインしたユーザーが参照できる範囲 |
アプリケーション許可 | 不要 | 常に必要 | テナント全体 |
ユーザー委任権限は一般ユーザーでも使用することができます。アプリケーション許可権限は常にテナント管理者がアクセス許可を付与する必要があります。
ユーザー委任権限の場合でも、一部の API についてはテナント管理者の同意が必要になります。
利用できるツールの違い
Graph Explorer は、ユーザー委任権限でのみ Graph API を実行することができます。Graph PowerShell の場合は、ユーザー委任 / アプリケーション許可のいずれの権限でも実行することができます。
アクセス許可 | Graph Explorer | Graph PowerShell |
---|---|---|
ユーザー委任 | 〇 | 〇 |
アプリケーション許可 | × | 〇 |
(参考:Graph エクスプローラーを使用して Microsoft Graph API を試す)
https://learn.microsoft.com/ja-jp/graph/graph-explorer/graph-explorer-overview
(参考:Microsoft Graph PowerShell SDK をインストールする)
https://learn.microsoft.com/ja-jp/graph/sdks/sdk-installation#install-the-microsoft-graph-powershell-sdk