🗺️ 作業の流れ
1. 事前に用意するもの ✅
| 用意するもの | 説明 |
|---|---|
| Googleアカウント | Google Workspace(組織のドメイン)のアカウントを推奨。個人Gmailでも可 |
| ログイン対象のURL | OAuthでログイン機能を追加したいWebアプリケーション・サービスのURL |
| リダイレクトURI | 認証後にユーザーを戻す先のURL。詳細は「OAuth 2.0 クライアントIDを作成する」を参照 |
| メモ先 | パスワード管理ツール(1Password・Bitwarden等)を推奨 |
💡 Google Workspaceをお使いの場合、「組織内のアカウントだけログインを許可」にできる(同意画面を設定するを参照)。個人Gmailの場合はこの制限ができないため、必要に応じてアプリケーション側の許可リスト機能と組み合わせる。
2. プロジェクトを作成する
- Google Cloud Console にアクセスし、Googleアカウントでログインする
- 画面上部の「プロジェクトの選択」(プロジェクト名が表示されている部分)をクリックする
- ダイアログ右上の「新しいプロジェクト」をクリックする
- 以下を入力し「作成」をクリックする
| 項目 | 入力例 |
|---|---|
| プロジェクト名 | my-app-login(後で見て分かる名前なら何でも可) |
| 親リソース(組織/場所) | Workspaceの場合は組織を選択。個人Gmailは「組織なし」のまま |
- 作成完了の通知が出たら、上部のプロジェクト選択で今作ったプロジェクトに切り替わっていることを確認する
⚠️ 初めてGoogle Cloudを使う場合、利用規約への同意画面が出る。請求先(クレジットカード)の登録は不要。OAuthクライアントの発行だけなら課金は発生しない。
3. 同意画面(Google Auth Platform)を設定する
ログイン時にユーザーへ「このアプリがあなたのGoogleアカウント情報を利用します」と表示される画面の設定。
- 左上の「≡」メニュー →「APIとサービス」→「OAuth同意画面」をクリックする
- 「Google Auth Platform はまだ構成されていません」と表示されるので「開始」をクリックする
- 4つのステップを順に入力する
| 項目 | 入力例 |
|---|---|
| アプリ名 | 例:MyApp(同意画面に表示される名前) |
| ユーザーサポートメール | 管理者のメールアドレス |
| 選択肢 | 選ぶべきケース |
|---|---|
| 内部(Internal)推奨 | Google Workspace利用中で、組織のドメインのアカウントだけにログインを許可したい場合。Googleの確認(審査)は不要 |
| 外部(External) | 個人Gmailで作成している場合、または社外のGoogleアカウントにもログインを許可したい場合。まずテストモードで起動する |
💡 「内部」はWorkspace組織に属するプロジェクトでしか選べない。個人Gmailで作ったプロジェクトは「外部」のみ選択可能。
Googleからプロジェクトの変更通知を受け取るメールアドレスを入力する。ユーザーには表示されない。
「Google API サービス: ユーザーデータに関するポリシー」に同意して「続行」→「作成」をクリックする。
補足:「外部」を選んだ場合の追加設定
「外部」を選ぶと、初期状態は「テスト」モード。テストモードではあらかじめ登録したテストユーザー(最大100名)しかログインできない。
- 左メニュー「対象」をクリックする
- 「テストユーザー」の「+ Add users」をクリックする
- ログインさせたい人のGoogleアカウントのメールアドレスを追加し「保存」する
- 左メニュー「対象」をクリックする
- 「アプリを公開」をクリックし、確認ダイアログで「確認」する
- 非機密スコープのみなら審査なしでそのまま公開状態になる
💡 「内部」を選んだ場合はこの手順は不要。組織内ドメインの全員が最初からログインできる。
4. スコープ(取得する情報)を確認する
ログイン機能に必要なのは基本的に「メールアドレス」「氏名」「プロフィール画像」だけ。これらは非機密スコープのため、Googleの審査(アプリ検証)は不要。
- 左メニュー「データアクセス」→「スコープを追加または削除」をクリックする
- フィルタ欄にスコープ名(例:
openid)を入力して絞り込む
- 表示された行の左のチェックボックスをクリックして選択する
- 同じ要領で以下の3つすべてにチェックを入れ、「更新」→「保存」する
| スコープ | 用途 |
|---|---|
openid | OIDC認証の基本(必須) |
.../auth/userinfo.email | メールアドレスの取得 |
.../auth/userinfo.profile | 氏名・プロフィール画像の取得 |
⚠️ Gmail・Drive・カレンダーなどのスコープは追加しない。ログインには不要で、追加するとGoogleの審査が必要になる。
5. ブランディングを設定する 🎨
同意画面に表示されるアプリ名・ロゴ・各種URLを整える設定。ユーザーが最初に目にする画面なので、社内向けであっても「何のアプリか」がひと目で分かるようにしておく。
- 左メニュー「ブランディング」をクリックする
- アプリ情報・アプリのロゴ・アプリのドメインを入力する
- ページ下部の「承認済みドメイン」と「デベロッパーの連絡先情報」を入力し、「保存」をクリックする
| 項目 | 必須 | 入力内容 |
|---|---|---|
| アプリ名 | 必須 | 同意画面に表示される名前。ユーザーが認識できる名称にする |
| ユーザーサポートメール | 必須 | ユーザーからの問い合わせ先。自分のアドレスか、管理対象のグループアドレスを選択 |
| アプリのロゴ | 任意 | 120×120pxの正方形を推奨。JPG・PNG・BMP形式、1MB以内 |
| アプリケーションのホームページ | 任意 | サービスのトップページURL |
| プライバシーポリシーのリンク | 任意 | プライバシーポリシーの掲載ページ |
| 利用規約のリンク | 任意 | 利用規約の掲載ページ |
| 承認済みドメイン | 任意 | アプリで使用するドメイン(複数可)。https://やパスは含めない |
| デベロッパーの連絡先情報 | 必須 | Googleからの通知を受け取るメールアドレス。ユーザーには表示されない |
⚠️ ロゴをアップロードすると、アプリを送信してGoogleの確認(審査)を受ける必要がある。ただし「内部」で構成している場合や、公開ステータスが「テスト中」の場合は送信不要。急ぎで動かしたいときは、まずロゴなしで進め、後から追加するのが安全。
💡 アプリ名・ロゴ・各種URLはあとから何度でも変更でき、クライアントIDの再作成は不要。
6. OAuth 2.0 クライアントIDを作成する 🔑
6.1 クライアント作成画面を開く
- 左メニュー「クライアント」をクリックする
- 「+ クライアントを作成」をクリックする
6.2 基本情報を入力する
| 項目 | 入力内容 |
|---|---|
| アプリケーションの種類 | ウェブ アプリケーションを選択(必須) |
| 名前 | 例:web-client(管理用の名前。ユーザーには表示されない) |
6.3 リダイレクトURIを登録する
ログイン成功後にGoogleがユーザーを戻す先のURL。1文字でも違うとログインに失敗するため、コピー&ペーストで正確に登録する。
| 設定項目 | 値の例 |
|---|---|
| 承認済みのJavaScript生成元 | https://app.example.com |
| 承認済みのリダイレクトURI | https://app.example.com/admin/oauth/callback |
⚠️ app.example.com の部分は実際に利用するドメインに置き換える。末尾の「/」の有無・httpとhttpsの違い・大文字小文字もすべて区別される。コールバックのパス(/admin/oauth/callbackの部分)は利用するアプリケーション・フレームワークの仕様に従う。
設定が有効になるまで5分から数時間かかることがある。
💡 1つのクライアントに複数のURIを登録できるため、開発環境・本番環境をまとめて管理することもできる。ただし環境ごとにクライアントを分けておくと、片方だけを無効化・再発行しやすくなる。
6.4 作成してID・シークレットを控える
- 「作成」をクリックする
- 「OAuth クライアントを作成しました」というダイアログが表示される
- クライアントIDとクライアントシークレットを必ずこの画面でコピーし、パスワード管理ツールに保存する
| 項目 | 形式の例(実際の値ではない) |
|---|---|
| クライアントID | 123456789012-abcdefghijklmnopqrstuvwxyz123456.apps.googleusercontent.com |
| クライアントシークレット | GOCSPX-xxxxxxxxxxxxxxxxxxxxxxxxxxxx |
🚨 クライアントシークレットは、このダイアログを閉じると表示もダウンロードもできなくなる。
控え忘れた場合は、クライアントの詳細画面から「シークレットを追加」で新しいシークレットを発行し直す。古いシークレットは無効化できる。
「JSONをダウンロード」でも保存できるが、ファイルの管理には注意する(メール添付や共有フォルダへの放置はNG)。
7. 運用上の注意 🔒
- シークレットの保管:パスワード管理ツールに保存し、Slack・メール・チャットへの平文貼り付けはしない
- 漏えいが疑われるとき:クライアント詳細画面で「シークレットを追加」→新しい値をアプリケーション側に設定→古いシークレットを「無効化」。ログインは一時的に止まるが、再作成より安全で早い
- 担当者交代:プロジェクトのIAMで後任にオーナー権限を付与してから、前任者を削除する(プロジェクトごと消えると全員ログイン不能になる)
- アプリ名・ロゴの変更:Google Auth Platformの「ブランディング」からいつでも変更可能。クライアントの再作成は不要
付録:用語集 📖
| 用語 | 意味 |
|---|---|
| OIDC(OpenID Connect) | OAuth 2.0の上に作られた「本人確認」の標準規格。アプリケーション側はこの方式でGoogleに本人確認を委ねる |
| クライアントID | アプリケーションを識別する公開ID。漏れても直ちに危険ではないが、シークレットとセットで管理する |
| クライアントシークレット | アプリケーションが「本物である」ことをGoogleに証明する秘密の値。パスワードと同じ扱い |
| リダイレクトURI | Google認証後にユーザーを戻すURL。悪意あるサイトへ誘導されないよう、事前登録した先にしか戻さない仕組み |
| スコープ | Googleから受け取る情報の範囲。少ないほど安全で審査も不要 |
| 同意画面 | ユーザーが初回ログイン時に見る「この情報をアプリケーションに渡してよいですか?」の画面 |
1. 事前に用意するもの ✅
| 用意するもの | 説明 | 登録例 |
|---|---|---|
| Googleアカウント | Google Workspace(組織のドメイン)のアカウント、あるいは個人Gmailとなります。 | Google Workspaceアカウント 👉 XXXX@yamanex.co.jp (ドメインはそれぞれ異なります) Gmail 👉 YYYY@gmail.com |
| ログイン対象URL | ログイン機能を追加したいWebアプリケーション・サービスのURL。 ぶちAIワーク または ぶちAIゲートウェイのURLとなります。 | テナント方式の場合 👉 https://XXX.ymnx.buchiai.jp 専用サーバーの場合 👉 https://{{ぶちAIワークのドメイン}} |
| リダイレクトURI | 認証後にユーザーを戻す先のURL。 詳細は「OAuth 2.0 クライアントIDを作成する」を参照 | ぶちAIワークのログイン向け https://{{ぶちAIワークのドメイン}}/oauth/google/callback https://{{ぶちAIワークのドメイン}}/api/admin/oauth/google/callback MCPサーバー向け GBPの場合 👉 https://{{ぶちAIワークのドメイン}}/gbp/callback Google Workspace 👉 https://{{ぶちAIワークのドメイン}}/google-ws/oauth2callback |
- Google Workspaceをお使いの場合、「組織内のアカウントだけログインを許可」にできます。(同意画面を設定するを参照)
- 個人Gmailの場合は、ドメインではログインを制限できませんが、ユーザー登録で制限できます。
2. プロジェクトを作成する
- Google Cloud Console にアクセスし、Googleアカウントでログインする
- 画面上部の「プロジェクトの選択」(プロジェクト名が表示されている部分)をクリックする

- ダイアログ右上の「新しいプロジェクト」をクリックする

- 以下を入力し「作成」をクリックする
| 項目 | 入力例 |
|---|---|
| プロジェクト名 | my-app-login(後で見て分かる名前なら何でも可) |
| 親リソース(組織/場所) | Workspaceの場合は組織を選択。個人Gmailは「組織なし」のまま |

- 作成完了の通知が出たら、上部のプロジェクト選択で今作ったプロジェクトに切り替わっていることを確認する
⚠️ 初めてGoogle Cloudを使う場合、利用規約への同意画面が出る。請求先(クレジットカード)の登録は不要。OAuthクライアントの発行だけなら課金は発生しない。
3. 同意画面(Google Auth Platform)を設定する
ログイン時にユーザーへ「このアプリがあなたのGoogleアカウント情報を利用します」と表示される画面の設定。
- 左上の「≡」メニュー →「APIとサービス」→「OAuth同意画面」をクリックする

- 「Google Auth Platform はまだ構成されていません」と表示されるので「開始」をクリックする

- 4つのステップを順に入力する
ステップ1:アプリ情報
| 項目 | 入力例 |
|---|---|
| アプリ名 | 例:MyApp(同意画面に表示される名前) |
| ユーザーサポートメール | 管理者のメールアドレス |

ステップ2:対象(Audience)— ここが重要
| 選択肢 | 選ぶべきケース |
|---|---|
| 内部(Internal)推奨 | Google Workspace利用中で、組織のドメインのアカウントだけにログインを許可したい場合。Googleの確認(審査)は不要 |
| 外部(External) | 個人Gmailで作成している場合、または社外のGoogleアカウントにもログインを許可したい場合。まずテストモードで起動する |

💡 「内部」はWorkspace組織に属するプロジェクトでしか選べない。個人Gmailで作ったプロジェクトは「外部」のみ選択可能。
ステップ3:連絡先情報
Googleからプロジェクトの変更通知を受け取るメールアドレスを入力する。ユーザーには表示されない。

ステップ4:終了
「Google API サービス: ユーザーデータに関するポリシー」に同意して「続行」→「作成」をクリックする。

補足:「外部」を選んだ場合の追加設定
「外部」を選ぶと、初期状態は「テスト」モード。テストモードではあらかじめ登録したテストユーザー(最大100名)しかログインできない。
方法A:テストユーザーを登録する(少人数・すぐ使いたい場合)
- 左メニュー「対象」をクリックする
- 「テストユーザー」の「+ Add users」をクリックする
- ログインさせたい人のGoogleアカウントのメールアドレスを追加し「保存」する
方法B:本番環境に公開する(人数制限をなくしたい場合)
- 左メニュー「対象」をクリックする
- 「アプリを公開」をクリックし、確認ダイアログで「確認」する
- 非機密スコープのみなら審査なしでそのまま公開状態になる
💡 「内部」を選んだ場合はこの手順は不要。組織内ドメインの全員が最初からログインできる。
4. スコープ(取得する情報)を確認する
ログイン機能に必要なのは基本的に「メールアドレス」「氏名」「プロフィール画像」だけ。これらは非機密スコープのため、Googleの審査(アプリ検証)は不要。
- 左メニュー「データアクセス」→「スコープを追加または削除」をクリックする

- フィルタ欄にスコープ名(例:
openid)を入力して絞り込む

- 表示された行の左のチェックボックスをクリックして選択する

- 同じ要領で以下の3つすべてにチェックを入れ、「更新」→「保存」する
| スコープ | 用途 |
|---|---|
openid | OIDC認証の基本(必須) |
.../auth/userinfo.email | メールアドレスの取得 |
.../auth/userinfo.profile | 氏名・プロフィール画像の取得 |

⚠️ Gmail・Drive・カレンダーなどのスコープは追加しない。ログインには不要で、追加するとGoogleの審査が必要になる。
5. ブランディングを設定する 🎨
同意画面に表示されるアプリ名・ロゴ・各種URLを整える設定。ユーザーが最初に目にする画面なので、社内向けであっても「何のアプリか」がひと目で分かるようにしておく。
- 左メニュー「ブランディング」をクリックする
- アプリ情報・アプリのロゴ・アプリのドメインを入力する

- ページ下部の「承認済みドメイン」と「デベロッパーの連絡先情報」を入力し、「保存」をクリックする

| 項目 | 必須 | 入力内容 |
|---|---|---|
| アプリ名 | 必須 | 同意画面に表示される名前。ユーザーが認識できる名称にする |
| ユーザーサポートメール | 必須 | ユーザーからの問い合わせ先。自分のアドレスか、管理対象のグループアドレスを選択 |
| アプリのロゴ | 任意 | 120×120pxの正方形を推奨。JPG・PNG・BMP形式、1MB以内 |
| アプリケーションのホームページ | 任意 | サービスのトップページURL |
| プライバシーポリシーのリンク | 任意 | プライバシーポリシーの掲載ページ |
| 利用規約のリンク | 任意 | 利用規約の掲載ページ |
| 承認済みドメイン | 任意 | アプリで使用するドメイン(複数可)。https://やパスは含めない |
| デベロッパーの連絡先情報 | 必須 | Googleからの通知を受け取るメールアドレス。ユーザーには表示されない |
⚠️ ロゴをアップロードすると、アプリを送信してGoogleの確認(審査)を受ける必要がある。ただし「内部」で構成している場合や、公開ステータスが「テスト中」の場合は送信不要。急ぎで動かしたいときは、まずロゴなしで進め、後から追加するのが安全。
💡 アプリ名・ロゴ・各種URLはあとから何度でも変更でき、クライアントIDの再作成は不要。
6. OAuth 2.0 クライアントIDを作成する 🔑
6.1 クライアント作成画面を開く
- 左メニュー「クライアント」をクリックする
- 「+ クライアントを作成」をクリックする

6.2 基本情報を入力する
| 項目 | 入力内容 |
|---|---|
| アプリケーションの種類 | ウェブ アプリケーションを選択(必須) |
| 名前 | 例:web-client(管理用の名前。ユーザーには表示されない) |

6.3 リダイレクトURIを登録する
ログイン成功後にGoogleがユーザーを戻す先のURL。1文字でも違うとログインに失敗するため、コピー&ペーストで正確に登録する。
| 設定項目 | 値の例 |
|---|---|
| 承認済みのJavaScript生成元 | https://app.example.com |
| 承認済みのリダイレクトURI | https://app.example.com/admin/oauth/callback |

⚠️ app.example.com の部分は実際に利用するドメインに置き換える。末尾の「/」の有無・httpとhttpsの違い・大文字小文字もすべて区別される。コールバックのパス(/admin/oauth/callbackの部分)は利用するアプリケーション・フレームワークの仕様に従う。
設定が有効になるまで5分から数時間かかることがある。
💡 1つのクライアントに複数のURIを登録できるため、開発環境・本番環境をまとめて管理することもできる。ただし環境ごとにクライアントを分けておくと、片方だけを無効化・再発行しやすくなる。
6.4 作成してID・シークレットを控える
- 「作成」をクリックする
- 「OAuth クライアントを作成しました」というダイアログが表示される
- クライアントIDとクライアントシークレットを必ずこの画面でコピーし、パスワード管理ツールに保存する

| 項目 | 形式の例(実際の値ではない) |
|---|---|
| クライアントID | 123456789012-abcdefghijklmnopqrstuvwxyz123456.apps.googleusercontent.com |
| クライアントシークレット | GOCSPX-xxxxxxxxxxxxxxxxxxxxxxxxxxxx |
🚨 クライアントシークレットは、このダイアログを閉じると表示もダウンロードもできなくなる。
控え忘れた場合は、クライアントの詳細画面から「シークレットを追加」で新しいシークレットを発行し直す。古いシークレットは無効化できる。
「JSONをダウンロード」でも保存できるが、ファイルの管理には注意する(メール添付や共有フォルダへの放置はNG)。
7. 運用上の注意 🔒
- シークレットの保管:パスワード管理ツールに保存し、Slack・メール・チャットへの平文貼り付けはしない
- 漏えいが疑われるとき:クライアント詳細画面で「シークレットを追加」→新しい値をアプリケーション側に設定→古いシークレットを「無効化」。ログインは一時的に止まるが、再作成より安全で早い
- 担当者交代:プロジェクトのIAMで後任にオーナー権限を付与してから、前任者を削除する(プロジェクトごと消えると全員ログイン不能になる)
- アプリ名・ロゴの変更:Google Auth Platformの「ブランディング」からいつでも変更可能。クライアントの再作成は不要
付録:用語集 📖
| 用語 | 意味 |
|---|---|
| OIDC(OpenID Connect) | OAuth 2.0の上に作られた「本人確認」の標準規格。アプリケーション側はこの方式でGoogleに本人確認を委ねる |
| クライアントID | アプリケーションを識別する公開ID。漏れても直ちに危険ではないが、シークレットとセットで管理する |
| クライアントシークレット | アプリケーションが「本物である」ことをGoogleに証明する秘密の値。パスワードと同じ扱い |
| リダイレクトURI | Google認証後にユーザーを戻すURL。悪意あるサイトへ誘導されないよう、事前登録した先にしか戻さない仕組み |
| スコープ | Googleから受け取る情報の範囲。少ないほど安全で審査も不要 |
| 同意画面 | ユーザーが初回ログイン時に見る「この情報をアプリケーションに渡してよいですか?」の画面 |
