認証と認可は、それぞれ ID とリソースへのアクセスを検証するために使用されるメカニズムです。このドキュメントでは、アプリに認証と認可を実装する前に知っておくべき重要な用語について説明します。
注: この概要では、Google Workspace API の認証と認可を中心に説明します。このドキュメントの一部の情報は、他の Google API とは関係がない場合があります。
プロセスの概要
次の図は、Google Workspace API の認証と認可の大まかな手順を示しています。

Google Cloud プロジェクトとアプリを構成する: 開発中に、Google Cloud コンソールでアプリを登録し、API キー、エンドユーザー認証情報、またはサービス アカウント認証情報を使用してアプリを認証するための認可スコープとアクセス認証情報を定義します。
アプリのアクセスを認証する: アプリの実行時に、登録されたアクセス認証情報が評価されます。アプリがエンドユーザーとして認証されている場合、ログイン メッセージが表示されることがあります。
リソースのリクエスト: アプリが Google リソースにアクセスする必要がある場合、以前に登録したアクセス スコープを使用して Google にリクエストします。
ユーザーの同意を求める: アプリがエンドユーザーとして認証されている場合、Google は OAuth 同意画面を表示し、ユーザーがアプリに対してリクエストされたデータへのアクセスを許可するかどうかを決定します。
リソースに承認済みのリクエストを送信する: ユーザーがアクセスのスコープに同意すると、アプリは認証情報とユーザーが承認したアクセス スコープをリクエストにまとめて、リクエストは、アクセス トークンを取得するために Google の認可サーバーに送信されます。
Google がアクセス トークンを返す: アクセス トークンには、許可されたアクセス スコープのリストが含まれます。返されるスコープのリストがリクエストされたアクセス スコープよりも制限されている場合、アプリはトークンによって制限されている機能を無効にします。
リクエストされたリソースにアクセスする: アプリは、Google のアクセス トークンを使用して、関連する API を呼び出し、リソースにアクセスします。
更新トークンを取得する(省略可): 単一のアクセス トークンの有効期間を超えて Google API にアクセスする必要がある場合は、更新トークンを取得できます。
追加のリソースをリクエストする: 追加のアクセスが必要な場合、アプリがユーザーに新しいアクセス スコープの付与を求め、その結果、アクセス トークンを取得する新しいリクエストが生成されます(ステップ 3 ~ 6)。
重要な用語
認証と認可に関連する用語は次のとおりです。
- 認証
プリンシパルは、ユーザーまたはユーザーに代わって動作しているアプリであるプリンシパルが、本人の声であることを保証する行為です。Google Workspace アプリを作成する際には、次のタイプの認証に注意する必要があります。
- ユーザー認証
- ユーザーがアプリに認証する(ログインする)。ユーザー認証は、通常、ユーザーがユーザー名とパスワードの組み合わせを使用してアプリの本人確認を行うログイン プロセスで行われます。ユーザー認証は、「Google でログイン」を使用してアプリに組み込めます。
- アプリ認証
- アプリを実行しているユーザーに代わってアプリが Google サービスに直接認証を行う動作。アプリの認証は通常、アプリのコード内で事前に作成された認証情報を使用して行われます。
- 認可
プリンシパルがデータにアクセスしたりオペレーションを実行したりするために必要な権限(「権限」)。認可の処理は、アプリ内で記述したコードを通じて行われます。このコードは、アプリがユーザーに代わって処理を行うことを希望していることと、許可されている場合はアプリの一意の認証情報を使用して Google からのアクセス トークンを取得し、データの取得やオペレーションを実行するために使用されます。
- Credential
ソフトウェア セキュリティで使用される ID の形式。認証では、認証情報は通常、ユーザー名とパスワードの組み合わせです。Google Workspace API の承認における認証情報は、通常、アプリ デベロッパーと認証サーバー間でのみ認識される一意のシークレット文字列などの識別子です。Google では、API キー、OAuth 2.0 クライアント ID、サービス アカウントの認証情報をサポートしています。
- API キー
- 一般公開データへのアクセスをリクエストするために使用される認証情報(Maps API を使用して提供されるデータ、または Google Workspace 共有設定内の [インターネット上のリンクを知っている全員] で共有された Google Workspace ファイルなど)。
- OAuth 2 クライアント ID
- ユーザー所有データへのアクセスをリクエストするために使用される認証情報。これは、Google Workspace API を使用してデータへのアクセスをリクエストするときに使用されるメインの認証情報です。この認証情報にはユーザーの同意が必要です。
- クライアント シークレット
- アプリケーションと認証サーバーだけが認識する必要がある文字列。クライアント シークレットは、承認されたリクエスト元にのみトークンを付与することで、ユーザーのデータを保護します。クライアント シークレットをアプリに含めないでください。
- サービス アカウント キー
- Google サービスの承認を受けるためにサービス アカウントによって使用されます。
- サービス アカウント
- サーバー間のインタラクションに使用される認証情報(データにアクセスしたり、なんらかのオペレーションを実行したりするプロセスとして実行するフェイスレス アプリなど)。通常、サービス アカウントはクラウドベースのデータとオペレーションへのアクセスに使用されます。ただし、ドメイン全体の権限の委任と併用すると、ユーザーデータにアクセスするために使用できます。
- スコープ
アプリに付与されるリソースまたはアクションへのアクセス レベルを定義する OAuth 2.0 URI 文字列。Google Workspace の場合、承認スコープの URI には、Google Workspace アプリ名、アクセスするデータの種類、アクセスレベルが含まれます。アプリのユーザーはリクエストされたスコープを確認して付与するアクセス権を選択すると、Google の認証サーバーが許可されたスコープをアプリにアクセス トークンで返します。詳しくは、アプリのスコープを選択する方法をご覧ください。
- 認可サーバー
アクセス トークンを使用して、アプリがリクエストしたデータとオペレーションへのアクセス権を付与する Google のサーバー。
- 認証コード
アクセス トークンの取得に使用する認証サーバーから送信されるコード。コードは、アプリケーション タイプがウェブサーバー アプリかインストール済みアプリである場合にのみ必要です。
- アクセス トークン
Google Workspace API へのアクセス権を付与するトークン。1 つのアクセス トークンで、スコープと呼ばれる複数のレベルのアクセス権を複数の API に付与できます。アプリの認証コードはアクセス トークンをリクエストし、アクセス トークンを使用して Google Workspace API を呼び出します。
- リソース サーバー
アプリが呼び出す API をホストするサーバー。
- OAuth 2.0 フレームワーク
「安全な委任アクセス」を提供するために、またはアプリのユーザーに代わってデータやオペレーションにアクセスするための、アプリで使用できる標準。アプリで使用する認証と認可のメカニズムは、OAuth 2.0 フレームワークの実装を表します。
- プリンシパル
リソースへのアクセス権を付与できるエンティティ(ID とも呼ばれます)。Google Workspace API は、ユーザー アカウントとサービス アカウントの 2 種類のプリンシパルをサポートします。詳細については、プリンシパルをご覧ください。
- データ型
認証と認可のコンテキストでは、データ型はアプリがアクセスしようとしているデータを所有するエンティティを指します。次の 3 つのデータ型があります。
- パブリック ドメインのデータ
- 誰でもアクセスできるデータ(Google マップの一部のデータなど)。通常、このデータには API キーを使用してアクセスします。
- エンドユーザー データ
- 特定のユーザーまたはグループに属するデータ(特定のユーザーの Google ドライブのファイルなど)。通常、このデータ型へのアクセスには OAuth 2 クライアント ID またはサービス アカウントを使用します。
- クラウドデータ
- Google Cloud プロジェクトが所有するデータ。通常、このデータの種類にはサービス アカウントによってアクセスされます。
- ユーザーの同意
アプリのユーザーがデータにアクセスすることを承認し、ユーザーに代わって操作を実行する承認ステップ。
- アプリケーションの種類
作成するアプリのタイプ。Google Cloud コンソールを使用して認証情報を作成する場合は、アプリケーションの種類を選択するよう求められます。アプリケーション タイプは、ウェブ アプリケーション(JavaScript)、Android、Chrome アプリ、iOS、テレビ、制限付き入力デバイス、デスクトップ アプリ(「インストール済みアプリ」とも呼ばれます)、ユニバーサル Windows プラットフォーム(UWP)です。
- サービス アカウント
特別なタイプの Google アカウントで、データにアクセスして認証を受ける必要がある人間以外のユーザーを表します。アプリケーションはサービス アカウントの ID を想定して Google API を呼び出すため、ユーザーが直接関与することはありません。サービス アカウントだけでは、ユーザーデータにアクセスできません。また、Workspace API を使用してカスタムアクセスされるデータにアクセスすることはできません。ただし、サービス アカウントは、ドメイン全体の権限の委任を実装してユーザーデータにアクセスできます。詳細については、サービス アカウントについてをご覧ください。
- ドメイン全体の権限の委任
Google Workspace 組織のユーザーに代わってアプリケーションによるユーザーデータへのアクセスを承認できる管理機能。ドメイン全体の委任を使用して、ユーザーデータで管理者関連のタスクを実行できます。この方法で権限を委任するには、Google Workspace 管理者が OAuth 2.0 のサービス アカウントを使用します。この機能が有効であるため、ドメイン全体の権限を委任できるのは特権管理者のみです。詳しくは、ドメイン全体の権限をサービス アカウントに委任するをご覧ください。
次のステップ
アプリの OAuth 同意画面を設定して、アプリがデータに対してどのようなアクセス権を持っているかをユーザーが理解して承認できるようにします。