Discourse で Google ログインを設定する

:bookmark: このガイドでは、Google Cloud Console で OAuth2 認証情報を設定して、Discourse サイトの Google ログイン連携を設定する方法を説明します。

:person_raising_hand: 必要なユーザーレベル: 管理者

概要

Google ログインを使用すると、ユーザーは自分の Google アカウントを使って Discourse サイトにサインインできます。このガイドでは、以下の手順を説明します。

  1. Google Cloud プロジェクトの作成
  2. OAuth 同意画面の設定
  3. 認証情報の設定
  4. Discourse での Google ログインの有効化

Google Cloud プロジェクトの作成

  1. https://console.developers.google.com に移動します。
  2. 左上にあるプロジェクト選択ボタンをクリックします。
  3. 「新しいプロジェクト」をクリックします。

  1. プロジェクト名とオプションで場所を入力します。
  2. 「作成」をクリックします。

:information_source: プロジェクト作成後にエラーが表示される場合は、Ctrl+F5 を使用してページを更新してください。

OAuth 同意画面の設定

  1. https://console.developers.google.com に再度移動し、まだ選択されていない場合は新しいプロジェクトを選択します。
  2. 左側のパネルで「OAuth 同意画面」に移動します。左上の Google Cloud メニューを使用して、「API とサービス」 → 「OAuth 同意画面」を選択することもできます。

  1. 「開始」をクリックします。
  2. 「アプリ情報」の下にアプリ名を入力し、ユーザーサポートメールアドレスを選択します。

  1. ユーザーのアクセス範囲として「外部」を選択します。

  1. 次に、通知用メールアドレスを入力します。
  2. 最後に、API サービス: ユーザーデータ ポリシーに同意し、「作成」をクリックします。

認証情報の設定

  1. 「API とサービス」 → 「認証情報」画面に移動します。
  2. 「認証情報を作成」をクリックし、「OAuth クライアント ID」を選択します。

  1. OAuth クライアントを設定します。
  • アプリケーションの種類として「ウェブアプリケーション」を選択し、名前を付けます。
  • 承認済み JavaScript オリジンには、サイトの基本 URL (HTTPS を含む) を追加します。
  • 承認済みリダイレクト URI には、コールバック URL を追加します: https://your-discourse-site.com/auth/google_oauth2/callback
  • 「作成」をクリックします。

OAuth 2.0 クライアント ID をクリックします。

ClientID と Client Secret をコピーして、Discourse 管理画面に追加します。

Discourse 設定の構成

  1. Discourse 管理設定の「ログインと認証」で、以下の設定を行います。
  • enable google oauth2 logins の設定を有効にします。
  • google oauth2 client id に ID を入力します。
  • google oauth2 client secret にシークレットを入力します。

検証と公開

Google アドレスを持つユーザーを追加し、「Google でログイン」オプションを使用して Discourse にログインできることを確認して、連携をテストします。ログインできれば、設定は完了です! :tada:

:warning: 注:

以前は、Google 開発者プロジェクトのステータスを production に変更するという最終ステップが必要でした。これは現在不要になったようです。念のため、これらの古いメモを残しておきます。

連携を一般に公開するには:

  • ステータスを「本番環境」に変更します。
  • Google の検証プロセスを完了します。
  • Google Search Console を介してサイトの所有権を確認します。

追加の設定

Google OAuth2 プロンプト

google oauth2 prompt 設定は、ログイン時の Google 同意画面の動作を制御します。利用可能なオプションは次のとおりです。

  • (空白) — デフォルトの Google の動作
  • none — 同意画面やアカウント選択画面を表示しない
  • consent — 常に同意画面を表示する
  • select_account — 常にアカウント選択をユーザーに促す

Google Workspace (旧 G Suite、Google Apps) ログイン

ログインを特定の Google Workspace ドメインに制限するには:

  1. Discourse 管理 -> ログインと認証 で、google oauth2 hd サイト設定を見つけます。
  2. Google Workspace ドメインを入力します。

Google Workspace グループ同期

Google Workspace グループを Discourse と自動的に同期できます。これには以下が必要です。

  1. google oauth2 hd groups 設定を有効にします。
  2. google oauth2 hd に Workspace ドメインを設定します。
  3. google oauth2 hd groups service account admin email に Workspace 管理者のメールアドレスを入力します。
  4. Google サービスアカウントの JSON 認証情報を google oauth2 hd groups service account json に貼り付けます。

サービスアカウントでは、ドメイン全体の委任が有効になっており、https://www.googleapis.com/auth/admin.directory.group.readonly スコープが付与されている必要があります。設定手順については、ドメイン全体の委任に関する Google のドキュメントを参照してください。

トラブルシューティング

ログインに関する問題が発生した場合は、以下を確認してください。

  • HTTPS が正しく設定されていることを確認する
  • すべてのリダイレクト URI を再確認する
  • サイトの SSL 証明書が有効であることを確認する
  • 必要なすべての Google Cloud API が有効になっていることを確認する
  • 詳細な OAuth2 リクエスト/レスポンスログを取得するために google oauth2 verbose logging を有効にする

関連リソース

「いいね!」 165