我已经在系统中集成了SAML 2.0,并且对SAML配置文件有一些疑问。
我的服务提供商文件中有
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
。
在客户的IDP文件中,我们没有任何NameIDFormat定义。 如果客户端未定义默认的NameIDFormat,该怎么办?
在我的春季saml配置文件中
<bean id="samlEntryPoint" class="org.springframework.security.saml.SAMLEntryPoint">
<property name="contextProvider" ref="${saml.security.context.provider}" />
<property name="defaultProfileOptions">
<bean class="org.springframework.security.saml.websso.WebSSOProfileOptions">
<property name="includeScoping" value="false" />
<property name="nameID" value="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" />
<property name="allowCreate" value="true" />
</bean>
</property>
</bean>
但是客户告诉我们,他不支持“永久性”保单。
如果我修改defaultProfileOptions
并删除nameID
属性,则客户端的默认值为
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
(我记得在SP文件中,NameIDFormat为urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
,在IDP文件中,我们没有NameIDFormat定义)?
答案 0 :(得分:1)
从SAML规范的角度来看NameID格式
如果未指定NameID格式,则应使用urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
。但是,您不需要发送任何人,则可以选择SAML IdP,然后选择SP支持的一种NameID格式(在SAML SP元数据中提供)。
从SAML规范的角度来看NameID格式
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
旨在用于“帐户链接”的用例(2个不同身份孤岛中2个身份的链接,一个在IdP侧,一个在SP侧)
由于您的用例仅是SSO,因此预期的NameID格式将
urn:oasis:names:tc:SAML:2.0:nameid-format:transient