SSO セットアップ
SSO セットアップ
このガイドは、自社の ID プロバイダー (IdP) を InterMIND に接続する IT 管理者向けです。セットアップ後、メンバーは通常のログインページからサインインします: SSO でサインイン → 業務用メール → 自社の IdP → InterMIND に戻る。
対象プラン: Business および Enterprise プラン 設定権限: チームオーナーまたは管理者 プロトコル: OpenID Connect (OIDC)。SAML 2.0 によるサインインは開発中で、SAML 設定は保存されますがまだサインインには使用できません。
前提条件
- 検証済みドメイン — まず DNS TXT レコードでメールドメインを検証してください (ドメイン管理を参照)。SSO サインインは、チームが検証済みのメールドメインを持つアカウントのみを受け付けます。これがテナント境界です。
- OIDC ディスカバリーをサポートする IdP — Issuer URL の下に
/.well-known/openid-configurationを提供する必要があります。Okta、Microsoft Entra ID、Google はいずれも対応しています。
IdP に登録する内容
IdP に OIDC Web Application を作成し、以下を設定します:
| 設定 | 値 |
|---|---|
| リダイレクト URI (コールバック) | https://intermind.com/api/auth/sso/callback — OIDC を選択した後、SSO カードにも表示されます |
| Grant type | Authorization Code (PKCE S256 が自動的に使用されます) |
| Scopes | openid email profile |
IdP が発行する ID トークンにはユーザーの email が含まれている必要があり、そのメールのドメインは検証済みドメインのいずれかでなければなりません。そうでない場合、サインインは拒否されます。
次に、Integrations ページの SSO カードに入力します:
| フィールド | 入力内容 |
|---|---|
| Display Name | メンバーが識別できる任意のラベル |
| Issuer URL | IdP の Issuer — /.well-known/openid-configuration を提供する URL |
| Authorization URL | そのディスカバリードキュメントの authorization_endpoint |
| Client ID / Client Secret | 登録したアプリから取得 |
クライアントシークレットは保存時に暗号化され、保存後はブラウザに返されることはありません。
Okta
- 管理コンソール → Applications → Create App Integration → サインイン方法 OIDC、アプリケーションタイプ Web Application
- Sign-in redirect URI:
https://intermind.com/api/auth/sso/callback - アクセスを許可するユーザーまたはグループを割り当て
- Client ID と Client Secret をコピー
- InterMIND での設定: Issuer URL = Okta 組織 URL (例:
https://acme.okta.com、または認可サーバーを使用している場合はhttps://acme.okta.com/oauth2/defaultのような Issuer)、Authorization URL =<issuer>/.well-known/openid-configurationのauthorization_endpoint
Microsoft Entra ID (Azure AD)
- Entra 管理センター → App registrations → New registration
- プラットフォーム Web、リダイレクト URI
https://intermind.com/api/auth/sso/callback - Certificates & secrets → New client secret — シークレットの Value をすぐにコピー
- Client ID = 概要ページの Application (client) ID
- ID トークンにユーザーのメールが含まれるようにします: Token configuration → Add optional claim → ID → email
- InterMIND での設定: Issuer URL =
https://login.microsoftonline.com/<tenant-id>/v2.0、Authorization URL =https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
Google Workspace
アプリの登録は不要です。SSO カードでプロバイダータイプ Google Workspace を選択して保存すれば、検証済みドメインのメンバーは自分の Google アカウントでサインインし、チームに自動的に参加できます。(明示的にクライアント認証情報を使いたい場合は、Issuer https://accounts.google.com を使って Google を汎用 OIDC プロバイダーとして接続することも可能です。)
接続のテスト
- プライベート/シークレットウィンドウでログインページを開く
- SSO でサインイン をクリックし、検証済みドメインの業務用メールを入力
- IdP にリダイレクトされ、認証後 InterMIND にサインインした状態で戻ります
- このサインインは、チームの監査ログ (Users ページからエクスポート可能) に
auth.login、メソッドssoとして記録されます
トラブルシューティング
| 症状 | 原因 |
|---|---|
| メール入力後に「SSO is not configured」 | そのメールドメインに一致する有効な SSO 設定がありません — ドメインが検証済みで、SSO カードが保存されているか確認してください |
SSO login is not available: plan | チームのプランに SSO が含まれなくなりました |
SSO login is not available: domain-not-verified | ドメインがまだ DNS 検証待ちです |
SSO login is not available: config-incomplete | Client ID または Client Secret が未設定 — SSO カードを保存し直してください |
SSO login is not available: type-unsupported | 保存されている設定は SAML です — SAML サインインはまだ利用できません |
SSO IdP discovery failed | Issuer URL が誤っているか、/.well-known/openid-configuration を提供していません |
| 「login session expired, start again」 | サインイン開始から IdP コールバックまでに 5 分以上経過しました |
| IdP からリダイレクトされた後にサインインが拒否される | IdP が検証済みドメイン外のメールを返したか、email クレームがまったく含まれていません (Entra の場合: オプションの email クレームを追加してください) |
セキュリティ特性
セキュリティアンケート向け: SSO フローは Authorization Code に PKCE (S256)、state、nonce を組み合わせたものです。ID トークンの署名は IdP の JWKS に対して検証され、Issuer と audience も同時に検証されます。IdP が信頼の根拠となるのは DNS で検証されたドメインのみで、それ以外のメールに対するアサーションは決してセッションを生成しません。OIDC クライアントシークレットは保存時に暗号化されます。すべての SSO サインインはチームの監査ログに記録されます。プラン、ドメイン、設定のチェックは、サインイン開始時とコールバックの両方でサーバー側で適用されます。