日本語
  • SAML
  • SSO
  • Identity Provider

開発者向けの SAML アプリ統合を簡素化

SAML とは何か、SSO の実装方法、及びアイデンティティプロバイダー(IdP)またはサービスプロバイダー(SP)として SAML アプリを統合するための迅速なステップを学びます。

Ran
Ran
Product & Design

ユーザー認証に何週間も費やすのはもうやめましょう
Logto でより速く安全なアプリをリリース。数分で認証を統合し、コア製品に集中できます。
始めましょう
Product screenshot

シングルサインオン (SSO)は現代のアプリにとって重要で、SAMLはビジネスアイデンティティシステム間の安全でフレンドリーな認証を可能にします。このガイドは、開発者やデザイナーが効率的に実装できるように、SAML を簡単に説明し、明確な手順と実用的な例を提示します。

SAML SSO と SAML アプリとは何か?

セキュリティアサーションマークアップ言語 (SAML)は、XML ベースの標準で、主に二つの重要なプレーヤー間で認証と認可データを交換するために使用されます:アイデンティティプロバイダー (IdP)サービスプロバイダー (SP)。これは、組織におけるシングルサインオン (SSO) の一般的なソリューションで、エンタープライズユーザーが一度のサインインで複数のアプリケーションにアクセスできるようにすることで、生活を楽にします。

アイデンティティプロバイダー (IdP) は、ユーザーの資格情報(ユーザー名やパスワードなど)を管理し検証する責任を負っています。ユーザーが保護されたサービスにアクセスしようとすると、IdP はその身元を確認し、その確認をサービスに送信します。

  • 例: 大企業で働いていて、社員アカウントを管理するために Microsoft Azure AD を使用していると想像してください。Salesforce にログインしたいとき、Azure AD は IdP として機能します。それはあなたの資格情報を確認し、Salesforce にあなたが利用を許可されていることを通知します。

サービスプロバイダー (SP) は、ユーザーが実際にアクセスしようとするアプリケーションまたはサービスです。認証の重い処理を行うために IdP に依存しています。

  • 例: 上記のシナリオを続けると、Salesforce は SP です。それは、Microsoft Azure AD (IdP) があなたの身元を確認することに依存しています。Azure AD があなたを保証すると、Salesforce はあなたを受け入れます。

SAML アプリ」について話すとき、人々は通常、SP を指しています。

SAML プロトコルを使用すると、サービスを IdP として設定してアプリケーション統合をサポートしたり(Azure Ad / Google Workspace など)、SP(Salesforce / Slack など)として設定してユーザー向けに SSO をサポートできます。

SAML アサーションは、SAML プロトコルの中心です。それは、IdP によって作成され、SP に送信されるデジタル「メモ」です。「私はこのユーザーの身元を確認しました」と言います。次に、IdP と SP の両方のプロセスがどのように機能するかを説明します。

SAML アイデンティティプロバイダとして機能する場合

サービスが IdP として機能するとき、複数のアプリケーションにわたり SAML 認証を有効にします。これにより、ユーザーは単一のエンタープライズアイデンティティを通じて様々なサービスにアクセスできます。

as_saml_identity_provider_idp.png

ここでは、IdP のための典型的な SAML SSO ワークフローです:

  1. ユーザーがアプリケーション (SP) にアクセスしようとします(例:Salesforce)。
  2. アプリケーションは、認証のためにユーザーをあなたの IdP にリダイレクトします。
  3. ユーザーはあなたの IdP のサインインページで資格情報を入力します。
  4. IdP は資格情報をチェックします。
  5. 資格情報が確認されると、IdP は SAML アサーションを SP に返します。
  6. SP はアサーションを処理し、その有効性を確認し、ユーザーにアクセスを許可します。

SAML サービスプロバイダーとして機能する場合

サービスが SP である場合、様々な IdP と統合して、ユーザーに SSO 機能を提供します。これにより、異なる組織やテナントからの企業ユーザーが安全かつ効率的にあなたのアプリケーションにアクセスできます。

as_saml_service_provider_sp.png

ここでは、SP 発信 SSO のワークフローです:

  1. ユーザーがあなたのアプリケーションにサインインしようとします。
  2. あなたのアプリケーションは SAML リクエストを生成し、ユーザーを IdP のサインインページにリダイレクトします。
  3. ユーザーは IdP でサインインします(既にサインインしている場合はこのステップをスキップします)。
  4. IdP はユーザーの身元を確認し、確認されると、ユーザーの詳細を SAML アサーションに詰め込みます。
  5. IdP はアサーションをあなたのアプリケーションに返します。
  6. あなたのサービスはアサーションを検証します。それが有効であれば、ユーザーはあなたのアプリケーションへのアクセスを得ます。

SAML SSO の主要なパラメータ

成功する SAML SSO 統合のためには、IdP と SP の両方が特定のパラメータを共有する必要があります。ここでは基本事項を見てみましょう:

IdP からのパラメータ

  1. IdP エンティティ ID: SAML 通信における IdP の一意の識別子。
  2. SSO URL: SP が認証のためにユーザーをリダイレクトするログインエンドポイント (URL)。
  3. X.509 証明書: SAML アサーションを署名するための公開鍵で、それが安全であることを保証します。これは真実性を確認する「シール」です。

ヒント: IdP が SAML メタデータ URLを提供している場合、作業は楽になります。この URL には、証明書、SSO URL、および IdP エンティティ ID などの必要な情報がすべて含まれています。これは手動でのコピーペーストによるエラーのリスクを最小限に抑え、証明書ファイルの手動更新の面倒をなくします。

SP からのパラメータ

  1. SP エンティティ ID: IdP エンティティ ID に似ている SP の一意の識別子。
  2. アサーションコンシューマーサービス (ACS) URL: SP が IdP から SAML アサーションを受け取ることを期待する SP エンドポイント。
  3. リレーステート (オプション): SAML プロセス中にデータを渡すために使用されます。たとえば、ユーザーが最初に訪れようとしていた URL です。

SAML 属性マッピングと暗号化

  1. NameID フォーマット: ユーザ識別子形式を定義します (例: メールアドレスまたはユーザー名)。
  2. SAML 属性: これらは、IdP から SP に送信される追加のユーザーディテールです。例えば、役割、メール、または部署などです。
    • 例: IdP によって署名された SAML アサーションに email ([email protected])、role (管理者)、そして department (エンジニアリング) が含まれる場合。SP は role を使用して管理者権限を割り当てたり、department を利用してユーザーを適切なチームにグループ化したりできます。この重要なユーザーデータを取得するためには、IdP と SP の両方で属性をマッピングする方法を決定する必要があります。たとえば、IdP が「department」をteamとして定義し、SP がそれをgroupとして期待している場合です。適切なマッピングにより、スムーズなコミュニケーションが保証されます。
  3. 暗号化されたアサーション (オプション): センシティブな認証データを保護するために、SAML アサーションは暗号化できます。
    • IdP の役割: SP の公開鍵を使用してアサーションを暗号化します。
    • SP の役割: プライベートキーを使用してアサーションを復号してユーザーの詳細を読み取ります。

これで、SAML 接続を設定するための必要な情報が手に入りました。Salesforce (サービスプロバイダー) を Azure AD (アイデンティティプロバイダー) と統合するには、次の手順に従います:

  • Azure AD から IdP エンティティ ID、SSO URL、証明書を取得し、それらを Salesforce に設定します。
  • Salesforce の SP エンティティ ID と ACS URL を Azure AD に提供します。

Logto は SAML 統合を簡単にします

Logto は、あなたのアプリケーションのために SAML SSO をサポートするために、IdP または SP として機能できます。

Logto を SAML IdP として使用

Logto は他のアプリケーションに信頼されるフェデレーテッドアイデンティティ認証を提供し、強化されたセキュリティのために 多要素認証 (MFA) をサポートします。

  1. Logto アプリを作成 Logto コンソール > アプリケーションに移動して、新しい SAML アプリを作成します。
  2. SAML パラメータを設定 サービスプロバイダー (SP) の アサーションコンシューマーサービス URLSP エンティティ ID でアプリを設定します。
  3. メタデータ URL を提供 Logto は、SP が SSO URL や証明書などの重要な詳細を自動的に取得できる IdP メタデータ URL を提供します。
  4. 高度な設定 (オプション)
    • フィンガープリント付きの複数の 新しい証明書 を作成し、有効期限を設定できますが、一度にアクティブなのは一つの証明書だけです。
    • ビジネス要件に合わせて Name ID フォーマット を修正します。
    • サービスプロバイダーからの x509 証明書をコピーして貼り付けてアサーションを暗号化することで、SAML アサーションの暗号化を有効にします。
  5. 属性マッピング (オプション) ユーザ属性がサービスプロバイダ(SP)にどのように共有されるかを簡単にカスタマイズできます。

logto_saml_apps_saml_providers.png

詳細なガイドについては、公式ドキュメントをこちらで確認してください:SAML アプリ

Logto を SAML SP として使用

Logto は、SAML または OIDC プロトコルを介して任意の企業 IdP と統合します。統合サインインページのために SP 発信 SSO を有効にする場合でも、IdP 発信 SSO を設定する場合でも、プロセスは簡単です。

  1. 企業コネクタを作成 Logto コンソール > エンタープライズ SSO にアクセスして、新しいエンタープライズコネクタを作成します。プロトコル標準として SAML を選択します。
  2. SAML パラメータを設定 あなたの IdP から メタデータ URL または メタデータ XML ファイル のいずれかを提供します。メタデータが利用できない場合は、手動設定に切り替えて IdP エンティティ ID、SSO URL を入力し、署名証明書をアップロードしてください。
  3. ACS URL と SP エンティティ ID を共有 Logto の ACS URLSP エンティティ ID を提供して、統合設定を完了してください。
  4. 属性マッピング (オプション) メールや名前などのユーザーデータのマッピングを構成して、IdP と Logto の間で情報が正しく渡されることを保証してください。
  5. 企業の電子メールドメインを追加 企業コネクタの「SSO エクスペリエンス」タブで、1 つ以上の電子メールドメインを追加します。これにより、指定されたドメインを持つユーザーのみが SSO を介して認証できます。
  6. IdP 発信 SSO を有効 (オプション) この機能は企業クライアントが要求する場合にのみ有効にします。この機能により、IdP ダッシュボードから直接アプリケーションにサインインできます。

logto-enterprise-saml-sso.png

詳細なガイドについては、公式ドキュメントをこちらで確認してください:エンタープライズ SSO ドキュメント

終わりの思い

SAML は SSO のための標準化された安全な方法を提供し、認証を円滑にします。Logtoは、IdP としてでも SP としてでもそのプロセスを簡単にします。ユーザーフレンドリーなインターフェースと クラウド 及び オープンソース バージョンの両方のサポートを備えた Logto は、SAML 統合の複雑さを取り除きます。少数のパラメータを設定するだけで、任意の SAML IdP または SP にサービスを接続し、ユーザーのための素晴らしいエクスペリエンスの構築に集中できます。