今すぐ始める

企業向け SSO

OIDC によるシングルサインオン、メールドメインによるルーティング、JIT ワークスペース参加の仕組みと現在の適用範囲です。


シングルサインオン(SSO)を使うと、組織の OpenID Connect(OIDC)プロバイダーで Epismo にサインインできます。ワークスペースのオーナーまたは管理者が組織のドメインと OIDC 接続を登録し、ドメイン所有権の確認と実際のログインによるテストを完了してから有効にします。

現在提供していること

  • 通常のサインイン画面に入力した勤務先メール、または epismo login --email に指定したメールのドメインから、対応するワークスペースの IdP へ自動転送します。
  • IdP が返した検証済みメールのドメインが、ワークスペースの検証済みドメインと一致する場合だけログインを完了します。
  • 検証済みメールが既存の Epismo ユーザーと一致する場合、そのユーザーへ OIDC ID を追加します。一致するユーザーがいない場合は新規作成します。
  • 必要に応じて、対象ワークスペースへ Member として JIT 追加します。

SSO の必須化と現在の制約

SSO は追加のログイン方法として有効にでき、ドメイン検証とログインテストの成功後に 必須 にも設定できます。必須の場合、Web・CLI・MCP を含むワークスペースへのアクセスには現在有効な SSO 認証の証明が必要です。有効期限は認証から最大 12 時間で、トークン更新や派生認証情報の発行では延長しません。Web は SSO に誘導し、証明のない CLI・MCP のリクエストは拒否されるため再ログインが必要です。オーナーも SSO 必須の対象となり、メールコードでは回避できません。

IdP でユーザーを停止しても、既存の Epismo セッションや SSO の証明が即座に無効になるわけではありません。ワークスペース所有リソースへのアクセスを取り消すには Epismo でメンバーを削除してください。SCIM・グループ同期・ロールマッピング・複数ドメイン・複数 OIDC 接続には未対応です。個人所有リソースへの明示的な共有は独立したアクセス条件に従います。

サインインの流れ

  1. ユーザーが通常の Epismo サインイン画面で勤務先のメールアドレスを入力するか、epismo login --email <メールアドレス> を実行します。
  2. Epismo はメールドメインから、有効かつ検証済みの SSO 接続を探します。
  3. ユーザーを会社の IdP へ転送します。
  4. Epismo は OIDC 応答と検証済みメールを確認します。
  5. issuer と subject で ID を解決します。新しい ID の場合は、検証済みメールが一致する既存ユーザーへリンクするか、新しいユーザーを作成します。
  6. 必要に応じて Member メンバーシップを作成します。
  7. ユーザーを対象ワークスペースへ戻します。

メールアドレスは接続先の探索とドメイン適格性の確認に使います。OIDC ID の識別には、メールではなく IdP が発行した issuer と subject を使います。

SSO を設定する

ワークスペースの オーナー または 管理者 が SSO を設定できます。1 つのワークスペースに登録できるのは、現在 1 つの企業メールドメインと 1 つの OIDC 接続です。

IdP 側でアプリを作成する

IdP に Web アプリケーションを作成し、次のコールバック URL を登録します。

https://epismo.ai/api/auth/oidc/callback

Epismo は Authorization Code Flow、PKCE(S256)、state、nonce を使用し、次のスコープを要求します。

openid email profile

ID トークンには、次の情報(クレーム)が必要です。

項目 必須 用途
iss 必須 登録した発行元(issuer)との照合
sub 必須 OIDC ID の永続的な識別
email 必須 JIT 参加対象ドメインの確認
email_verified 必須 true の場合だけメールを信頼
name 任意 新規 Epismo ユーザーの表示名。なければメールのローカル部を使用します

IdP 側で、Epismo アプリを利用できるユーザーを適切に割り当ててください。Epismo 側のドメイン確認は、IdP のアプリ割り当てに代わるものではありません。

Epismo に接続情報を保存する

対象ワークスペースを開き、ワークスペース設定 → シングルサインオンへ移動します。

項目 入力内容
企業メールドメイン acme.com のような、組織が所有するメールドメイン
発行元 URL OIDC の接続情報を公開する発行元の HTTPS URL。IdP の値と完全一致させます
クライアント ID IdP で作成したアプリのクライアント ID
クライアントシークレット 機密情報を安全に保持できるクライアントの場合に入力。機密情報を安全に保持できないクライアントの場合は空欄

クライアントシークレット は暗号化して保存され、保存後に再表示されません。空欄のまま保存すると保存済みのシークレット を維持します。削除する場合は、保存済みのシークレット の削除項目を選びます。

ドメイン所有権を確認する

メールドメインによるサインイン先の振り分けを有効にする前に、そのドメインをワークスペースが所有していることを確認します。SSO 設定を保存したら、画面に表示された DNS TXT レコードを追加します。例:

Name:  _epismo-challenge.acme.com
Value: epismo-domain-verification=<random-challenge>

DNS プロバイダーによってはホスト名の欄に _epismo-challenge だけを入力します。DNS の反映後、DNS レコードを確認を選びます。Epismo が完全な TXT 値を確認できると、ドメインは確認済みになります。

検証には次のルールがあります。

  • 1 つのメールドメインを複数のワークスペースへ同時に登録することはできません。
  • gmail.com、outlook.com などの共有メールドメインは登録できません。
  • チャレンジは設定ごとにランダムに生成されます。
  • ドメインを変更すると以前の検証は解除され、新しいチャレンジが発行されます。
  • チャレンジを再生成すると、以前のチャレンジは無効になり、再検証まで SSO も無効になります。
  • SSO 設定を削除して作り直した場合も、新しいチャレンジで検証が必要です。

SSO を有効にする

  1. 接続情報を保存します。
  2. DNS TXT レコードを追加して所有権を確認します。
  3. SSO ログインをテストを選び、管理者自身で IdP のログインを完了します。
  4. 設定画面へ戻り、SSO を有効化を選んで保存します。

DNS 検証と実際のログインによるテストの両方が成功するまで接続は有効化できません。発行元 URL、クライアント ID、クライアントシークレット、またはドメインを変更するとログインテストが無効になります。ドメインを変更した場合は DNS 検証もやり直します。

DNS 検証に失敗する場合

TXT レコードのホスト名と値が画面の表示に完全一致すること、DNS の反映時間が経過していること、同じドメインが別のワークスペースに登録されていないことを確認してください。TXT 値が複数の文字列に分割表示される場合は、結合した値が一致する必要があります。古い TXT レコードでは、再作成した設定を検証できません。

ユーザーのサインインと JIT 参加

有効な接続がある場合、一致する勤務先メールを送信すると、ユーザーは組織の IdP へ自動転送されます。SSO 専用のボタンを選ぶ必要はありません。CLI の epismo login --email <メールアドレス> も同じ判定を行い、SSO 対象ならブラウザーへ進み、対象外ならターミナル上のメールコード入力でログインを完了します。認証後、OIDC 応答の署名、発行元、対象アプリ、有効期限、state、nonce、PKCE が有効である必要があります。ID トークンには email_verified: true のメールが含まれ、そのドメインがワークスペースの検証済みドメインと一致しなければなりません。

SSO を完了できなかった場合は、SSO の再試行、メールコードの送信、別のメールアドレスの使用を明示的に選べます。フォールバックのメールコードが自動送信されることはありません。

Epismo は issuer と subject で ID を解決します。新しい ID の場合は、検証済みメールが一致する既存ユーザーへリンクし、一致するユーザーがいなければ作成します。その後、必要に応じて対象ワークスペースへ Member として追加します。SSO 経由でオーナーや管理者へ自動昇格することはありません。

ドメインが一致しない外部ユーザーは JIT で追加されません。別途メンバーへ追加しても SSO 必須の条件は回避できません。

既存アカウント

リダイレクト前に入力したメールは、SSO 接続先の選択にのみ使用します。アカウントのリンクには IdP が返した検証済みメールを使用します。そのメールが既存ユーザーに使われている場合は、そのユーザーへ OIDC ID を追加します。ログイン中のユーザーが明示的にリンクすることもできます。別のユーザーへリンク済みの OIDC ID は付け替えられません。

SSO 必須時のアクセス

Google やメールコードでユーザーとしてログインできても、ワークスペースの SSO 必須条件を満たすわけではありません。そのワークスペースへアクセスする前に SSO を完了してください。オーナーも例外ではありません。有効な証明を持たない CLI・MCP の認証情報は拒否され、更新しても証明の期限はリセットされません。

SSO を必須にするには、同じブラウザーで 10 分以内に SSO テストを成功させてください。