始めるには、次の手順に従って Google ログインを設定します。
次に、次の手順に従います。
-
OAuth 統合の Google ダッシュボードで、「API とサービス」に移動し、「Admin SDK」を追加します。
→ →
-
「IAM と管理」 → 「サービスアカウント」 → 「サービスアカウントの作成」に移動し、アカウントを設定します。2つのオプションのステップは必須ではないため、スキップしてください。
-
サービスアカウントのリストで、新しく作成したアカウントをクリックし、後で使用するために「一意の ID」を記録した後、「キー」タブに移動します。JSON 形式で新しいキーを作成し、後で使用するためにファイルを保存します。
-
admin.google.com に移動し、「セキュリティ」セクションにアクセスします。「API コントロール」 → 「サードパーティ製アプリへのアクセスを管理」 → 「アプリを追加」 → 「OAuth アプリ名またはクライアント ID」の順に進みます。OAuth アプリケーションのクライアント ID を入力し、リストから選択します。手順に従い、アプリケーションが「信頼済み」として設定されていることを確認します。その後、リストに表示されます。
-
「API コントロール」セクションに戻り、下にスクロールして「ドメイン全体の委任を管理」を選択します。「新規追加」を選択し、先ほど作成したサービスアカウントのクライアント ID を入力します。スコープには、次の値を貼り付けます。
https://www.googleapis.com/auth/admin.directory.group.readonly
-
Discourse 管理パネルで、管理 → 設定 → ログインと認証 → 認証 に移動し、「google oauth2 hd」を検索します。次の設定を行います。
google oauth2 hd: Google Workspace のドメイン名
google_oauth2_hd_groups_service_account_json: 先ほど生成したサービスアカウントキーファイルのコンテンツを貼り付けます。
google_oauth2_hd_groups_service_account_admin_email: Google Workspace 管理アカウントのメールアドレスを入力します。この ID は、サービスアカウントが Google グループ情報を取得する際に使用されます。
google oauth2 hd groups: 有効
次にユーザーがログインすると、Discourse は裏側で Google グループ情報を取得し、保存します。
Google グループを Discourse グループにリンクするには、Discourse でグループの設定にアクセスし、管理 → メンバーシップ セクションに移動します。「自動」の下に、リンクしたい数の Google グループを Discourse グループにリンクできる新しいドロップダウンが表示されます。
この設定の変更は即座に反映されます。Google でのグループメンバーシップの変更は、ユーザーが次にログインしたときに反映されます。
@angus のこの機能に関する作業に多大な感謝を捧げます。近い将来、このグループ同期システムを他のログイン方法にも拡大したいと考えています。
「いいね!」 8
ask
(Ask Bjørn Hansen)
2
「汎用OAuth2」(具体的にはAuth0)でこれを使用したいのですが。他にフォローできるスレッドやGitHubのイシューはありますか?
「いいね!」 3
Chukwithak
(Charlie King)
3
@david または @angus アイテム6の詳細を教えていただけますか?
Blockquote google oauth2 hd: Google Workspace のドメイン名
- Workspace アカウントを持つ私のドメイン (ebsp.org) のことですか?それとも Workspace の実際のドメインですか?
- URL だけでいいのですか?
Blockquote google_oauth2_hd_groups_service_account_json : 先ほど生成したサービスアカウントキーファイルのコンテンツを貼り付けてください
JSON 全体をコピーして貼り付けるのですか?
Chukwithak
(Charlie King)
4
@angus @david 指示通りに進めましたが、グループを検索するボックスは表示されるものの、グループが一切表示されません。何か考えられることはありますか?
david
(David Taylor)
6
チャーリーさん、こんにちは。google oauth2 hd は Google OIDC API (ドキュメントはこちら) から取得したものです。彼らによると、それは次のようなものです。
ユーザーの Google Workspace または Cloud 組織に関連付けられたドメイン
例として、社内でスタッフ向けに設定する場合、値は discourse.org に設定します。
はい!
Google グループは、そのグループのメンバーが Google を使用して Discourse にサインインした場合にのみ、Discourse に表示されます。事前に一覧表示するシステムはありません。
「いいね!」 1
Chukwithak
(Charlie King)
7
@david やっと機能しました。いくつかの設定をオフにする必要がありました。私のサイトの設定では、ユーザーは Google OAuth を介して自動ログインしていました。それをオフにし、Discourse Connect もオフにしたところ、機能しました。どちらが切断の原因となっていたかは不明です。Google で物理的にログインすると、すべてが入力されました。
「いいね!」 1
John_Faig
(John Faig)
8
Google グループの閲覧はまだ実験的な機能ですか?これらの手順は変更されましたか?
「いいね!」 1
TonyG
(Tony G)
9
@John_Faig さんと同様に、これがまだ実験的なものなのか疑問に思っています。
この機能を見たばかりで、移行したいGoogleグループが3つあります。「変化」を人々に促すことは非常に困難です。私たちは、快適ゾーンから抜け出すための良い理由を必要としています。そして、プロセスにつまずきを望んでいません。すでにGGに投資している人々にとって、さらに別のウェブサイトで(Discourse)ログインを作成することは手間がかかります。この機能が安定していれば、潜在的なつまずきが取り除かれ、聴衆を移行させるための説得力のある理由を提供することに集中できます。
ありがとうございます!