認証と認可のユースケース

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

このページでは、さまざまな認証と認可のユースケースを示します。また、各ユースケースの実装方法に関する情報へのリンクも示します。

Google での認証の概要については、Google での認証をご覧ください。

Google API の認証

Google API では、リクエストごとに有効なアクセス トークンまたは API キーが必要です。これらの必要な認証情報を指定する方法は、コードが実行されている場所と、API で受け入れられる認証情報の種類によって異なります。

クライアント ライブラリとアプリケーションのデフォルト認証情報を使用する

Google API の使用には、クライアント ライブラリとアプリケーションのデフォルト認証情報(ADC)を使用することをおすすめします。ADC は、アプリケーション環境に基づいて認証情報を自動的に検索し、その認証情報を Google Cloud APIs の認証に使用するために、Cloud クライアント ライブラリと Google API クライアント ライブラリで使用されるストラテジです。ADC を設定してクライアント ライブラリを使用すると、Google Cloud サービスと API に対するアプリケーションの認証方法を変更せずに、開発環境または本番環境でコードを実行できます。

ADC の設定方法は、コードの実行場所によって異なります。ADC は、サービス アカウントとしての認証ユーザーとしての認証の両方をサポートしています。

Google Kubernetes Engine(GKE)から認証する

Workload Identity を使用して、GKE 上で実行されているワークロードが Google API に安全にアクセスできるようにします。Workload Identity を使用すると、GKE クラスタ内の GKE サービス アカウントが Identity and Access Management(IAM)サービス アカウントとして機能します。

Cloud Run for Anthos から認証する

Cloud Run for Anthos サービスを認証するには、Workload Identity を使用します。これにより、Google API にアクセスできるようになります。

API キーを受け取る API を使用する

API キーは、請求と割り当てを目的として API リクエストを Google Cloud プロジェクトに関連付けます。API が API キーをサポートしている場合、API リクエストでは、トークンの代わりに API キーを指定できます。API が API キーをサポートしているかどうかを確認するには、該当する API のドキュメントをご覧ください。

自己署名 JWT を使用する

一部の Google API は、アクセス トークンの代わりに自己署名 JSON ウェブトークン(JWT)をサポートしています。自己署名 JWT を使用すると、Google の承認サーバーへネットワーク リクエストを行う必要がなくなります。これは高度な手法であり、独自の署名付き JWT を作成する必要があります。トークンの詳細については、トークンの種類をご覧ください。

認証ライブラリとパッケージを使用する

ADC と、Cloud クライアント ライブラリまたは Google API クライアント ライブラリによって提供される OAuth 実装が使用できない場合は、認証ライブラリとパッケージを使用できます。

次の認証ライブラリとパッケージを使用できます。

Google の OAuth 2.0 エンドポイントを使用して、OAuth 2.0 フローを実装することもできます。これは高度なアプローチであり、OAuth 2.0OpenID Connect の仕組みをより深く理解する必要があります。詳しくは、ウェブサーバー アプリケーションに OAuth 2.0 を使用するをご覧ください。

Google Cloud サービス固有のユースケース

一部の Google Cloud サービスは、サービス固有の認証フローをサポートしています。

署名付き URL を使用して Cloud Storage リソースへの期限付きアクセスを提供する

署名付き URL では、特定の Cloud Storage リソースへの期限付きアクセスが提供されます。

Anthos クラスタの認証

Anthos クラスタの認証には Google Cloud ID またはサードパーティの ID プロバイダを使用できます。

API Gateway または Cloud Endpoints を使用してデプロイされる認証用の API を構成する

API Gateway と Cloud Endpoints は、サービス間認証と、Firebase、Google 署名付き ID トークン、Okta、Auth0、JWT によるユーザー認証をサポートしています。

詳細については、各プロダクトのドキュメントをご覧ください。

IoT デバイスからの IoT Core の認証

モノのインターネット(IoT)デバイスは、JWT を使用して IoT Core の認証を行います。

Cloud Run または Cloud Functions でホストされているアプリケーションの認証

Cloud Run と Cloud Functions でホストされるアプリケーションでは、認証に OpenID Connect(OIDC)トークンまたは ID トークンが必要です。

詳しくは、以下のホスティング サービスのプロダクト ドキュメントをご覧ください。ID トークンを取得するその他の方法については、ID トークンを取得するをご覧ください。

Cloud Run

Cloud Run サービスの設定は、サービスの呼び出し方法によって異なります。Cloud Run サービスから他のサービスに対する認証も必要になる場合があります。その場合、OIDC ID トークンが必要になります。

ウェブアプリやモバイルアプリからサービスへのユーザーを認証するには、Identity Platform または Firebase Authentication を使用します。Identity-Aware Proxy(IAP)を使用して内部ユーザーを認証することもできます。

Cloud Functions

関数を呼び出すときは、呼び出しを認証する必要があります。ユーザー認証情報または OIDC ID トークンを使用できます。

アプリケーション ユーザーの認証

アプリケーションのエンドユーザーを認証する方法は、残りのアプリケーション環境によって異なります。以下の説明を使用して、アプリケーションに最適なオプションを理解してください。

認証サービス 説明
Google Identity Services

Google Identity Services には、Google でログイン、Google のユーザー ログインボタン、Identity Services API と SDK が含まれています。Google Identity Services は、OAuth 2.0 と OpenID Connect(OIDC)プロトコルに基づいています。

モバイルアプリを作成していて、Gmail や Google Workspace のアカウントでユーザーのログインが必要な場合や、既存のログイン システムで Google アカウントを使用する場合は、「Google でログイン」の使用をおすすめします。

詳細

「Google でログイン」は、Gmail や Google Workspace アカウントのログインを提供し、ワンタイム パスワード(OTP)をサポートします。「Google でログイン」は、Google のみのアカウント、または既存のログイン システムの Google アカウントを対象とします。

「Google でログイン」は、iOSAndroidウェブ アプリケーションで使用できます。

Firebase Authentication

Firebase Authentication には、さまざまな種類のユーザー アカウント タイプについて、アプリケーションの認証を行う認証サービスとライブラリが用意されています。

さまざまなプラットフォームからのユーザー ログインを受け入れる必要がある場合は、Firebase Authentication が適しています。

詳細

Firebase Authentication には、さまざまなタイプのユーザー アカウントに対する認証機能を備えています。Firebase Authentication はパスワード認証のほか、Google、Facebook、Twitter などのプラットフォームと連携したログインをサポートしています。

Identity Platform と Firebase Authentication はどちらも Google Identity Services に基づいています。Firebase Authentication は、一般ユーザー向けのアプリケーションを対象としています。Identity Platform は、独自の ID プロバイダを使用するユーザーや、Identity Platform で提供されるエンタープライズ対応機能を必要とするユーザーに最適です。これらのプロダクトの違いについて詳しくは、Identity Platform と Firebase Authentication の違いをご覧ください。

詳しくは、次のリンクをご覧ください。

Identity Platform

Identity Platform は、エンタープライズクラスの ID とアクセス管理機能を自社アプリケーションに組み込むための顧客 ID とアクセス管理(CIAM)プラットフォームです。

Google Workspace などの Google ID プロバイダで使用するアプリケーションを作成する場合や、独自の Identity and Access Management サービスを実装する場合は、Identity Platform の使用をおすすめします。

詳細

Identity Platform は、ユーザーの登録とログインを管理するカスタマイズ可能なドロップイン ID と認証サービスを提供します。Identity Platform は、さまざまな認証方法(SAML、OIDC、メールアドレスとパスワード、ソーシャル、スマートフォン、カスタム オプション)をサポートしています。

Identity Platform と Firebase Authentication はどちらも Google Identity Services に基づいています。Firebase Authentication は、一般ユーザー向けのアプリケーションを対象としています。Identity Platform は、独自の ID プロバイダを使用するユーザーや、Identity Platform で提供されるエンタープライズ対応機能を必要とするユーザーに最適です。これらのプロダクトの違いについて詳しくは、Identity Platform と Firebase Authentication の違いをご覧ください。

OAuth 2.0 と OpenID Connect

OpenID Connect を使用すると、大部分のカスタマイズで最初から認証トークンを処理し、使用できます。

OAuth 2.0 の実装を最大限に制御し、コードに OAuth 2.0 フローを実装しても問題ない場合は、このオプションが適しています。

詳細

Google の OAuth 2.0 実装は OpenID Connect 仕様に準拠しており、OpenID Certified となっています。OpenID Connect は OAuth 2.0 プロトコルの上にある ID レイヤです。アプリケーションで ID トークンの検証ユーザー プロフィール情報の取得を行う場合に、これを使用できます。

OAuth 2.0 を使用すると、Identity-Aware Proxy で保護されたリソースにプログラムで認証を実装できます。

Identity-Aware Proxy(IAP)

IAP を使用すると、リクエストがアプリケーション リソースに到達する前にアプリケーションへのアクセスを制御できます。

アプリケーション内に実装されたこのテーブルの他の認証サービスとは異なり、IAP はアプリケーションに到達する前に認証を実行します。

詳細

IAP を使用すると、アプリケーションの一元的な認可レイヤを確立し、署名済みヘッダーを使用してアプリを保護できます。IAP で保護されたアプリケーションにアクセスできるのは、正しい IAM ロールを持つプリンシパルだけです。ユーザーが IAP で保護されたリソースにアクセスしようとすると、IAP が認証と認可のチェックを行います。IAP は、同じプロジェクト内の別のサービスなど、プロジェクト内のアクティビティから保護することはありません。

Google ID の場合、IAP は ID トークンを使用します。詳細については、プログラムによる認証をご覧ください。

IAP がアプリケーション リソースを保護する仕組みについては、IAP の概要をご覧ください。

App Engine Users API App Engine スタンダード環境で実行されるアプリケーションの場合、一部の言語では Users API を利用してユーザー認証機能を提供できます。
エンドユーザー リソースへのアクセスの承認 エンドユーザーが所有するリソースにアプリケーションでアクセスする必要がある場合は、エンドユーザーの権限を確保する必要があります。これを行うには、アクセスの対象と方法を通知し、アクセスの承認または拒否を依頼します。このユースケースは、アプリケーション、認可サーバー、ユーザーの 3 つのエンティティに関与するため、3-legged OAuth または 3LO とも呼ばれます。

Google Cloud と Google Workspace の認証と認可のオプション

Google Cloud と Google Workspace には、アクセスの設定、アカウント セキュリティの強化、アカウント管理のためのさまざまなオプションが用意されています。

外部ワークロードに Google Cloud リソースへのアクセス権を付与する

Workload Identity 連携を使用すると、サービス アカウント キーに関連するメンテナンスとセキュリティの負担を回避しながら、オンプレミスまたはマルチクラウドのワークロードに Google Cloud リソースへのアクセス権を付与できます。Workload Identity 連携は、AWS、Azure Active Directory、オンプレミスの Active Directory、Okta、GitHub Actions、Kubernetes クラスタを含む OIDC 互換または SAML 2.0 互換の ID プロバイダをサポートします。

ID プロバイダを設定する

Cloud Identity または Google Workspace を使用して、Google を ID プロバイダとして使用できます。また、SAML を使用して Cloud Identity アカウントまたは Google Workspace アカウントを外部 ID プロバイダと連携させ、従業員が既存の ID と認証情報を使用して Google にログインできるようにすることもできます。

2 要素認証プロセスを設定する

2 要素認証プロセスを必須にすることは、悪意のある人物がアカウントのログイン認証情報にアクセスした際に、そのアカウントにアクセスできないようにするためのベスト プラクティスです。2 要素認証プロセスでは、ユーザーを認証する前に、そのユーザーからの 2 番目の情報または ID が必要です。Google は、FIDO(Fast IDentity Online)標準をサポートするいくつかのソリューションを提供しています。

Identity Platform は、ウェブiOSAndroid アプリの 2 要素認証をサポートしています。

Google Identity Services は、FIDO(Fast IDentity Online)認証をサポートしています。

Google では、Titan キーなど、2 要素認証向けのさまざまなハードウェア ソリューションをサポートしています。

証明書ベースのアクセスを設定する

BeyondCorp Enterprise のゼロトラスト ソリューションの一部として、証明書ベースのアクセスは、信頼できるデバイス上の認証済みユーザーにのみアクセスを許可し、X.509 証明書によってデバイスを識別します。証明書ベースのアクセスは、mTLS(mutual Transport Layer Security)と呼ばれることもあります。

Google アカウントへのアクセスに関するサポート

Google アカウントへのアクセスまたは管理についてサポートが必要な場合は、Google アカウントのサポートページをご覧ください。

漏洩した認証情報への対応

認証情報が漏洩した恐れがある場合は、ユーザーまたは管理者が状況を軽減するための対策を取ることができます。詳細については、不正使用された Google Cloud 認証情報の処理をご覧ください。