Google Drive API のスコープを選択する

このドキュメントでは、Google Drive API 固有の認可と認証について説明します。このドキュメントを読む前に、認証と認可についてで Google Workspace の認証と認可に関する一般的な情報を必ずお読みください。

認可用に OAuth 2.0 を構成する

アプリを承認するには、Google ドライブ API で OAuth スコープを Google Cloud コンソールとアプリの 2 か所で定義する必要があります。

Google Cloud コンソールで、アプリに必要なスコープを OAuth 同意画面の構成で宣言する必要があります。これらは、アプリがリクエストできる権限の最上位レベルです。これは Google への正式なリクエストとして機能し、宣言されたスコープは同意画面でユーザーに表示されます。これにより、アプリがアクセスをリクエストしているデータとアクションをユーザーが正確に把握できます。

OAuth 同意画面を構成し、スコープを選択して、ユーザーとアプリの審査担当者に表示される情報を定義し、後でアプリを公開できるようにアプリを登録します。

アプリで API を開始するときに、そのセッションに必要な特定のスコープを明示的にリクエストする必要があります。Google Cloud コンソールでは、アプリがリクエストできる権限の最大レベルが定義されますが、コードによって特定のユーザーの実際の権限が決まります。これにより、アプリが特定のタスクに必要な権限のみをリクエストするようになります。

アプリのコード内で、1 つ以上の OAuth スコープを配列として一度に宣言できます。

次のコードサンプルは、複数の OAuth スコープを宣言する方法を示しています。

Java

List<String> SCOPES = Arrays.asList(
  DriveScopes.DRIVE_FILE,
  DriveScopes.DRIVE_METADATA_READONLY
);

Python

SCOPES = [
  "https://www.googleapis.com/auth/drive.file",
  "https://www.googleapis.com/auth/drive.metadata.readonly",
]

Node.js

const SCOPES = [
  'https://www.googleapis.com/auth/drive.file',
  'https://www.googleapis.com/auth/drive.metadata.readonly'
];

スコープが宣言され、完全なコードサンプルで使用される方法については、クイックスタートをご覧ください。

Drive API のスコープ

アプリに付与するアクセスレベルを定義するには、承認スコープを特定して宣言する必要があります。承認スコープは、Google Workspace アプリ名、アクセスするデータの種類、アクセスレベルを含む OAuth 2.0 URI 文字列です。スコープとは、ユーザーの Google アカウント データを含む Google Workspace データを操作するためのアプリのリクエストです。

アプリがインストールされると、ユーザーはアプリで使用されるスコープの検証を求められます。一般に、できる限り狭い範囲のスコープを選択し、アプリで必要ないスコープはリクエストしないようにします。ユーザーは、明確に説明された限定的なスコープに対してアクセス権限を付与する傾向があります。

可能な限り、機密性の低いスコープを使用してください。機密性の低いスコープでは、ファイルごとのアクセス権が付与され、アプリに必要な特定の機能へのアクセスが制限されます。

機密性の高いスコープ以外

ほとんどのユースケースでは、次の Drive API スコープが推奨されます。

スコープコード 説明
https://www.googleapis.com/auth/drive.appdata
https://www.googleapis.com/auth/drive.appfolder
Google ドライブ内のアプリの設定データを表示、管理します。
https://www.googleapis.com/auth/drive.install アプリを [...で開く] メニューまたは [新規] メニューのオプションとして表示することを許可します。
https://www.googleapis.com/auth/drive.file Google Picker API またはアプリのファイル選択ツールを使用して、アプリで開いたファイルまたはユーザーがアプリと共有したファイルに対して、新しいドライブ ファイルを作成したり、既存のファイルを変更したりします。

機密性の高いスコープ

スコープコード 説明
https://www.googleapis.com/auth/drive.apps.readonly ドライブへのアクセスを許可したアプリを表示します。

制限付きスコープ

スコープコード 説明
https://www.googleapis.com/auth/drive ドライブのすべてのファイルを表示、管理できます。
https://www.googleapis.com/auth/drive.readonly ドライブのすべてのファイルを表示、ダウンロードできます。
https://www.googleapis.com/auth/drive.activity ドライブ内のファイルのアクティビティ履歴の表示とアクティビティの追加。
https://www.googleapis.com/auth/drive.activity.readonly ドライブ内のファイルのアクティビティ履歴を表示します。
https://www.googleapis.com/auth/drive.meet.readonly Google Meet で作成または編集されたドライブ ファイルの参照。
https://www.googleapis.com/auth/drive.metadata ドライブ内のファイルのメタデータを表示、管理します。
https://www.googleapis.com/auth/drive.metadata.readonly ドライブ内のファイルのメタデータを表示できます。
https://www.googleapis.com/auth/drive.scripts Google Apps Script のスクリプトの動作を変更します。

上記の表のスコープは、次の定義に従って機密性を示しています。

アプリが他の Google API へのアクセスを必要とする場合は、それらのスコープも追加できます。Google API スコープの詳細については、OAuth 2.0 を使用して Google API にアクセスするをご覧ください。

特定の OAuth 2.0 スコープの詳細については、Google API の OAuth 2.0 スコープをご覧ください。

制限付きスコープの要件

Google ドライブの制限付きスコープを使用できるのは、特定のアプリケーション タイプのみです。対象となるには、アプリが次のいずれかのカテゴリに該当する必要があります。

  1. バックアップと同期: ユーザーのドライブ ファイルのローカル同期や自動バックアップが可能なプラットフォーム固有のアプリやウェブアプリ。

  2. 生産性と教育: ドライブ ファイル、メタデータ、権限とのやり取りを伴う可能性のある、メインのユーザー インターフェースを備えたアプリ。これらのアプリには、タスク管理、メモ作成、ワークグループ コミュニケーション、クラスルーム コラボレーションのアプリが含まれます。

  3. レポートとセキュリティ: ファイルの共有方法やアクセス方法に関するユーザーまたは顧客の分析情報を提供するアプリ。

制限付きスコープを引き続き使用するには、制限付きスコープの確認に向けてアプリを準備する必要があります。

制限付きスコープから既存のアプリを移行する

Drive アプリで制限付きスコープを使用している場合は、機密性の低い Drive API スコープに移行することをおすすめします。drive.file などの機密性の低いスコープを使用すると、アプリに必要な特定の機能へのファイル単位の狭いアクセス権が付与されます。

多くのアプリは、変更なしでファイル単位のアクセスに移行できます。

独自のファイル選択ツールを使用している場合は、さまざまなスコープを完全にサポートする Google Picker API に切り替えることをおすすめします。

ドライブ ファイル スコープのメリット

drive.file OAuth スコープを Google Picker API と組み合わせて使用すると、アプリのユーザー エクスペリエンスと安全性の両方を最適化できます。

drive.file OAuth スコープを使用すると、ユーザーはアプリと共有するファイルを選択できます。これにより、ユーザーはアプリによるファイルへのアクセスが制限され、より安全であることを確認できるため、より安心してアプリを利用できます。一方、すべてのドライブ ファイルへの広範なアクセスを要求すると、ユーザーがアプリを利用しなくなる可能性があります。

drive.file スコープを使用する理由を次に示します。

  • ユーザビリティ: drive.file スコープはすべての Drive API REST リソースで動作します。つまり、より広範な OAuth スコープと同じように使用できます。

  • 機能: Google Picker API は、ドライブの UI と同様のインターフェースを提供します。これには、ドライブ ファイルのプレビューとサムネイルを表示する複数のビューや、ユーザーがメインアプリを離れることのないインラインのモーダル ウィンドウが含まれます。

  • 利便性: Google Picker ファイルのフィルタを使用する際に、特定のドライブ ファイル形式(Google ドキュメント、スプレッドシート、写真など)にフィルタを適用できます。

  • 簡単な検証: drive.file は機密情報ではないため、検証プロセスを効率化できます。

更新トークンを安全に保存する

Drive API を使用して個人データにアクセスするには、アプリでその API へのアクセスを許可するアクセス トークンを取得する必要があります。1 つのアクセス トークンで、リクエストしたスコープに応じて、複数の API へのさまざまなレベルのアクセス権を付与できます。

アクセス トークンは有効期間が短いため、Drive API に長期的にアクセスするには更新トークンを使用する必要があります。更新トークンを使用すると、アプリで新しいアクセス トークンをリクエストできます。

更新トークンを安全な長期保存に保存し、有効な限り使用し続けます。

詳しくは、OAuth 2.0 を使用して Google API にアクセスするをご覧ください。