web-dev-qa-db-ja.com

SessionNotOnOrAfter値がAuthnInstantとまったく同じ値であるSAMLアサーションは、無効なセッションを持つものとして扱われるべきですか?

SOAP SessionNotOnOrAfterタイムスタンプがAuthnInstantとまったく同じ値であるSAML AuthnStatementsのリクエストを受け取っています:

<saml:AuthnStatement AuthnInstant="2020-04-22T21:11:41.453Z" SessionNotOnOrAfter="2020-04-22T21:11:41.453Z">

SOAP署名を検証するためにApacheWSS4Jを使用しています。また、AuthNステートメントを含むさまざまなSAML 2.0機能も検証します。このパターンに適合するメッセージは、メッセージを取得するとすぐにAuthnStatementであるため、検証に失敗しますすぐに期限切れ!

独自の検証を構成または作成するために、SAML標準のレンズを通してこの状態について学びたいと思います。

この状態は、すぐに無効になるAuthNステートメントを表しますか?

SAML標準では、SessionNotOnOrAfterAuthnInstantと完全に等しいことについて、何と言っていますか?

2
Freiheit

SAMLコアのSessionNotOnOrAfter要素の定義は、期待どおりのものです。 <AuthnStatement>のセクション2.7.2から:

SessionNotOnOrAfter [オプション]

含まれているアサーションから派生したサブジェクトとのセッションの上限を示します。セクション1.3.3で説明されているように、時間値はUTCでエンコードされます。この属性とアサーションに存在する可能性のあるNotOnOrAfter条件属性の間に必要な関係はありません。 この属性に基づいて証明書利用者に特定の処理ルールを提供するのはプロファイルに任されています。

同様に、CoreでのAuthnInstantの定義は非常に簡単です。同じセクション2.7.2:

AuthnInstant [必須]

認証が行われた時刻を指定します。セクション1.3.3で説明されているように、時間値はUTCでエンコードされます。

したがって、SAMLメッセージのvalidationの観点から、SAML仕様のコア部分で説明されている特定のルールに従うXMLドキュメントとして、質問に対する答えは次のとおりです。

この条件は、即座に無効になるAuthNステートメントを表しますか?

回答:いいえ、ありません。

SAML標準では、SessionNotOnOrAfterがAuthnInstantとまったく同じであることについて、何と言っていますか?

回答:なし

SAMLメッセージで証明書利用者が実行する必要がある、または実行する必要がある複数の種類のルールと関連する検証手順があります。 structuralルールはSAML仕様のコア部分で説明されていますが、behavioralルールはプロファイルで説明されています。

SAMLでは、特定のプロファイルが、特定のユースケースを解決する際にアサーション、プロトコル、およびバインディングをどのように使用できるかを扱います。 SAMLメッセージの個々の要素がブリックである場合、SAMLのコア部分はブリックの形状、サイズ、色について話しますが、プロファイル部分の特定のプロファイルはブリックを使用して特定の家を建てる方法を説明します。ここで管理する適切なプロファイルは何ですか?

一部のSAMLメッセージは、SOAP固有のバインディングおよびSAMLプロトコルの適切なプロファイルによって文書化および指定されたルールを使用して、HTTP経由でSOAP経由でルーティングできますが、WSS4Jは異なる標準のエコシステムに属しています。 WSS4JはWS-Securityによって管理されます。結局、WSS4JはJavaのWebサービスセキュリティを表します。WS-Securityでは、SAMLトークンは、WSのプロファイルに基づいてSOAPメッセージで送信できます。 -SAMLのプロファイルではなく、セキュリティ。適切なWS-Securityプロファイルは WS-Security SAML Token Profile 1.1。 SAMLメッセージに埋め込まれたSAMLトークンの検証についての説明です。

3.5 SAMLアサーションのサブジェクト確認

SAMLアサーションのプロセッサは、アサーション署名の検証、アサーション内の<saml:Condition>要素の処理、<saml2:SubjectConfirmationData>属性の処理など、対応するSAML仕様で定義されている必要な検証および処理ルールに準拠する必要があります。 [SAMLCoreV1]はV1.1アサーションの検証と処理のルールを定義し、[SAMLCoreV2]はV2.0アサーションに対して信頼できます。

翻訳:SAML仕様のSAMLコア部分のstructuralルールは引き続き適用されます。 動作ルールはWS-Security SAMLトークンプロファイルによって指示され、このプロファイルはSessionNotOnOrAfterまたはAuthnInstantに関して何も言及していません。

2
identigral

これはパートナー側の設定ミスです。

そして、はい、それは検証に完全に失敗するはずです。 2つの理由があります。

  1. SessionNotOnOrAfterAuthInstantと等しいことは、トークンが作成された瞬間に期限切れになることを意味します。
  2. SessionNotOnOrAfterをシステムの時間と比較すると、すでに有効期限が切れているため、変更された方法はありません。トークンは期限切れです。
2
Andrew K.