web-dev-qa-db-ja.com

SAMLアーティファクトの目的は何ですか?

リダイレクトを介してアイデンティティプロバイダー(IdP)、サービスプロバイダー(SP)、およびブラウザー間でどのように渡されるかについてのフローチャートを見てきました。しかし、今はそれが不要なように思えるので、何かが欠けていることは知っています。

SAMLアーティファクトを使用しない場合と比較して、SAMLアーティファクトが必要な(または非常に有用な)ユースケースを誰かが提供できますか?

ありがとうございました。

34
funa68

通常、アーティファクトバインディングの目的は、ブラウザー自体を通るSAMLメッセージのフローを減らすことです。これは、ブラウザーの制限(クエリ文字列/ POST=ペイロードサイズ)に制限があるブラウザー)またはJavaScriptのサポートがない(自動送信フォームの場合)か、さらにはアーティファクトを使用することにより、SAMLアサーション/属性ステートメントを介して運ばれる機密データはブラウザを通過しないため、エンドユーザーまたはサイトとエンドユーザーの間の攻撃者から隠すことができます。バックチャネルルックアップを介してのみサイト間で直接解決されます。

SAML 2.0 Bindings specs のセクション3.6.2は、それを最もよく要約しています。

HTTPアーティファクトバインディングは、SAMLリクエスターとレスポンダーが仲介としてHTTPユーザーエージェントを使用して通信する必要がある場合を対象としていますが、仲介者の制限により、それを介したメッセージ全体(またはメッセージ交換)の送信が排除または阻止されます。これは、技術的な理由、またはメッセージコンテンツを仲介者に公開するのをためらうためである場合があります(暗号化の使用が実用的でない場合)。 SOAPなどの別の同期バインディングを使用してアーティファクトを後で解決する必要があるため、アーティファクトの送信と逆方向のSAMLメッセージ送信者と受信者の間に直接通信パスが存在する必要があることに注意してください(メッセージおよびアーティファクトの受信者は、アーティファクト発行者にリクエストを送り返すことができます)。アーティファクト発行者は、アーティファクトが保留中の間も状態を維持する必要があります。これは、負荷分散された環境に影響を与えます。

65
Scott T.

Scott Tの答えを拡張して、SAMLアーティファクトプロファイルはセキュリティを改善するために設計されました。ユーザーがトラフィックの途中でSAMLアサーション(ユーザー名、ロールなどを変更するなど)を変更できないようにするために、SAML 2.0では、開発者がXML署名を介してアサーションに署名することを提案しています。ただし、XML署名は、既存のすべてのXMLパーサーに問題があるため、XMLラッピング攻撃に対して非常に脆弱です。 https://www.usenix.org/conference/usenixsecurity12/breaking-saml-be-whoever-you-want-be にアクセスして、SAMLアサーションに対するXMLラッピング攻撃の動作を確認してください。

SAMLアーティファクトプロファイルは、SAMLアサーションではなく、ユーザーによって(リダイレクトまたはポストを介して)サービスプロバイダーに渡される1回限りの「アーティファクト」を作成することにより、この問題を解決します。サービスプロバイダーは、1回限りの使用アーティファクトを受け取ると、SAMLアーティファクト解決要求(アーティファクトを含む)をIDプロバイダーのアーティファクト解決サービス(ARS)に送信します。その後、ARSはSAMLアーティファクトレスポンス(ユーザーのSAMLアサーションを含む)で応答します。これにより、SAMLアサーションがバックチャネル経由でサービスプロバイダーに直接受信されるため、ユーザーによってSAMLアサーションが変更されることを防ぎます。

28
dsutherland

SAMLメッセージは、値または参照により、あるエンティティから別のエンティティに送信されます。 SAMLメッセージへのreferenceは、artifactと呼ばれます。アーティファクトの受信者は、アーティファクトの発行者に直接リクエストを送信することで参照を解決し、発行者はアーティファクトが参照する実際のメッセージで応答します。

SAML 2. を参照

アーティファクトがなければ、実際のメッセージに到達する方法はありません。

これは、HTTPアーティファクトバインディングを使用する場合にのみ必要であることに注意してください。 (より一般的なHTTPとは対照的に、POST SAMLメッセージを単純に送信するバインディング)。

12
nzpcmad

最近では興味がないと考えられるかもしれませんが、ユーザーエージェントとsp&idpサーバー間の帯域幅が狭く、sp&idp間の帯域幅が良い場合、アーティファクトプロファイルも役立ちます。 (重い)アサーションは、idpからuaおよびuaからspに循環せず、特定の状況でより良いパフォーマンスを示す場合があります。

1
François J.

HTTPアーティファクトバインディングを使用するもう1つの理由は、SSLを使用してSAMLメッセージの整合性と機密性を確保できることです。 SAMLリクエスターおよびレスポンダーは、SAMLメッセージに署名、検証、暗号化、および復号化する必要はありません。

1
fajarkoe