2010-12-15 147 views
2

我需要使用一個服務提供商與多個身份提供商(idps)每個idp通過使用子域連接到sp,即http://subdomain1.mysite.com連接到idp1,http://subdomain2.mysite.com連接到idp2等那麼我的斷言消費者服務URL看起來像這樣https://mysite.com/SAML/AssertionConsumerService.aspxSAMLv2 SP發起:一個服務提供商和多個身份提供商

問題是我需要知道什麼idp響應來自AssertionConsumerService.aspx代碼,所以我可以加載正確的證書。我試過發行人,迴應目的地和其他方式,但沒有運氣。

有誰知道區分idps與響應和/或最佳實踐的好方法嗎?還是有一個標準的方法來做到這一點?

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

回答

1

在我們的系統,我們有一個表示客戶端的實體(我們稱之爲「服務域」),並要求該客戶端通過名稱來識別該實體既可以作爲發行人元素值或發行人SPProvidedID屬性值。我們的端(SP)上的SAML配置與該「服務域」實體相關聯,例如包括用於驗證其數字簽名的公鑰證書。

我會說使用發行人值比嘗試關閉子域名更合適。

2

正如你已經注意到了,如果你有相同的ACS URL爲所有國內流離失所者,則目標將永遠是聲明中的相同。

每個IDP應該(必須)擁有自己獨特的頒發者,至少如果他們也擁有自己的公共證書,他們正在簽署。根據我的經驗,PingFederate和其他服務器確保在驗證響應時加載正確的配置信息。不知道爲什麼Issuer在這種情況下也不會爲你工作。

您可能會遇到來自同一家公司的「不同」IDP可能向您發送的情況使用同一頒發者和不同DSIG證書和AttributeStatements的回覆,但在大多數情況下不應發生這種情況。

HTH 伊恩

+0

嗨,感謝您的回覆。我可以使用idp issuer,即https://subdomain.idp1.com中的idp1位,並根據該證書獲取證書,但它看起來像是一個修復?你會推薦發行人的方式嗎?我讀過你可以使用idp的元數據文件,但我不認爲它連接到響應(斷言)。使用相同ACS URL的主要原因是您不必爲每個sp子域名和重複的代碼購買SSL。 – ctb 2010-12-15 16:07:29

+1

我同意下面的JST。 「發行者」元素必須出現在消息中(按照規範),並且是簽名消息(響應或聲明)IIRC的一部分。你應該依靠這一點。 – Ian 2010-12-17 15:55:51