2011-09-21 107 views
2

我有幾個身份提供者需要輸入最終用戶的一些信息才能進行身份驗證。這是SAML的正確用例嗎?

當用戶點擊服務提供商網頁中的「Authenticate with ...」按鈕時,他將被SAML AuthnRequest重定向到所選身份提供商。

然後身份提供者顯示一個網頁,他要求提交一些表格,例如:Firsname,姓氏,地址,然後檢查一個人是否真的住在那個地址。

如果檢查成功,則SAML響應返回狀態成功,並且Firsname,Lastname,Address作爲屬性返回。

如果檢查失敗,則返回SAML響應,其狀態AuthnFailed具有相同的屬性。

我的問題是它是否正確使用SAML?

我應該如何正確地配置它以每次都要求驗證(不應與身份驗證提供程序建立會話)?

+1

爲什麼你想每次都要求認證? –

回答

3

你基本上是正確的,它是有效的用例。但是,如果Auth在IDP上失敗,您將收到狀態爲「失敗」的SAMLResponse消息(可能是「urn:oasis:names:tc:SAML:2.0:status:AuthnFailed」,並且不會返回用戶信息(因爲Auth失敗)

在您的SP生成的AuthnRequest中,您可以設置可選的ForceAuthn = true屬性,如果IDP支持並且設置爲「」true,則身份提供者必​​須直接驗證演示者,而不是依賴如果未提供值,默認值爲「false」,但如果ForceAuthn和IsPassive均爲「true」,則身份提供者不得新鮮認證演示者,除非可以滿足IsPassive的約束條件。 「(來自SAML 2.0核心規範中的Sect 3.4.1元素)

HTH - Ian