SAML を使用してシングルサインオンを設定する
最小限の設定で、このコネクターはあらゆる SAML ベースのアイデンティティプロバイダー (IdP) との統合を可能にします。
SSO についての詳細や Logto での SSO の設定方法については、エンタープライズシングルサインオン (SSO) (SAML & OIDC) ドキュメントを参照して始めてください。
ステップ 1: IdP で SAML SSO アプリケーションを作成する
IdP 側でアプリケーションを作成して SAML SSO 統合を開始します。Logto から次の設定を取得し、あなたのサービスプロバイダー (SP) を表します:
- オーディエンス URI (SP エンティティ ID): これは、Logto サービスのグローバルに一意の識別子として機能し、IdP への認証リクエスト時に SP の EntityId として機能します。この識別子は、IdP と Logto 間での SAML アサーションやその他の認証関連データの安全な交換において重要です。
- ACS URL: アサーションコンシューマーサービス (ACS) URL は、POST リクエストで SAML アサーションが送信される場所です。この URL は、IdP が SAML アサーションを Logto に送信するために使用されます。これは、Logto がユーザーのアイデンティティ情報を含む SAML レスポンスを受信し消費することを期待するコールバック URL として機能します。
IdP SAML アプリケーションにオーディエンス URI と ACS URL の設定を入力し、IdP から次の設定を取得し続けます。
ステップ 2: Logto で SAML SSO を設定する
SAML シングルサインオン (SSO) 統合を機能させるには、IdP メタデータを Logto に提供する必要があります。IdP メタデータは、Logto が IdP と信頼関係を確立するために必要なすべての情報を含む XML ドキュメントです。
Connection タブに移動します。Logto は、IdP メタデータを構成するための 3 つの異なる方法を提供しています:
- メタデータ URL: IdP メタデータ XML ドキュメントの URL を提供します。Logto は URL からメタデータを取得し、SAML SSO 統合を自動的に構成します。
- メタデータのアップロード: IdP メタデータ XML ドキュメントをアップロードします。Logto は XML ドキュメントを解析し、SAML SSO 統合を自動的に構成します。
- 手動構成: IdP メタデータを手動で構成します。
- IdP エンティティ ID: IdP のエンティティ ID。
- シングルサインオン URL: IdP シングルサインオンサービスの URL。
- 署名証明書: IdP からの SAML 応答の署名を検証するために使用される x509 証明書。
上記のいずれかの構成を使用すると、Logto は IdP メタデータを解析し、それに応じて SAML SSO 統合を構成します。
ステップ 3: ユーザー属性のマッピングを設定する
IdP から返されるユーザー属性は、IdP の設定によって異なる場合があります。Logto は、IdP から返されるユーザー属性を Logto のユーザー属性にマッピングする柔軟な方法を提供します。SAML SSO 統合体験タブでユーザー属性のマッピングを設定できます。
- id: ユーザーの一意の識別子。Logto は、SAML レスポンスから
nameIdクレームを読み取り、ユーザーの SSO アイデンティティ ID として使用します。 - email: ユーザーのメールアドレス。
- name: ユーザーの名前。
ステップ 4: メールドメインを設定し、SSO コネクターを有効化する
Logto のコネクターの SSO experience タブで、組織の email domains を提供してください。これにより、これらのユーザーに対して SSO コネクターが認証 (Authentication) 方法として有効になります。
指定されたドメインのメールアドレスを持つユーザーは、唯一の認証 (Authentication) 方法として SAML SSO コネクターを使用するようにリダイレクトされます。
オプション: SAML 認証リクエスト (Authentication request) に署名する
デフォルトでは、Logto は SAML 認証リクエスト(AuthnRequests)を署名せずに送信します。IdP が署名付き認証リクエストを要求する場合、Logto は生成されたサービスプロバイダー(SP)証明書でリクエストに署名できます。署名の有無はコネクターの 認証リクエストに署名 設定によって完全に制御されており、Logto は IdP メタデータの WantAuthnRequestsSigned フラグを読み取りません。
サインインの中断を避けるため、次の順序で設定してください:
- コネクターの
Connectionタブで リクエスト署名証明書 セクションを見つけ、新しいキーを生成 をクリックします。最初のキーは自動的に有効化され、以降に生成されたキーはローテーション用に無効状態でステージされます。 - 有効なキーの証明書をダウンロードし、IdP に登録します。
- 認証リクエストに署名 を有効にして保存します。有効化には有効な署名キーが必要です — キーがない状態で保存しようとすると拒否されます。
- IdP 側で署名付きリクエストの要求や検証を別途設定できる場合は、今そのオプションを有効にし、サインインフローをテストしてください。
両者の設定を同期させてください。証明書を登録する前に 認証リクエストに署名 を有効にしたり、Logto が署名する前に IdP 側で検証を必須にしたりすると、この接続経由のサインインができなくなります。リクエスト署名を検証しない IdP は署名を無視します。
キー管理はトグルとは独立して動作します:
- 有効なキーは最大 1 つで、すべてのリクエストに署名します。キーの操作(生成、有効化、無効化、削除)は即時反映されます。
- ダウンタイムなしで証明書をローテーションするには:新しいキーを生成(無効状態でステージ)、その証明書を IdP に登録し、有効化します — 以前のキーは自動的に無効化され、その後削除できます。
- 有効なキーは削除できません。また、認証リクエストに署名 が有効な間は無効化できません — 先に署名を無効にしてください。
- トグルをオフにしてもすべてのキーは保持されるため、再度有効化すれば同じ証明書で署名が再開されます — IdP 側での再設定は不要です。
Logto はデフォルトで RSA-SHA256 でリクエストに署名します。RSA-SHA512 を使用する場合は、Logto Management API を通じてコネクター設定の requestSignatureAlgorithm を http://www.w3.org/2001/04/xmldsig-more#rsa-sha512 に設定してください。