Firebase認証を試す! – Google ID編

GCP

この記事について

この記事では以下のサンプルWebアプリを使ってFirebae AuthenticationのGoogle IDプロバイダー連携を試してみる。

GitHub - firebase/quickstart-js: Firebase Quickstart Samples for Web
Firebase Quickstart Samples for Web. Contribute to firebase/quickstart-js development by creating an account on GitHub.

構成イメージ

file

クライアントIDの置き換え

./auth/google-credentials.html内のクライアントIDをGCPプロジェクトのOAuth 2.0クライアントIDに置き換える。

変更前

  <!-- **********************************************
       * TODO(DEVELOPER): Use your Client ID below. *
       ********************************************** -->
  <meta name="google-signin-client_id" content="**YOUR_CLIENT_ID**">

エラー 401: invalid_client

クライアントIDがFirebase Projectのものと一致しない場合、401 invalid_clientエラーとなり認証されない。

The OAuth client was not found.
このアプリのデベロッパーの場合は、エラーの詳細をご確認ください。
エラー 401: invalid_client

Firebaseアプリのデプロイ

$ cd quickstart-js/auth/
$ firebase deploy

Firebaseアプリへのアクセス

デプロイしたFirebaseアプリにアクセスする。
この時点ではまだサインアウトされた状態。

URL:
https://firebase-project-id.web.app/google-popup.html

file

サインイン

"SIGN IN WITH GOOGLE"ボタンをおしてサインインするとGoogle IDのプロファイルとともに発行されたBearerトークンが表示される。
file

このアクセストークンを使ってAPI Gatewayを叩くと認証され結果が返ってくる。

$ curl -X GET -H "Authorization: Bearer $TOKEN" https://firebase-project-id.an.gateway.dev/greetings/2
{"category":"Hola","id":2,"name":"es"}

Firebase Authenticationでの見え方

アプリにサインインしたユーザーは自動的にFirebase Authenticationに登録される。
file

アプリにログインできるドメインの制限

OAuth 同意画面で「内部」,「外部」を選ぶことができる。

https://console.cloud.google.com/apis/credentials/consent
file

内部を選ぶとFirebaseプロジェクトの上位となるCloud Identityに限定してアプリを公開できるようだ。

Setting up your OAuth consent screen - Google Cloud Platform Console ヘルプ
You must configure an OAuth consent screen before using an OAuth 2.0 client ID. This article describes OAuth consent screen settings and their impact on how you...
User type

The user type setting impacts your app's potential audience.
...
Internal

Projects associated with a Google Cloud Organization can configure Internal users to limit authorization requests to members of the organization. For more information about migrating a project into a Google Cloud Organization resource, see Migrating projects into an organization.

...

An org_internal authorization error is displayed when authorization is requested from users outside the Google Cloud project's parent.
タイトルとURLをコピーしました