当前位置 : 主页 > 大数据 > 区块链 >

SAML请求 – 声明多协议绑定

来源:互联网 收集:自由互联 发布时间:2021-06-22
我已经实现了一个SAML服务提供程序来支持ASP.Net Web门户的单点登录,这是一个在客户端站点上配置的收缩包装软件,必须能够与任何符合SAML的身份提供商进行交互. 我的断言消费者服务(
我已经实现了一个SAML服务提供程序来支持ASP.Net Web门户的单点登录,这是一个在客户端站点上配置的收缩包装软件,必须能够与任何符合SAML的身份提供商进行交互.

我的断言消费者服务(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.

网友评论