我正在使用WSO2 Identity Server 5.3如何使用WSO2 Identity Server 5.3生成多值屬性SAML2聲明?
我必須通過用戶配置文件生成一些帶有一些多值屬性的SAML2聲明。
比方說,我有一個逗號分隔值列表特定要求,我必須用我的SAML斷言響應以下結構組織的屬性:
<saml2:Attribute Name="attribute1">
<saml2:AttributeValue>value1</saml2:AttributeValue>
<saml2:AttributeValue>value2</saml2:AttributeValue>
<saml2:AttributeValue>value3</saml2:AttributeValue>
<saml2:AttributeValue>value4</saml2:AttributeValue>
</saml2:Attribute>
我配置的STS客戶端獲取SAML2斷言以及我用多值聲明設置的特定用戶的聲明。
我的問題是我得到的SAML斷言響應爲以下結構:
<saml2:Attribute Name="attribute1">
<saml2:AttributeValue>value1,value2,value3,value4</saml2:AttributeValue>
</saml2:Attribute>
我安裝上一個tomcat Travelocity的應用程序的實例,測試一次我得到了SAML斷言登錄後如預期應用程序並選擇SAML流程。我可以通過查看Identity Server的日誌文件來驗證它。
我也使用STS客戶端[1]以獲取SAML斷言,但是我得到的多值屬性是該特定屬性的逗號分隔值。
我直接用管理服務https://localhost:9443/services/wso2carbon-sts?wsdl作爲我的客戶端使用SOAP UI,但SAML響應與我之前說過的完全相同,多值屬性作爲該特定屬性的逗號分隔值。
下面是我在屬性聲明部分獲得的樣本:
<saml2:AttributeStatement>
<saml2:Attribute Name="http://wso2.org/claims/im" NameFormat="http://wso2.org/claims/im">
<saml2:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">jairo_fernandezr,jb_fernandez
</saml2:AttributeValue>
</saml2:Attribute>
<saml2:Attribute Name="http://wso2.org/claims/emailaddress" NameFormat="http://wso2.org/claims/emailaddress">
<saml2:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">[email protected]
</saml2:AttributeValue>
</saml2:Attribute>
<saml2:Attribute Name="http://wso2.org/claims/givenname" NameFormat="http://wso2.org/claims/givenname">
<saml2:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Jairo
</saml2:AttributeValue>
</saml2:Attribute>
</saml2:AttributeStatement>
現在,我想問問你,如果有另一種方式來獲得與結構爲單值多值屬性的SAML斷言而不是使用管理服務https://localhost:9443/services/wso2carbon-sts?wsdl或另一種方法設置逗號分隔值,而無需設置travelocity應用程序。
[1] https://github.com/wso2/product-is/tree/5.x.x/modules/samples/sts
任何評論,將不勝感激。
感謝
事實上,使用分隔值是wso2is處理多值屬性的默認方式。我相信你可以實現自己創建saml響應的類(覆蓋從聲明中創建屬性的方法),並將其配置到api-manager.xml中(我完全不記得界面,我可以檢查一次辦公室週一)。接下來你需要覆蓋的是你自己的聲明處理程序(這是類創建索賠的鍵/值圖),但我會檢查簽名如何與你自己的實現工作。 – gusto2
什麼是你的用戶存儲?它是默認的LDAP嗎? – farasath
我有一個外部LDAP作爲主用戶存儲,同時我也有一個AD作爲輔助用戶存儲。 –