所以这里是场景。
我有我的网络应用程序 <==> IDP 代理 <==> IDP。IDP 代理和 IDP 都是 openam 实例。我们的想法是我们可以添加额外的 IDP(来自其他客户端),因此我们需要一个代理来屏蔽复杂性。
所以这里的 IDP 代理是:http://idpproxydev.devs1.int:8080/ openam
IDP 网址为: http://idpdev.devs1.int:80/ openam
我的网络应用程序是:http ://ocr-jq0zt91.devs1.int:9081/LOS
我开始使用 http://static.springsource.org/spring-security/site/extensions/saml/index.html 进行集成,现在我看到 SAML: request wassent from my web app 。
我现在遇到的问题是,当我使用 Fedlet(在 IDP 代理上使用 Openam 生成的客户端)测试我的设置时,请求转到代理,然后路由到 IDP,因为 Fedlet 生成的 SAML 请求具有附加信息,是 SAML 请求中的这个片段吗
<samlp:Scoping xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ProxyCount="1" >
<samlp:IDPList xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:IDPEntry xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ProviderID="http://idpdev.devs1.int:80/openam" />
</samlp:IDPList>
</samlp:Scoping>
所以我看到的唯一区别是 FEDLET 生成的 SAML 请求中的额外负载。
因此,通过在 SAML 请求中看到上述代码段,IDP 代理知道最终目的地不是它自己(http://idpproxydev.devs1.int:8080/openam),而是另一个实体,在这种情况下是http://idpdev。 devs1.int:80/openam
Fedlet 具有扩展元数据的附加属性文件 (sp-extended.xml),我们可以在其中添加这些附加内容。
<Attribute name="enableIDPProxy">
<Value>true</Value>
</Attribute>
<Attribute name="idpProxyList">
<Value> http://idpdev.devs1.int:80/openam</Value> (the attribute name is little confusing as this is the IDP)
</Attribute>
<Attribute name="idpProxyCount">
<Value>1</Value>
</Attribute>
但是在 spring saml 安全库中,我看不到任何可以添加这些附加属性的方式,以便 SAML 请求可以包含此信息。有没有办法可以提供上面列出的其他属性?
这样当我的网络应用程序发送请求时,spring saml 扩展程序可以读取?