このドキュメントには、Google Drive API 固有の認可と認証の情報が記載されています。このドキュメントを読む前に、 認証と認可について で Google Workspace の一般的な認証と認可の情報をお読みください。
認可用に OAuth 2.0 を構成する
アプリを認可するには、Google Drive 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 |
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 スクリプトの動作を変更します。 |
上記の表のスコープは、次の定義に従って機密性を示しています。
非機密: これらのスコープは、認可の範囲が最も狭く、基本的な OAuth アプリ の確認のみが必要です。詳しくは、確認の要件をご覧ください。
機密: これらのスコープは、ユーザーがアプリに認可した特定の Google ユーザーデータへのアクセスを提供します。追加の OAuth アプリ の確認が必要です。詳しくは、機密性の高いスコープと制限付きスコープの要件をご覧ください。
制限付き: これらのスコープは、Google ユーザーデータへの広範なアクセスを提供し、 制限付きスコープの OAuth アプリ の確認が必要です。詳しくは、Google API サービスのユーザーデータ ポリシーと特定の API スコープの追加要件をご覧ください。Google ドライブの 利用規約もご覧ください。
制限付きスコープのデータをサーバーに保存(または送信)する場合は、セキュリティ評価を受ける必要があります。
アプリが他の Google API へのアクセスを必要とする場合は、それらのスコープも追加できます。Google API スコープの詳細については、OAuth 2.0 を使用して Google API にアクセスするをご覧ください。
特定の OAuth 2.0 スコープの詳細については、Google API の OAuth 2.0 スコープをご覧ください。
制限付きスコープの資格要件
Google ドライブで制限付きスコープを使用できるのは、特定の種類のアプリケーションのみです。資格を得るには、アプリが次のいずれかのカテゴリに該当する必要があります。
バックアップと同期: ユーザーのドライブ ファイルのローカル同期 や自動バックアップが可能なプラットフォーム固有のアプリやウェブアプリ。
生産性と教育: ドライブ ファイル、メタデータ、権限の操作を 伴う可能性のあるメインのユーザー インターフェースを 備えたアプリ。これらのアプリには、タスク管理、メモ作成、ワークグループ コミュニケーション、クラスルーム コラボレーション アプリなどがあります。
レポートとセキュリティ: ファイルの共有方法やアクセス方法に関するユーザーまたは顧客のインサイトを 提供するアプリ。
制限付きスコープを引き続き使用するには、制限付きスコープの確認に向けてアプリを準備する必要があります 。
既存のアプリを制限付きスコープから移行する
ドライブ アプリで制限付きスコープを使用している場合は、機密性の高い Drive API スコープに移行することをおすすめします。drive.file などの非機密のスコープを使用すると、ファイル単位のアクセス権が付与され、アプリに必要な特定の機能へのアクセスが制限されます。
多くのアプリは、変更を加えることなくファイル単位のアクセスに移行できます。
独自のファイル選択ツールを使用している場合は、さまざまなスコープを完全にサポートする Google Picker APIに切り替えることをおすすめします。
ドライブ ファイル スコープのメリット
Google Picker API と組み合わせて drive.file OAuth スコープを使用すると、アプリのユーザー エクスペリエンスと安全性の両方が最適化されます。
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 にアクセスするをご覧ください。
関連トピック
- Google Workspace の認証と認可の概要については、 認証と認可についてをご覧ください。
- Google Cloud の認証と認可の概要については、 認証の概要をご覧ください。
- サービス アカウントの詳細については、Service accountsをご覧ください。
- トラブルシューティングについては、エラーを解決する をご覧ください。