2012-03-21 101 views
3

首先讓我告訴你我的情況是
我有3服務提供商1名身份提供商。(即我是服務提供者以及身份提供者)。我想使用SAML實施SSO。
我通過以下方式編寫SAML請求
SAML請求和響應在JAVA

<samlp:AuthnRequest 
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
ID="identifier_1" 
Version="2.0" 
IssueInstant="2004-12-05T09:21:59Z" 
AssertionConsumerServiceIndex="0"> 
<saml:Issuer>https://sp.example.com/SAML2</saml:Issuer> 
<samlp:NameIDPolicy 
    AllowCreate="true" 
    Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/> 


我能夠正確地發送請求。我不明白應該如何迴應。響應代碼中有許多屬性,如摘要,證書等。他們是什麼?

是否有任何規則,我應該只遵循SAML協議。我可以創建自己的協議嗎?既然我是服務以及身份提供者?

回答

1

下面是摘自SAML V2.0 Technical Overview。這份文件真的值得一看。在它之後,您必須定義您的業務用例,爲此用例選擇一個配置文件,並實施符合此配置文件的協議。如果配置文件不存在 - 您可以定義自己的協議。請求和響應屬性將取決於配置文件。

SAML由構建塊組件組成,它們放在一起時允許支持多個用例。這些組件主要允許在建立信任關係的自治組織之間傳輸身份,認證,屬性和授權信息。

核心SAML規範定義了用於傳輸此信息的斷言和協議消息的結構和內容。

SAML斷言帶有關於主張的聲明,聲稱方聲稱是真實的。斷言的有效結構和內容由SAML斷言XML模式定義。斷言通常基於來自依賴方的某種請求而由斷言方創建,儘管在某些情況下,斷言可以以不請自來的方式傳遞給依賴方。 SAML協議消息用於生成SAML定義的請求並返回適當的響應。這些消息的結構和內容由SAML定義的協議XML模式定義。

SAML綁定定義了使用低層通信或消息傳遞協議(例如HTTP或SOAP)在參與者之間傳輸SAML協議消息的方式。

接下來,定義SAML配置文件以滿足特定的業務用例,例如Web瀏覽器SSO配置文件。配置文件通常定義對SAML斷言,協議和綁定內容的約束,以便以可互操作的方式解決業務用例。還有一些屬性配置文件沒有引用任何協議消息和綁定,這些屬性配置文件定義瞭如何使用斷言以與許多常用使用環境(例如X.500/ LDAP目錄,DCE)對齊的方式交換屬性信息。