代码之家  ›  专栏  ›  技术社区  ›  user2628641

SAML:如何构造AssertionConsumerService地址

  •  1
  • user2628641  · 技术社区  · 7 年前

    我正在使用Spring SAML库。

    我得到了这样的东西:

    <md:AssertionConsumerService Binding="bindings:HTTP-POST" Location="http://12.34.56.78:8000/saml/SSO"/>
    

    但有时使用同一服务器的DNS地址,而不是12.34.56.78。

    1 回复  |  直到 7 年前
        1
  •  1
  •   chenrui ravi ranjan    7 年前

    真的吗 AssertionConsumerService URI ,如下所示:

    方案:[///[用户[:密码]@]主机[:端口]][/路径][?查询][#片段]

    DNS只是IP的别名,因此只要端点可以用于SAML通信,IP或DNS都应该工作。

    https 应使用而不是 http 用于生产。

    XSD reference

    <element name="AssertionConsumerService" type="md:IndexedEndpointType"/>
    
    <complexType name="IndexedEndpointType">
        <complexContent>
            <extension base="md:EndpointType">
                <attribute name="index" type="unsignedShort" use="required"/>
                <attribute name="isDefault" type="boolean" use="optional"/>
            </extension>
        </complexContent>
    </complexType>
    
    <complexType name="EndpointType">
        <sequence>
            <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="Binding" type="anyURI" use="required"/>
        <attribute name="Location" type="anyURI" use="required"/>
        <attribute name="ResponseLocation" type="anyURI" use="optional"/>
        <anyAttribute namespace="##other" processContents="lax"/>
    </complexType>