認証と承認について学びます

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

認証と認可は、それぞれ ID とリソースへのアクセスを確認するために使用されるメカニズムです。このドキュメントでは、アプリに認証と認可を実装する前に知っておくべき重要な用語について説明します。

注: この概要は、Google Workspace API の認証と認可に重点を置いています。このドキュメントの一部の情報は、他の Google API には関連しない場合があります。

プロセスの概要

次の図は、Google Workspace API の認証と認可の大まかな手順を示しています。

認証と認可の実装手順の概要
図 1. 認証と認可の実装手順
  1. Google Cloud プロジェクトとアプリを構成する: 開発時に、Google Cloud Console でアプリを登録し、アプリを認証するための承認スコープとアクセス認証情報を API キー、エンドユーザー認証情報、またはサービス アカウントの認証情報で定義します。

  2. アクセスのためにアプリを認証する: アプリを実行すると、登録されたアクセス認証情報が評価されます。アプリがエンドユーザーとして認証されている場合、ログイン プロンプトが表示されることがあります。

  3. リソースのリクエスト: アプリが Google リソースにアクセスする必要がある場合、以前に登録したアクセス スコープを使用して Google に照会します。

  4. ユーザーの同意を求める: アプリがエンドユーザーとして認証されている場合、Google は OAuth 同意画面を表示し、ユーザーがアプリに対して要求されたデータへのアクセスを許可するかどうかを決定します。

  5. リソースに関する承認済みのリクエストを送信する: ユーザーがアクセスのスコープに同意すると、アプリが認証情報とユーザーが承認したアクセス スコープをリクエストにバンドルします。リクエストは、Google の承認サーバーに送信され、アクセス トークンが取得されます。

  6. Google がアクセス トークンを返す: アクセス トークンには、付与されたアクセス スコープのリストが含まれます。返されたスコープのリストがリクエストされたアクセス スコープよりも制限されている場合、アプリはトークンによって制限されている機能を無効にします。

  7. リクエストされたリソースへのアクセス: アプリは Google のアクセス トークンを使用して、関連する API を呼び出し、リソースにアクセスします。

  8. 更新トークンを取得する(省略可): アプリが単一のアクセス トークンの有効期間を超えて Google API にアクセスする必要がある場合、更新トークンを取得できます。

  9. 追加のリソースをリクエストする: 追加のアクセス権が必要な場合は、アプリからユーザーに新しいアクセス スコープを付与するよう求めます。その結果、アクセス トークンの取得を求める新しいリクエストが作成されます(ステップ 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 へのアクセスを許可するトークン。単一のアクセス トークンにより、スコープと呼ばれるさまざまなレベルの複数の 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 Console を使用して認証情報を作成する場合は、アプリケーションの種類を選択するよう求められます。アプリケーションの種類には、ウェブ アプリケーション(JavaScript)、Android、Chrome アプリ、iOS、テレビ、制限付き入力デバイス、デスクトップ アプリ(「インストール済みアプリ」とも呼ばれます)、ユニバーサル Windows プラットフォーム(UWP)があります。

サービス アカウント

特殊なタイプの Google アカウントであり、データにアクセスして認証を受ける必要がある、人間以外のユーザーを表します。アプリケーションはサービス アカウントの ID を想定して Google API を呼び出し、ユーザーが直接関与しないようにします。ユーザー単独では、サービス アカウントを使用してユーザーデータにアクセスすることはできません。データには Workspace API でアクセスする必要があります。ただし、サービス アカウントは、ドメイン全体の権限を委任することによってユーザーデータにアクセスできます。詳細については、サービス アカウントについてをご覧ください。

ドメイン全体の権限の委任

Google Workspace 組織のユーザーに代わってユーザーデータにアクセスするアプリケーションを認可できる管理機能。ドメイン全体の委任を使用すると、ユーザーデータに対して管理者関連のタスクを実行できます。このように権限を委任するには、Google Workspace 管理者が OAuth 2.0 のサービス アカウントを使用します。この機能のため、ドメイン全体の権限の委任を有効にできるのは特権管理者のみです。詳しくは、ドメイン全体の権限をサービス アカウントに委任するをご覧ください。

次のステップ

アプリの OAuth 同意画面を設定して、アプリがデータにアクセスすることをユーザーが理解、承認できるようにします。