2016-11-22 63 views
0

我想集成(SSO)多個服務提供商使用春季安全和wso2身份服務器5.1.0我已經集成春季安全SAML樣本與Wso2 IS根據blog只有一個服務提供商它的運行非常好,但我無法爲多個服務提供商提供SSO。我已經檢查了一切,但沒有運氣。春季安全SAML與wso2 IS

請在下面找到我認爲應該是,但我不知道如何實現這一點。

WSO2 IS:創建一個具有唯一SAML頒發者標識(例如spring-security)的服務提供者,該標識將從不同的服務提供者用於SSO。

SP1:服務提供商應該發送具有問題id(spring-security)和斷言消費者URL(例如localhost:8080/...)的Authn請求。

SP2:服務提供商應該發送具有問題id(spring-security)和斷言消費者url(例如localhost:8181/...)的Authn請求。

發行人在Authn請求: http://localhost:8080/spring-security-saml2-sample/saml/metadata

即使我不知道是怎麼產生這個發行。

請幫忙。

+0

發行人應該通過SP元數據文件中'EntityId'的值生成。 –

+0

Thanks Bernhard, –

+0

感謝您回覆Bernhard, 在我經歷了「spring-security-saml2-core」的代碼後,發現它由默認元數據設置爲「MetadataGeneratorFilter」 springSecurity上下文文件。 對於WSO2工作只需更新下面配置 <豆ID = 「metadataGeneratorFilter」 類= 「org.springframework.security.saml.metadata.MetadataGeneratorFilter」> <構造精氨酸> --- –

回答

0

您必須爲每個服務提供商使用不同且唯一的實體ID。在Identity Server中,您需要相應地創建多個服務提供者(2個),以便使SSO(和SLO)正常工作。

因此,假設您將兩個SP的實體id更改爲spring-security-1和spring-security-2。您需要在IS中創建2個服務提供者,如下所示。

SP1 - >發行人:彈簧安全-1,ACS URL:本地主機:8080/...

SP2 - >發行人:彈簧安全-2,ACS URL:本地主機:8081/...