コンテンツにスキップ

Google で SSO を設定する

組織のオーナーと管理者が、メンバーを Google アカウントで Actagate にログインさせるための手順です。 Google の OAuth クライアントは Actagate を動かす配備側に 1 つ置き、組織の設定画面ではサインインの許可と、許可する Google Workspace ドメインだけを決めます。

OAuth クライアントの作成と環境変数の設定 (手順 1 と 2) は、Actagate を動かしている運用担当者が行います。製品の提供元が用意する共有の OAuth アプリはありません。

1. Google Cloud で OAuth クライアントを作る

Section titled “1. Google Cloud で OAuth クライアントを作る”
  1. Google Cloud コンソールで OAuth 同意画面を設定します。Google Workspace の組織内だけで使う場合は「Internal」を選びます
  2. スコープに openid、email、profile を追加します
  3. 「認証情報」で OAuth クライアント ID を作り、アプリケーションの種類に「ウェブ アプリケーション」を選びます。クライアント ID とクライアントシークレットが表示されます
  4. 承認済みのリダイレクト URI は、手順 3 で表示される値を入れるまで空のままにします

公式資料: Google の OpenID Connect

  1. Web アプリの環境変数 GOOGLE_OIDC_CLIENT_ID と GOOGLE_OIDC_CLIENT_SECRET に、手順 1 の値を設定します
  2. Web アプリを再起動します。「設定」の「セキュリティ」にある「シングルサインオン」の一覧に「Google」が出ます

シークレットは配備先のシークレットストアで管理し、リポジトリには入れません。2 つのどちらかが未設定なら、設定画面にもログイン画面にも Google は出ません。WEB_BASE_URL は、利用者が開く公開 HTTPS のオリジンにしておきます。

3. Actagate で Google の設定を保存する

Section titled “3. Actagate で Google の設定を保存する”
  1. 「設定」の「セキュリティ」(/ws/settings/security) を開き、「シングルサインオン」の「プロバイダを選んで接続を追加」で「Google」を開きます。Google のフォームが開きます
  2. 「Google でのサインインを許可する」は外したまま、「許可する Google Workspace ドメイン」を入力して「保存」を押します。フォームの下に「Google Cloud に登録するリダイレクト URI」が表示されます

Google の接続は組織に 1 つです。OIDC の接続と違い、テストの段階はありません。

  1. 表示された https://<ホスト>/api/auth/sso/callback/<接続 ID> をコピーします
  2. Google Cloud の OAuth クライアントの「承認済みのリダイレクト URI」に貼り付けて保存します。接続 ID を含め、表示と完全に一致させます

5. Google でのサインインを許可する

Section titled “5. Google でのサインインを許可する”
  1. 「Google でのサインインを許可する」を選んで「保存」を押します。ログイン画面に「Google で続ける」のボタンが出ます

「許可する Google Workspace ドメイン」は、改行かカンマで区切って入力します。ドメインを入れると、ID トークンの hd (Workspace のドメイン) が一覧にない Google アカウントはログインできません。hd を持たない個人の Gmail アカウントも拒否します。空欄なら、個人アカウントも受け付けます。

  1. 招待済みの一般メンバーがログイン画面で「Google で続ける」を押し、Google でサインインします。Actagate の画面が開きます
  2. 許可していないドメインのアカウントでは、「この Google アカウントのドメインは許可されていません。」と表示されることを確かめます

初回のログインでは、Google で確認済みのメールアドレスを、招待済みメンバーのメールアドレスと照合します。2 回目からは Google の sub で同じ人を特定します。メールアドレスが変わっても、同じアカウントです。オーナーと管理者は、既存の方法でログインしてから「設定」の「ログイン方法」で「Google を追加」を押して紐づけます。

  • 一覧に Google が出ない: GOOGLE_OIDC_CLIENT_ID と GOOGLE_OIDC_CLIENT_SECRET の両方を設定し、Web アプリを再起動したか確かめます
  • Google の画面で redirect_uri_mismatch になる: 承認済みのリダイレクト URI が、設定画面の表示と完全に一致しているか確かめます
  • 「Google のメールアドレスが確認されていません。」(email_unverified): Google 側でメールアドレスを確認してから、もう一度ログインします
  • 「この Google アカウントのドメインは許可されていません。」(hosted_domain_forbidden): 「許可する Google Workspace ドメイン」にそのドメインを足すか、組織のアカウントでログインします

ほかの理由コードは SSO で困ったとき にまとめています。