「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
汎用認証サイトにSAML2.0を実装するため仕様を読む。
SAML要求 / 応答メッセージ交換の
は、SAML Bindingsと呼ばれる。
追加仕様策定のガイドラインなど(割愛)
SAML規格の一部として指定されているBindingを定義
SAML規格として定義された全てのBindingの規範的特性
展開の前に、脆弱性について分析すべき。
SAML Protocol メッセージをURLパラメタで送信できるメカニズムを定義
# | 項目 | 説明 |
1 | Identification | urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect |
2 | Contact information | security-services-comment@lists.oasis-open.org |
3 | Updates | None. |
UAを仲介者として使用して通信する必要がある場合を対象とする。
RelayState?が含まれてもよい。
XMLをURLにエンコードする方法をSAMLEncodingに指定する。
DEFLATE圧縮方式を介してURLにエンコード(署名されたコンテンツを含むSAMLは対象外)
SAMLRequest=value&RelayState=value&SigAlg=value SAMLResponse=value&RelayState=value&SigAlg=value
× byte[] samlRequestBytes = Encoding.Unicode.GetBytes(samlRequestXmlDoc.InnerXml); 〇 byte[] samlRequestBytes = Encoding.UTF8.GetBytes(samlRequestXmlDoc.InnerXml);
と言う点のみ。
HTTPレスポンダ(SAMLレスポンダ)は、以下のヘッダーフィールドを含める。
Cache-Control: no-cache, no-store Pragma: no-cache
SAMLレスポンダが、要求とメッセージ交換を行うことを拒否する場合、
urn:oasis:names:tc:SAML:2.0:status:RequestDenied
特定のプロトコルまたはプロファイルに対する
単一 or 個別(要求 / 応答)のURLエンドポイントを示す。
割愛(Single Logout Protocolの例なので)
HTML Form ControlのBase64エンコードコンテンツ内で送信するメカニズム。
(「OAuth 2.0 Form Post Response Mode」みたいな仕様)
# | 項目 | 説明 |
1 | Identification | urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST |
2 | Contact information | security-services-comment@lists.oasis-open.org |
3 | Updates | SAML V1.1 の Browser/POST profileを効果的に置き換える。 |
HTTP Redirect BindingのHTTP RedirectをForm Postに置き換えたもの。
HTTP Redirect BindingのHTTP RedirectをForm Postに置き換えたもの。
基本的にHTTP Redirect Bindingと同じだが、以下が異なる。
同様に割愛(Single Logout Protocolの例なので)
# | 項目 | 説明 |
1 | Identification | urn:oasis:names:tc:SAML:2.0:bindings::HTTP-Artifact |
2 | Contact information | security-services-comment@lists.oasis-open.org |
3 | Updates | SAML V1.1 の Browser/Artifact profile を効果的に置き換える。 |
HTTP Redirect Binding、HTTP POST Bindingと組み合わせて使用するため、
UAを仲介者として使用して通信する必要があるが、メッセージ本体は、SAMLレスポンダがリクエスタにArtifactを使用して直接要求する。
Artifactは以下のBindingを使用して送信されるため、これらに倣ってエンコーディングされる。
RelayState?は以下のBindingを使用して送信されるため、これらに倣って送信される。
HTTP Redirect Bindingの場合と同様、
URLエンコードし、SAMLartというクエリ文字列パラメタに配置
HTTP POST Bindingの場合と同様、
SAMLartというパラメタに配置すダケで良い。
# | 項目 | 説明 |
1 | Identification | urn:oasis:names:tc:SAML:2.0:artifact-04 |
2 | Contact information | security-services-comment@lists.oasis-open.org |
3 | Updates | None. |
HTTP Redirect Binding・HTTP POST Bindingと同じ。
urn:oasis:names:tc:SAML:2.0:status:Success
同様に割愛(Single Logout Protocolの例なので)
https://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf
1 Introduction 1.1 Protocol Binding Concepts 1.2 Notation 2 Guidelines for Specifying Additional Protocol Bindings 3 Protocol Bindings 3.1 General Considerations 3.1.1 Use of RelayState 3.1.2 Security 3.1.2.1 Use of SSL 3.0 or TLS 1 3.1.2.2 Data Origin Authentication 3.1.2.3 Message Integrity 3.1.2.4 Message Confidentiality 3.1.2.5 Security Considerations 3.2 SAML SOAP Binding 3.2.1 Required Information 3.2.2 Protocol-Independent Aspects of the SAML SOAP Binding 3.2.2.1 Basic Operation 3.2.2.2 SOAP Headers 3.2.3 Use of SOAP over HTTP 3.2.3.1 HTTP Headers 3.2.3.2 Caching 3.2.3.3 Error Reporting 3.2.3.4 Metadata Considerations 3.2.3.5 Example SAML Message Exchange Using SOAP over HTTP 3.3 Reverse SOAP (PAOS) Binding 3.3.1 Required Information 3.3.2 Overview 3.3.3 Message Exchange 3.3.3.1 HTTP Request, SAML Request in SOAP Response 3.3.3.2 SAML Response in SOAP Request, HTTP Response 3.3.4 Caching 3.3.5 Security Considerations 3.3.5.1 Error Reporting 3.3.5.2 Metadata Considerations 3.4 HTTP Redirect Binding 3.4.1 Required Information 3.4.2 Overview 3.4.3 RelayState 3.4.4 Message Encoding 3.4.4.1 DEFLATE Encoding 3.4.5 Message Exchange 3.4.5.1 HTTP and Caching Considerations 3.4.5.2 Security Considerations 3.4.6 Error Reporting 3.4.7 Metadata Considerations 3.4.8 Example SAML Message Exchange Using HTTP Redirect 3.5 HTTP POST Binding 3.5.1 Required Information 3.5.2 Overview 3.5.3 RelayState 3.5.4 Message Encoding 3.5.5 Message Exchange 3.5.5.1 HTTP and Caching Considerations 3.5.5.2 Security Considerations 3.5.6 Error Reporting 3.5.7 Metadata Considerations 3.5.8 Example SAML Message Exchange Using HTTP POST 3.6 HTTP Artifact Binding 3.6.1 Required Information 3.6.2 Overview 3.6.3 Message Encoding 3.6.3.1 RelayState 3.6.3.2 URL Encoding 3.6.3.3 Form Encoding 3.6.4 Artifact Format 3.6.4.1 Required Information 3.6.4.2 Format Details 3.6.5 Message Exchange 3.6.5.1 HTTP and Caching Considerations 3.6.5.2 Security Considerations 3.6.6 Error Reporting 3.6.7 Metadata Considerations 3.6.8 Example SAML Message Exchange Using HTTP Artifact 3.7 SAML URI Binding 3.7.1 Required Information 3.7.2 Protocol-Independent Aspects of the SAML URI Binding 3.7.2.1 Basic Operation 3.7.3 Security Considerations 3.7.4 MIME Encapsulation 3.7.5 Use of HTTP URIs 3.7.5.1 URI Syntax 3.7.5.2 HTTP and Caching Considerations 3.7.5.3 Security Considerations 3.7.5.4 Error Reporting 3.7.5.5 Metadata Considerations 3.7.5.6 Example SAML Message Exchange Using an HTTP URI 4 References Appendix A. Registration of MIME media type application/samlassertion+xml Appendix B. Acknowledgments Appendix C. Notices
Tags: :IT国際標準, :認証基盤, :クレームベース認証, :SAML