我需要使用一个具有多个身份提供者(idps)的服务提供者,每个idp通过使用子域连接到sp,即http://subdomain1.mysite.com连接到idp1,http://subdomain2.mysite.com连接到idp2等然后我的断言消费者服务URL看起来像https://mysite.com/SAML/AssertionConsumerService.aspx。
问题是我需要知道响应来自AssertionConsumerService.aspx代码的idp,以便我可以加载正确的证书。我试过发行人,回应目的地和其他没有运气的手段。
有没有人知道区分idps与响应和/或最佳做法的好方法?或者有一种标准的方法吗?
答案 0 :(得分:2)
正如您所注意到的,如果所有IDP都有相同的ACS URL,那么Assertion中的Destination将始终相同。
每个IDP应该(必须?)至少拥有自己独特的发行人,如果他们每个人都拥有他们自己签署的公共证书。根据我的经验,PingFederate和其他服务器确保在验证响应时加载正确的配置信息。不知道为什么Issuer在这种情况下也不适合你。
您可以进入同一公司的“不同”IDP向您发送响应的情况下,使用相同的颁发者和不同的DSIG证书和属性声明,但在大多数情况下不应该发生这种情况。
HTH 伊恩
答案 1 :(得分:1)
在我们的系统中,我们有一个代表客户端的实体(我们称之为“服务域”),并要求客户端通过名称将该实体标识为Issuer元素值或Issuer SPProvidedID属性值。我们端的SPL配置(SP)与该“服务域”实体相关联,包括例如用于验证其数字签名的公钥证书。
我会说使用Issuer值比尝试关闭子域更合适。