1

我需要使用一个服务提供商和多个身份提供商(idps),每个 idp 通过使用子域连接到 sp,即http://subdomain1.mysite.com连接到 idp1,http: //subdomain2.mysite.com连接到idp2 等然后我的断言消费者服务 URL 看起来像这样https://mysite.com/SAML/AssertionConsumerService.aspx

问题是我需要知道响应来自 AssertionConsumerService.aspx 代码中的哪个 idp,以便我可以加载正确的证书。我已经尝试了发行者、响应目的地和其他方式,但没有成功。

有谁知道区分 idp 与响应和/或最佳实践的好方法吗?或者有没有标准的方法来做到这一点?

我正在使用http://www.componentspace.com/Products/SAMLv20.aspx

4

2 回答 2

2

如您所见,如果所有 IDP 的 ACS URL 相同,则断言中的目标将始终相同。

每个 IDP 至少应该(必须?)有自己唯一的颁发者,如果他们每个人都有自己的公共证书,他们正在与之签名。根据我的经验,PingFederate 和其他服务器确保它在验证响应时加载正确的配置信息。不确定为什么 Issuer 在这种情况下也不会为您工作。

您可能会遇到来自同一家公司的“不同” IDP 可能会向您发送具有相同颁发者和不同 DSIG 证书和 AttributeStatements 的响应,但在大多数情况下不应该真正发生这种情况。

伊恩

于 2010-12-15T15:45:13.040 回答
1

在我们的系统中,我们有一个代表客户端的实体(我们称其为“服务域”),并要求客户端通过名称将该实体标识为 Issuer 元素值或 Issuer SPProvidedID 属性值。我们端 (SP) 上的 SAML 配置与该“服务域”实体相关联,例如,用于验证其数字签名的公钥证书。

我想说使用 Issuer 值比尝试关闭子域更合适。

于 2010-12-16T15:07:04.390 回答