我的断言消费者服务(ACS)页面将通过GET和POST方法接受SAML响应.
据我了解SAML协议,SAML Request ProtocolBinding属性指定响应支持哪些协议.目前,我的请求指定HTTP-Redirect绑定.但是,我想声明我支持HTTP重定向(GET)和HTTP-POST(POST).在搜索了比我想重申的更多SAML文档之后,我无法找到声明多个支持的协议绑定的语法(或者它是否有效甚至这样做).
虽然我可以将此声明配置为可配置,但我的首选是声明两个绑定,以便身份提供程序可以在没有我的门户的其他配置的情况下工作.
以下是我的身份验证请求示例.如果有人知道为ProtocolBinding声明HTTP重定向和HTTP-POST的方法,我将非常感谢您的输入!
<?xml version="1.0" encoding="utf-8"?> <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="[AUTHN_ID]" Version="2.0" IssueInstant="[ISSUE_INSTANT]" ProtocolBinding="urn:oasis:names.tc:SAML:2.0:bindings:HTTP-Redirect" ProviderName="[PROVIDER_NAME]" AssertionConsumerServiceURL="[ACS_URL]"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> PortalEntityID </saml:Issuer> <samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" /> </samlp:AuthnRequest>
提前感谢任何可以提供帮助的人!
AuthnRequest上的ProtocolBinding属性用于指定IdP在发送其SAML响应XML时要使用的预期绑定. HTTP-Redirect不是此处使用的有效选项,因为URL查询字符串可能存在长度限制; SAML响应,特别是如果它已签名,可能会非常冗长.我将引用SAML规范[SAMLProf]:…the identity provider issues a <Response> message to be delivered by the user agent to the service provider. Either the HTTP POST or HTTP Artifact binding can be used to transfer the message to the service provider through the user agent. The message may indicate an error or will include (at least) an authentication assertion. The HTTP Redirect binding MUST NOT be used, as the response will typically exceed the URL length permitted by most user agents.