ソーシャルログイン

Googleログインの設定方法|Google One Tap導入と同意画面の手順

Googleログインは、Google Cloudで同意画面を設定してOAuthクライアント(ウェブ アプリケーション)を作成し、Google Identity Servicesでログインボタンや One Tap をサイトに組み込み、最後に公開ステータスを「本番環境」に切り替えれば使えるようになります。つまずきやすいのは、コードを書く前のGoogle Cloudの設定です。「テスト」のまま公開してしまう、クライアントシークレットを保管し損ねるといった失敗は、手順を知っていれば防げます。この記事では、同意画面の設定からGoogle One Tapの導入、公開ステータスの切り替えまでを作業の順に説明し、公開前に確かめておく点を示します。

ソーシャルログインの基本はソーシャルログインとは、利用者から見た仕組みはGoogleログインとは、実装全体の流れはGoogleログインの実装とつまずきやすい5つの箇所で解説しています。

Googleログインを設定する流れ

設定はGoogle Cloudの管理画面「Google Auth Platform」で、次の順に進めます。画面の名称や配置は変わることがあるため、公式ドキュメントもあわせて確認してください。

同意画面の設定、OAuthクライアントの作成、自社サイトへの組み込み、テストと本番環境への切り替えの順に進むことを示す流れ図。
Googleログイン設定の進め方

段階

作業

決めておくこと

1. プロジェクトと同意画面

プロジェクトを作り、アプリ名・サポート用メール・ドメインなどを登録する

アプリ名、プライバシーポリシーと利用規約のURL

2. OAuthクライアントの作成

種類に「ウェブ アプリケーション」を選び、許可するURLを登録する

本番と検証のドメイン、戻り先のURL

3. 自社サイトへの組み込み

ログインボタンやOne Tapを設置し、サーバーでIDトークンを検証する

ボタンを置く画面、会員の照合方法

4. テストと公開

テストユーザーで確認し、公開ステータスを「本番環境」に切り替える

確認する端末・ブラウザ

ソーシャルログイン・パスキーの導入をご検討中の方へ

LINE・Google・Apple・Yahoo! JAPAN・Facebook・X のログインとパスキーに、1つの実装で対応できます。対応SNS・料金・導入の流れを資料にまとめています。

段階1:プロジェクトを作り、同意画面を設定する

同意画面は、利用者が初めてログインするときに、どのアプリにどの情報を渡すかを示す画面です。設定する画面は次のとおりです。

一般向けサイトは外部を選ぶこと、テスト中は最大100人で許可は7日で切れること、アプリ名とロゴの表示にはブランドの確認が必要なこと、スコープは基本の3つに留めることを示す図。
同意画面で押さえる点
  • ブランディング……アプリ名、ロゴ、サポート用メール、ホームページ・プライバシーポリシー・利用規約のURL、承認済みドメイン
  • 対象……ユーザーの種類(外部/内部)と公開ステータス、テストユーザー
  • データアクセス……アプリが求めるスコープ(取得する情報の範囲)

一般向けサイトはユーザーの種類を「外部」にする

「内部」を選ぶと、自社のGoogle Workspace組織のアカウントしか使えなくなります。

「テスト」のままでは一般の利用者はログインできない

作成した直後は「テスト」の状態で、ログインできるのは登録したテストユーザー(最大100人)だけです。テスト中に得た許可は、同意から7日で切れます。公開する前に「アプリを公開」を押し、公開ステータスを「本番環境」に切り替えてください。

ログインだけなら重い審査は受けなくてよい

ログインに使う基本的なスコープ(openid・email・profile)は機密性が低いものに分類され、これだけならアプリの審査(確認)は必須ではありません。ただし、同意画面にアプリ名とロゴを表示するには「ブランドの確認」が必要で、ホームページやプライバシーポリシーの公開、ドメインの所有などを確かめられます。Googleカレンダーなど他のサービスのデータを使うスコープを追加すると、審査は厳しくなります。

段階2:OAuthクライアントを作成する

「クライアント」の画面で「クライアントを作成」を選び、種類に「ウェブ アプリケーション」を指定して、次の2つを登録します。

リダイレクトURIは1文字違いでもエラーになること、2025年6月以降はシークレットが作成時しか表示されないこと、6か月未使用のクライアントは自動削除されることを示す図。
クライアント作成時の注意

項目

登録する値

注意点

承認済みのJavaScript生成元

ボタンやOne Tapを表示するサイトのURL(例:https://www.example.com)

ローカル環境で試すときは http://localhost と http://localhost:ポート番号 の両方を登録する

承認済みのリダイレクトURI

ログイン後に戻ってくる自社のURL

登録した値と1文字でも違うとエラーになる。本番と検証の両方を登録する

作成するとクライアントIDが発行されます。サーバー側で認可コードを使う方式ではクライアントシークレットも使います。2025年6月以降に作成したクライアントのシークレットは作成時にしか表示・ダウンロードできないため、その場で安全な場所に保管してください。また、6か月間使われていないクライアントは自動で削除されます。

取得できる情報

ログインに成功すると、Googleが署名したIDトークン(JWT)が届きます。主な項目は次のとおりです。

subはアカウント固有で再利用されないため会員の識別に使い、emailは利用者が変更できるため連絡先として使うことを比べた図。
subとemailの使い分け

項目

内容

使い方

sub

Googleアカウントごとの固有のID

会員の識別に使う。他のアカウントに再利用されない

email

メールアドレス

連絡先として使う。利用者が変更できるため、識別には使わない

email_verified

メールアドレスが確認済みか

既存会員との照合に使う前に必ず確認する

name・picture

表示名とプロフィール画像のURL

登録フォームの初期値やマイページの表示に使う

hd

Google Workspaceのドメイン

法人向けに、特定の会社のアカウントに限るときに使う

subを識別に使うよう、Google自身も明記しています。詳しくはソーシャルログインで取得できる情報を参照してください。

段階3:Google One Tapとログインボタンを組み込む

組み込みには、GoogleのJavaScriptライブラリ「Google Identity Services」を使います。表示のしかたは主に次の3通りです。

方法

見え方

向いている場面

ログインボタン

「Googleでログイン」のボタン。ログイン済みなら名前入りで表示されることがある

ログイン画面・会員登録画面

One Tap

画面の隅に、Googleアカウントを選ぶだけのダイアログを表示

記事ページや商品ページなど、ログイン画面以外

自動ログイン

一度許可した利用者を、再訪時に自動でログインさせる

再訪が多いサービス

Google One Tapを導入する手順

One Tapにも、段階2で作成したクライアントIDをそのまま使います。HTMLで書く場合は、スクリプトを読み込み、クライアントIDと受け取り用の関数を指定した要素を置きます。

<script src="https://accounts.google.com/gsi/client" async></script>
<div id="g_id_onload"
  data-client_id="発行されたクライアントID"
  data-callback="handleCredentialResponse"
  data-use_fedcm_for_prompt="true">
</div>

自社のURLで受け取るときは、data-callback の代わりに data-login_uri を指定します。IDトークンはPOSTで届くので、一緒に送られる g_csrf_token をCookieの値と照合してCSRF対策をしてください。

JavaScriptで書く場合は、google.accounts.id.initialize() にクライアントIDと受け取り用の関数を渡し、google.accounts.id.prompt() でOne Tapを、google.accounts.id.renderButton() でログインボタンを表示します。

受け取ったIDトークンは、必ずサーバー側で次の項目を検証してください。

  1. Googleの公開鍵で署名が正しいか
  2. aud(宛先)が自社のクライアントIDと一致するか
  3. iss(発行元)がGoogleか
  4. exp(有効期限)が切れていないか

検証は自前で書くより、Googleが各言語向けに用意しているライブラリを使うほうが安全です。

利用者がボタンかOne Tapでログインし、IDトークンが関数か自社URLに渡され、サーバーで署名・aud・iss・expを検証し、subで会員を照合する流れを示す図。
IDトークンを受け取ってからの流れ

ブラウザの変化への対応(FedCM)

ブラウザのサードパーティCookie制限に合わせ、Google Identity ServicesはFedCMというブラウザ標準の仕組みへの移行を進めています。新規に実装するなら、上の例のように data-use_fedcm_for_prompt でFedCMを有効にしておくと、後の改修を減らせます。ただし、One Tapの表示状態を判定する一部の関数は使えなくなるので、移行ガイドを先に確認しておきましょう。

段階4:テストと公開

観点

確認すること

テストユーザー

「テスト」状態では、登録したユーザーしかログインできない

ローカル環境

http://localhost で試す場合、Referrer-Policyの設定が必要になることがある。One TapはHTTPSのドメインでしか表示されない

One Tapの非表示期間

一度閉じるとしばらく表示されないので、不具合と取り違えやすい

アプリ内ブラウザ

SNSアプリなどのアプリ内ブラウザではGoogleのログインが制限される。標準のブラウザで開くよう案内する

2回目以降のログイン

同じ会員としてログインでき、新しい会員が作られていないか

本番への切り替え

公開ステータスが「本番環境」か。本番のURLを生成元とリダイレクトURIに登録したか

テスト状態では登録ユーザーしかログインできないこと、One TapはHTTPSでしか表示されないこと、閉じるとしばらく表示されないこと、アプリ内ブラウザでは制限されることを示す図。
テストでつまずきやすい点

注意点

  • ボタンは、Googleのブランドガイドラインに沿ったものを使ってください。
  • ログインに不要なスコープを求めると、審査が重くなり、同意画面での離脱も増えます。
  • プロジェクトは、担当者が退職しても設定を変更できるよう、会社で管理するアカウントで作りましょう。
  • 既存会員との紐づけでは、メールアドレスの一致だけで自動的に統合するのは避けてください(ソーシャルログインのアカウント統合)。

Google以外のSNSも導入する場合は、ソーシャルログインの導入手順と期間を参照してください。

よくある質問

Googleログインの導入に費用はかかりますか?

Googleへの利用料はかかりません。費用がかかるのは、自社で実装・保守する開発の工数か、外部のサービスを使う場合のその利用料です。

審査にはどれくらいかかりますか?

基本的なスコープだけなら重い審査は必須ではありません。ブランドの確認にかかる期間は案件によって違うため、公開日から逆算して早めに申請しておきましょう。

One Tapとログインボタンは両方入れるべきですか?

併用するのが一般的です。ログイン画面にはボタンを、記事ページなどにはOne Tapを置くとよいでしょう。ブラウザでGoogleアカウントにログインしていない利用者にはOne Tapが基本的に表示されないので、ボタンは外さないでください。

Google One Tapの導入には、別のOAuthクライアントが必要ですか?

必要ありません。ログインボタンと同じクライアントIDを使い、One Tapを出すページのURLを「承認済みのJavaScript生成元」に登録すれば動きます。

Google One Tapが表示されないのはなぜですか?

よくある原因は、ページのURLがJavaScript生成元に登録されていない(この場合はエラーになります)、HTTPSでないドメインで試している、ブラウザでGoogleアカウントにログインしていない、以前に閉じて非表示の期間に入っている、のいずれかです。FedCMを有効にしている場合は、ブラウザの設定で表示が抑えられていることもあります。

スマホアプリでも同じ設定を使えますか?

使えません。iOSやAndroidのアプリでは、アプリの種類ごとに別のOAuthクライアントを作成し、各OS向けの方法で実装します。アプリ内のWebViewでGoogleのログイン画面を開く方式は、Googleのポリシーで認められていません。

Login Plus について

Login Plus のログイン画面。6つのソーシャルログインとパスキーに対応
Login Plus のログイン画面。6つのソーシャルログインとパスキーに対応

Login Plusは、Googleを含む6つのソーシャルログイン(Apple・Facebook・Google・X(旧Twitter)・Yahoo! JAPAN・LINE)とパスキーに、1つの実装で対応できるサービスです。

  • Google One Tapに対応
  • 各SNSへの申請手順書を契約企業に無償で提供
  • 各SNSの仕様変更にはLogin Plus側で対応
  • 取得した情報をフォームへ自動入力するフォームアシスト機能
  • 導入はプロバイダ申請から約2か月でリリース(導入の流れ)

導入のご相談は、資料請求またはお問い合わせからどうぞ。

ソーシャルログイン・パスキーの資料をお送りします

対応SNS・料金・実装の流れ・導入事例をまとめています。
「自社に導入できるか」のご相談も、同じフォームから承ります。

送信をもって個人情報の取り扱いに同意いただいたものとみなします。

個別のご相談は からもどうぞ。

送信をもって個人情報の取り扱いに同意いただいたものとみなします。

送信をもって個人情報の取り扱いに同意いただいたものとみなします。