ユーザーの認証

アプリケーションでユーザーからのリクエストを処理する場合は、許可されたユーザーのみにアクセスを制限することをおすすめします。ユーザーには、Google Cloud プロジェクトまたは Cloud Run サービスに関する IAM 権限は通常ありません。

次の 2 種類のユーザーを区別します。

  • エンドユーザー: 必ずしも組織に属していないアプリケーションのユーザー。通常はアカウントを自分で登録する必要があります。
  • 内部ユーザー: 組織の管理者からアプリケーションへのアクセスが明示的に許可されているユーザー。通常は組織に属しています。

エンドユーザーを認証する

メールアドレスとパスワード、電話番号、Google、Facebook、GitHub などのソーシャル プロバイダ、カスタム認証メカニズムを使用してユーザーの認証を行う場合は、Identity Platform を使用できます。Firebase Authentication の使用方法は、Identity Platform を使用する場合と同様です。

ログインフローを処理し、Cloud Run サービスに対して認証 API 呼び出しを実行する一般公開されたウェブアプリまたはモバイルアプリが必要です。この一般公開されたウェブアプリ自体を、公開 Cloud Run サービスでホストできます。

エンドユーザー認証に Identity Platform を使用する方法の詳細については、Cloud Run でのエンドユーザー認証のチュートリアルをご覧ください。

  1. Cloud Run サービスに、ID トークンを検証するためのコードを追加します。

  2. Cloud Run サービスを一般公開でデプロイする

  3. プロジェクトに Identity Platform を設定する

  4. ウェブアプリまたはモバイルアプリで、次の操作を行います。

    1. 適切な Firebase Authentication クライアント ライブラリを使用して、ID トークンを取得します。
    2. サービスに対するリクエストの Authorization: Bearer ID_TOKEN ヘッダーに ID トークンを含めます。

ユーザーのプロフィール情報にアクセスするには、次のいずれかの方法を使用できます。

この認証方法を使用するアプリケーションのエンドツーエンドのチュートリアルについては、Cloud Run のチュートリアルをご覧ください。

内部ユーザーを認証する

内部ユーザーの認証には、Identity-Aware Proxy を使用できます。

既存の Cloud Run サービスに Identity-Aware Proxy を設定するには、Cloud Run 用に Identity-Aware Proxy を有効にする方法のドキュメントをご覧ください。

OAuth 2.0 を使用して、Identity-Aware Proxy で保護された Cloud Run サービスに対してユーザーまたはサービス アカウントを認証する方法については、プログラムによる認証のドキュメントをご覧ください。