Google Workspace で SSO を設定する¶
Google の識別プラットフォームは OIDC 準拠で、全ての顧客に対して単一の well-known discovery URL を使用するため、組織ごとに異なるのはクライアント ID とシークレットだけです。
このガイドは Google 側 — OAuth クライアントの作成と digna が必要とする値の収集 — を扱います。digna 側(dashboard_config.toml、テスト、トラブルシューティング)はプロバイダに関係なく同じで、Single Sign-On Overview に記載されています。
開始前の確認¶
| 要件 | メモ |
|---|---|
| Google Cloud プロジェクト | Workspace ドメインと同じ組織内の任意のプロジェクト |
| ロール | プロジェクト上の Editor または Owner |
| digna のリダイレクト URI | ログイン後にユーザーが戻る URL(例: https://digna.yourdomain.com/oidc/callback) |
ステップ 1: OAuth 同意画面の設定¶
Google は同意画面が存在するまで資格情報を発行しません。
- Google Cloud Console を開き、プロジェクトを選択します
- APIs & Services → OAuth consent screen に移動します
- ユーザータイプを選択します:
- Internal — Workspace ドメイン内のアカウントのみがログインできます。推奨設定です。
- External — 任意の Google アカウントがログインを試みることができます。
- アプリ名、ユーザーサポートメール、開発者連絡先メールを入力します
- Scopes のステップで、
openid、.../auth/userinfo.email、.../auth/userinfo.profileを追加します - 保存します
外部アプリは公開する必要があります
External の同意画面は Testing ステータスで開始され、その場合はテストユーザーリストに明示的に追加されたアカウントのみがログインを完了できます。それ以外のユーザーには「digna は Google の検証プロセスを完了していません」と表示されます。Publishing status でアプリを In production に切り替すか、Workspace 専用の配備であれば制限のない Internal を使用してください。
ステップ 2: OAuth クライアントの作成¶
- APIs & Services → Credentials に移動します
- Create Credentials → OAuth client ID をクリックします
- Application type を Web application に設定します
- 名前を付けます(例:
digna) - Authorized redirect URIs の下で Add URI をクリックし、以下を入力します:
- Create をクリックします
承認された JavaScript オリジンは不要です
digna はブラウザではなくバックエンドで認可コードを交換するため、Authorized JavaScript origins フィールドは空のままで問題ありません。重要なのはリダイレクト URI だけです。
ステップ 3: 資格情報の取得¶
作成後に表示されるダイアログには次が表示されます:
- Client ID —
.apps.googleusercontent.comで終わる →DIGNA_OIDC_CLIENT_IDになります - Client secret →
DIGNA_OIDC_CLIENT_SECRETになります
どちらも他の多くのプロバイダとは異なり、後から資格情報の詳細ページで再取得できます。
ステップ 4: ディスカバリー URL¶
Google は全顧客に対して単一のディスカバリー URL を使用します — 置換する値はありません:
ステップ 5: digna の設定¶
dashboard/dashboard_config.toml¶
config.toml¶
[oidc.google]
DIGNA_OIDC_CLIENT_ID = "123456789-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com"
DIGNA_OIDC_CLIENT_SECRET = "<the client secret copied in Step 3>"
DIGNA_OIDC_REDIRECT_URI = "https://digna.yourdomain.com/oidc/callback"
DIGNA_OIDC_CONFIGURATION_URL = "https://accounts.google.com/.well-known/openid-configuration"
両方のファイルで key が一致している必要があります — ここでは google です。
ステップ 6: テスト¶
バックエンドとウェブサーバを再起動し、ダッシュボードを開きます。チェックリストの完全版は Testing Login を参照してください。
Google Workspace のトラブルシューティング¶
Error 400: redirect_uri_mismatch¶
DIGNA_OIDC_REDIRECT_URI に設定した URI が Authorized redirect URIs リストに含まれていないか、末尾のスラッシュやスキームが異なっています。Google のエラーページには受け取った URI が表示されるので、登録済みの URI と 1 文字ずつ比較してください。
This App Is Blocked / Has Not Completed Verification¶
同意画面が External かつまだ Testing の状態です。公開するか、アプリを Internal に切り替えてください。
Access Blocked: Authorization Error¶
ログインを試みているアカウントが Workspace ドメイン外で、同意画面が Internal に設定されています。Internal アプリは組織内のアカウントのみを受け入れる意図された挙動です。
変更の反映に数分かかる¶
Google は資格情報と同意画面の変更を非同期で伝播します。新しく追加したリダイレクト URI が有効になるまで数分かかる場合があります。変更が無視されたように見える場合は、調査を開始する前に少し待ってから再試行してください。
参照¶
- Single Sign-On Overview — 設定リファレンス、テスト、一般的なトラブルシューティング
- Google: OpenID Connect