2016-05-13 107 views
1

我正在學習實現Saml,到目前爲止,我已經從此鏈接下載了saml的彈簧安全示例https://github.com/spring-projects/spring-security-saml/tree/master/sample,查看了參考指南和各種其他SAML鏈接。saml身份驗證請求在Spring Security Saml中產生的位置示例

我需要問的一件事是,由於服務提供者必須發送Saml AuthRequest,我們在程序中如何定義它。

我試圖實現該示例,並創建了虛擬項目以與OpenAM協同工作,該協議對SSO工作正常,但我並不明白從何處獲取Saml Auth請求。

I got to know that the SP's system itself is going to generate authentication request and send it to IDP using SAML 2.0 protocol. I need help about the parameters i need to pass so that i can customize my own saml authentication request

任何幫助非常感謝!提前致謝。 (我知道它的一個愚蠢的問題要問,但是不能幫助它,因爲我沒有得到任何的想法。)

回答

2

認證請求,根據選擇的身份驗證提供和你過濾器的配置來進行鏈。這些方面的一些細節在使用像Spring這樣的高級框架時是透明的。 Spring SAML基於OpenSAML庫,提供一組工具以便輕鬆處理Spring應用程序的整個AuthN進程。實際上,爲了正確地完成這個過程,您需要設置您的應用程序端點(entityID),驗證各方身份的證書,保護您的應用程序路徑,配置綁定協議,在IdP和IDP之間建立信任關係您的應用程序交換了一些元數據。

例如,考慮代碼存根如下,從vdenotaris/spring-boot-security-saml-sample採取:

@Bean 
public MetadataGenerator metadataGenerator() { 
    MetadataGenerator metadataGenerator = new MetadataGenerator(); 
    metadataGenerator.setEntityId("com:vdenotaris:spring:sp"); 
    metadataGenerator.setExtendedMetadata(extendedMetadata()); 
    metadataGenerator.setIncludeDiscoveryExtension(false); 
    metadataGenerator.setKeyManager(keyManager()); 
    return metadataGenerator; 
} 

您可以檢查我的自定義參數的元數據生成,定製我的應用程序設置爲基於SAML的SSO。

通常通過將用戶重定向到提供憑證的第三方資源(即網站)上執行AuthN請求。驗證之後,IdP向請求者應用程序(服務提供者)發送SAML信封,其中包含用戶信息。

+0

非常感謝,它已經清除了我的想法,但我讀了一些地方需要將我們的authrequest綁定到HTTP或SOAP請求中,我們可以使用opensaml庫來做到嗎?,另一個我的問題是如果我需要將xacml添加到auth請求中,那麼我需要在metadatagenerator類本身中進行自定義 – joga

+0

好的,我已經更新了我的理解。現在我進入了Saml 2.0的XACML 2.0配置文件,我瞭解到我必須將屬性綁定到saml入口點來實現XACML,對嗎?我想使用forgerock openam,並且使用SAML來實現它,請問我該怎麼讀,才能進入第一步。 – joga