ケイパビリティ

SAML 2.0 アイデンティティフェデレーション

エンタープライズIdPおよび国家アイデンティティフェデレーションへの標準準拠なSAML 2.0接続。

多くの組織はすでにAD FS、Entra ID、Okta、Ping、Auth0、または国家アイデンティティフェデレーションのようなSAML 2.0アイデンティティプロバイダーを使用しています。TR7 AAMは、アプリケーションの前でSAML 2.0サービスプロバイダーとして動作し、新しいユーザーデータベースを作る代わりに既存のエンタープライズアイデンティティ基盤に接続します。 ユーザーは構成済みのIdPへリダイレクトされ、認証とMFA検証(ある場合)は組織自身のIdP上で完了します。その後、署名付きSAML応答がAAMへ返されます。AAMはこの応答の署名、対象アプリケーション、有効期間、セキュリティ条件を検証し、ユーザーアイデンティティを抽出して、独自のアクセスセッションを作成します。 このセッションはその後、条件付きアクセス、デバイストラスト、追加のMFA、SSOルーティング、Backend SSOといったAAMのレイヤーと連携して動作します。単一のAAMゲートウェイは、異なるアプリケーションや異なるテナントを別々のIdPへルーティングできます。 結果:ユーザーは組織アイデンティティで一度サインインします;AAMはアイデンティティを標準準拠の方法で検証し、監査下に置き、バックエンドアプリケーションへ安全に引き渡します。

SAML 2.0
標準準拠のサービスプロバイダー:署名付きAuthnRequest、検証済みSAML応答、audienceおよび有効期間の検証。
2バインディング
AuthnRequestにHTTP-Redirect、ACSにHTTP-POST。
テナントごとのIdP
単一ゲートウェイ上のマルチテナント、各テナントに個別のアイデンティティプロバイダー。

SAMLは依然としてエンタープライズアイデンティティの主要標準の一つ — しかし誤って実装するのは容易

モダンなアプリケーションでOIDCの利用が増えているとはいえ、SAML 2.0はエンタープライズおよび公共部門のアイデンティティ統合において依然として重要な標準です。多くの組織は、AD FS、Entra ID、Okta、Ping、Auth0、またはフェデレーションゲートウェイの背後にある既存のディレクトリをSAML経由で運用しています。公共部門側でも、国家アイデンティティフェデレーションとそれに接続するSaaSサービスはしばしばSAML 2.0の上に構築されています。

そのため、新規または近代化されたアプリケーションにとって正しいアプローチは、別個のユーザーデータベースを作ることではありません。アプリケーションは、組織がすでに信頼しているアイデンティティプロバイダーに接続すべきです。そのためには、アクセスレイヤーがSAML 2.0サービスプロバイダーとして振る舞う必要があります:ユーザーを正しいIdPへリダイレクトし、受信したSAML応答を検証し、アイデンティティを安全に抽出し、アプリケーションが利用できるセッションに変換しなければなりません。

しかしSAML統合は単に「XMLを受け取り、ユーザーを読み、サインインさせる」作業ではありません。誤って実装すると深刻なセキュリティの穴を生みます。SAML応答内の署名を正しく検証すること、どの要素が実際に署名されているかを確認すること、署名除去や偽アサーション挿入のような攻撃を防ぐことが必要です。有効期間、audience制約、issuer情報、NameID形式、属性マッピングは単に読まれるだけでなく、厳格に適用されなければなりません。

運用面も同様に重要です。IdPメタデータの更新、証明書および署名キーのローテーション、テナントごとに異なるIdPルーティング、異なるアプリケーション向けの異なるマッピングルール、Single Logoutフローは、後から付け足す細部ではありません。これらはSAMLフェデレーションが安全かつ持続可能に機能するための基本部品です。

最も一般的な誤りの一つは、各アプリケーションに個別のSAMLライブラリを埋め込むことです。このアプローチはアイデンティティの責任を各バックエンドに分散させます。単一のIdP変更が多数のアプリケーションで個別の更新を必要とします。MFA、条件付きアクセス、デバイストラスト、ログアウト挙動、監査記録がアプリケーションごとに再び解決されようとします。結果は中央集権的なアイデンティティではなく、分散したアイデンティティの混乱です。

正しい場所はアクセスエッジです。SAMLは単一ポイントで終端され、認証、MFA、条件付きアクセス、デバイストラスト、Backend SSOと同じレイヤーで管理されるべきです。これによりアプリケーションはフェデレーションプロトコルの複雑さを抱えず、検証済みでクリーンかつ信頼できるアイデンティティのみを受け取ります。

SAMLを正しく管理するとは、単にIdPに接続することではありません。組織のアイデンティティ信頼を単一ポイントで検証し、監査し、アプリケーションへ安全に運ぶことです。

私たちのアプローチ

単一のAAMゲートウェイがエッジでSAMLを正しく終端します;アクセスエンジンの残りはその上に重なります。

標準準拠のSAML 2.0サービスプロバイダー

送信時の署名付きAuthnRequest、受信時の完全なアサーション検証 — 署名、audience、有効期間、AudienceRestriction、NameID形式。HTTP-RedirectとHTTP-POSTの両バインディングがサポートされます。署名処理は、既知のSAML攻撃を阻止するために存在するSAML 2.0適合ルールに従います。

アプリケーションおよびテナントごとのIdPルーティング

単一のAAMゲートウェイは、異なるアプリケーションを異なるIdPへ、また同一アプリケーションの異なるテナントを異なるIdPへ、同時にルーティングできます。IdPの選択は、アプリケーションのコンテキストからリクエストごとに行われます — IdPごとの別ゲートウェイなし、ユーザー向けの手動ログインページセレクターなし。

NameIDおよび属性マッピング — AAMセッションアイデンティティへ

IdPごとのマッピングルールが、SAMLアサーションのNameIDと属性ステートメントを、AAMの残りが使う正規のフィールド — ユーザー名、メール、グループ、表示名、カスタム属性 — に変換します。同じマッピングがMFAゲーティング、条件付きアクセスの式、監査ログ、Backend SSO注入を供給します。

MFA、条件付きアクセス、デバイストラスト、Backend SSOと連携

SAML認証は単独では機能しません — エッジのMFA(IdPがステップアップを適用しなかった場合)、条件付きアクセスの式、継続的トラスト評価、バックエンドへのBackend SSO注入とともに組み立てられます。SAMLアサーションはAAMセッションへの一入力となります;セッション全体にはなりません。

ケイパビリティ

標準準拠のSAML 2.0 SP、加えてフェデレーションを大規模に安全かつ管理可能にする運用機能。

署名付きAuthnRequestによるSP-Initiated SSO

ユーザーがアプリケーションに到来し、AAMが署名付きSAML AuthnRequestとともに構成済みのIdPへリダイレクトし、ユーザーはIdPでサインインし、IdPは署名付きアサーションをAAMのAssertion Consumer Serviceエンドポイントへ返します。送信リクエストにはHTTP-Redirect、受信アサーションにはHTTP-POSTの両バインディングがサポートされます。

RelayState対応のIdP-Initiated SSO

ユーザーの起点がIdPであるデプロイメント向け — IdP上のポータルのランチパッド、アプリケーションカタログ、公共部門アイデンティティポータル — IdP-Initiated SSOが受け入れられます。RelayStateは目的のアプリケーション到達先を運びます;これにより、アサーション消費後にユーザーは正しいページで開きます。

完全なアサーション検証 — 署名、audience、有効期間、制約

アサーションの署名は構成済みのIdP署名証明書に対して検証されます;audienceは構成済みのAAM SP識別子と一致します;NotBeforeとNotOnOrAfterが有効期間を定めます;AudienceRestrictionが適用されます。既知のSAML攻撃(signature wrapping、signature stripping、NotBefore drift)は黙って許容されるのではなく、明示的に阻止されます。

秘密鍵処理を伴うオプションのアサーション暗号化

IdPがアサーションを暗号化する場合(xmlenc)、AAMは検証の前に構成済みのSP秘密鍵でアサーションを復号します。暗号化アサーションは、国家アイデンティティフェデレーション向けや、アサーション内容をバインディングレイヤーで可読にしたくないIdP向けに一般的です。暗号化キーは構成ストアに暗号化して保存され、決してログに出力されません。

IdPごとのNameID形式選択と属性マッピング

各IdPは、優先するNameID形式(persistent、transient、email-address、unspecified)と、SAML属性名からAAMセッションフィールドへのマッピングとともに構成できます。異なるIdPはアイデンティティを異なる形で提示しえます — 国民ID番号、メール、一意の不透明な識別子 — それでも同じ正規のAAMセッション形式を生成できます。

マルチテナントデプロイメント向けのテナントごとのIdPバインディング

多数のテナントを前面で受け持つ単一のAAMゲートウェイは、各テナントを自身のIdPへルーティングできます。選択はリクエスト時にアプリケーションまたはテナントのコンテキストから行われます — IdPごとの別ゲートウェイなし、ユーザーごとのセレクターなし。同じゲートウェイが、あるテナントには国家アイデンティティフェデレーションを、別のテナントにはカスタムのエンタープライズIdPを、同時に運べます。

AAMセッションのクリーンアップと連携したSingle Logout(SLO)

IdPがログアウトを開始すると、AAMはSAML LogoutRequestを受け入れ、AAMセッションを終了し、Backend SSO注入を受けるバックエンドにシグナルを送ります。アプリケーションがログアウトを開始すると、AAMはIdPへ署名付きLogoutRequestを送り、セッション終了を宣言する前にLogoutResponseを待ちます。フロントチャネルSLOがサポートされます。

ロードマップ — バックチャネルSLO、ECPプロファイル、holder-of-keyバインディング

バックチャネルSOAPベースのSingle Logout、非ブラウザクライアント向けのSAML ECP(Enhanced Client/Proxy)プロファイル、高セキュリティ統合向けのholder-of-key subject confirmationがロードマップにあります。構成オブジェクトとSPパイプラインの残りはすでにこれらに対応しています;欠けているのはプロトコル固有のコードです。

運用上の深さ

SAMLフェデレーションを安全、最新、観測可能に保つメカニクス。

01

IdPメタデータの交換 — アップロード、URLからの取得、または手動構成

IdPメタデータは、IdPが提供するメタデータXMLをアップロードすることで、AAMが取得しキャッシュするメタデータURLを構成することで、またはエンドポイントと証明書を手動入力することで読み込めます。手動構成は、標準準拠のメタデータを公開しないIdP向けの現実的な選択肢です;機能する場合は他の2つの方式が優先されます。

02

IdPオンボーディング向けのSPメタデータ公開

AAMは自身のSPメタデータドキュメントを安定したURLで公開します;これにより、IdPオペレーターはエンドポイントと証明書を手動で移すのではなく、それをIdPのトラストストアに取り込めます。メタデータは稼働中のSP構成を反映します — 現在のACS URL、現在の署名証明書、現在のSLOエンドポイント。

03

中断なしの署名キーおよび証明書ローテーション

SP署名キーと証明書には寿命があります。AAMはオーバーラップによるキーローテーションをサポートします — ロールオーバーウィンドウの間、新旧両方のキーがIdPのキャッシュ済みメタデータに対して検証されます。オペレーターはローテーションを事前に計画します;ランタイムはオーバーラップ期間中に両方を受け入れ、ローテーションはクリーンに切り替わります。

04

限定的なドリフトウィンドウによるクロックスキュー許容

アサーションはNotBeforeとNotOnOrAfterのタイムスタンプを持ちます。実際のクロックはずれます;AAMは構成可能な許容ウィンドウを適用します;これにより小さなずれが有効なアサーションを拒否せず、大きなずれ(設定ミスやリプレイの兆候)は引き続き拒否されます。許容はIdPごとです;よく同期されたIdPは狭いウィンドウを、問題のあるIdPは文書化された猶予を得ます。

05

AAMセッションライフサイクルに沿った監査と相関

各SAMLイベント — 送信AuthnRequest、受信アサーション、署名検証の結果、SLO LogoutRequest、LogoutResponse — が、AAMセッション、その背後のバックエンド、ユーザーアイデンティティに紐づく相関IDとともに記録されます。「誰がどのIdP経由でいつサインインしたか」は単一のクエリで答えられます。

06

ロードマップ — 自動IdPメタデータ更新とローテーションテレメトリー

構成済みURLからのIdPメタデータの定期的な自動更新、差分検出、署名証明書変更時のオペレーターへのアラートがロードマップにあります。ローテーションテレメトリー — キー経過メトリクス、有効期限までの残日数アラート、自動ロールオーバーのスケジューリング — も計画されています。

どのチームが使うか

国家アイデンティティフェデレーション

国家アイデンティティフェデレーションIdPを受け入れる必要があるアプリケーション — 公共部門デプロイメント、規制対象セクター、公共部門の調達者へ契約されたSaaSサービスに典型的です。AAMはSAMLフェデレーションをエッジで終端し、その背後のアプリケーションにクリーンで検証済みのアイデンティティを提示します。

エンタープライズIdP(AD FS、Entra ID、Okta、Ping、Auth0)

ワークフォースに対してすでに権威となっている既存のエンタープライズIdP。AAMは、IdPチームに何かを変更させることなく、SAML SPとして接続します。新しいアプリケーションは、各コードベースに新しいSAMLライブラリを追加するのではなく、AAMに登録を追加することでフェデレーションに参加します。

テナントごとのIdPを持つマルチテナントデプロイメント

各顧客が自身のIdPを持ち込むSaaSアプリケーション。単一のAAMゲートウェイがすべてのテナントを前面で受け持ちます;各テナントのトラフィックはそのテナントのIdPへルーティングされます。テナントを追加することは、デプロイではなく、構成ストアにIdP登録を追加することです。

MFAや条件付きアクセスを適用しないIdPの上にエッジMFAと条件付きアクセス

一部のIdPは認証はしますが、ステップアップMFAや条件付きアクセスを適用しません — 特に古いフェデレーションゲートウェイ。AAMはIdPの認証を受け入れ、その後アプリケーションへのアクセスを許可する前に、独自のMFA、条件付きアクセスの式、継続的トラスト評価をその上に重ねます。

よくある質問

AAMはどのIdPとフェデレートしますか?
標準準拠のあらゆるSAML 2.0 IdPです。実際には、AD FS、Entra ID(Azure AD)、Okta、Ping、Auth0、フェデレーションゲートウェイの背後にあるローカルディレクトリ、および国家アイデンティティフェデレーションIdPが含まれます。メタデータXMLのアップロード、メタデータURLからの取得、または手動構成によって提供できます。
AAMは既知のSAML攻撃にどう対処しますか?
アサーションの署名は構成済みのIdP署名証明書に対して検証されます;signature wrapping、signature stripping、namespaceのトリックは黙って許容されるのではなく、明示的に阻止されます。NotBeforeとNotOnOrAfterは限定的なクロックスキュー許容範囲とともに適用されます。AudienceRestrictionは構成済みのAAM SPを名指ししなければなりません。暗号化アサーションは、バインディングレベルの検証が通った後にのみSP秘密鍵で復号されます。
単一のAAMゲートウェイは異なるテナントやアプリケーションを異なるIdPへルーティングできますか?
はい。IdPの選択はアプリケーションまたはテナントのコンテキストからリクエストごとに行われます。同じゲートウェイが、あるテナントを国家アイデンティティフェデレーションIdPへ、別のテナントをカスタムのエンタープライズIdPへ、同時にルーティングできます;各テナントは独自のNameIDと属性マッピングを得ます。テナントの追加はデプロイではなく構成変更です。
AAMはSingle Logout(SLO)をサポートしますか?
フロントチャネルSLOは双方向でサポートされます — IdP起点のLogoutRequestはAAMセッションを終了しバックエンドにシグナルを送ります;アプリケーション起点のログアウトはIdPへ署名付きLogoutRequestを送り、セッション終了を宣言する前にLogoutResponseを待ちます。バックチャネルSOAPベースのSLOとSAML ECPプロファイルはロードマップにあります。
AAMがアサーションを消費した後、アイデンティティはどうなりますか?
NameIDと構成済みの属性が正規のAAMセッションフィールド(ユーザー名、メール、グループ、表示名、カスタム属性)にマッピングされます。アクセスエンジンの残りはこのセッション上で推論します — MFAゲーティング、条件付きアクセスの式、継続的トラスト評価、バックエンドへのBackend SSO注入。アプリケーションはBackend SSOで期待する形でアイデンティティを受け取ります;SAMLプロトコルはAAMのエッジで止まります。

SAMLを正しく、エッジで

AAMをあなたのIdP — エンタープライズまたは国家アイデンティティフェデレーション — に接続し、アクセスエンジンの残りをMFA、条件付きアクセス、デバイストラスト、Backend SSOとともにアサーションの上に重ねましょう。