2

是否可以在WCF中實現雙因素(或多因素)自定義身份驗證? 例如,我想驗證使用兩種不同的憑證類型的客戶端:WCF中的自定義雙因素身份驗證

1)用戶輸入用戶名和密碼

2)WCF服務驗證登錄+密碼

3)如果在前一步驟是成功的,服務器返回的祕密查詢(或OTP密碼號)

4)用戶輸入回答所接收的查詢並將其發送到服務器

5)如果回答是正確的 - 用戶認證是d在服務器上。他可以執行服務器方法。

經過身份驗證的用戶擁有安全令牌。在下一個服務器調用客戶端僅發送服務器安全令牌而沒有顯式憑證

我發現MSDN上關於它僅一個參考 - http://msdn.microsoft.com/en-us/library/ms788756.aspx

在.NET Framework 3.5的,客戶端的消息可以包含 給定類型的多個令牌,以及不同類型的令牌。

該功能支持多種場景,包括:

增量聲明發送。對服務的所有操作可能需要存在一組 聲明,但某些操作可能需要 附加聲明。客戶端可以獲得一個具有索賠的初始集合 的令牌並且使用另一個已發佈的令牌以及被調用的操作所需的其餘索賠 ,而不是爲每個操作使用單獨發放的令牌。

多因素身份驗證。當客戶必須在被允許執行操作之前從多個發行者或具有不同套索賠 的已發放令牌收集已發行令牌 。 WCF將發佈的 令牌視爲令牌類型,因此此場景要求 在消息中有兩個支持發放令牌的功能。

但沒有實際操作實例如何實現它:( 我只能使用自定義的用戶憑據進行身份驗證。

回答

0

是的,你可以做到這一點。兩種常用方法我能想到的是,

  1. Active Directory驗證 - 你知道它是如何工作

  2. 證書認證 - 主機將有一個證書存儲證書蘇。客戶提供的信息必須存在於商店中。如果是,那麼通過,否則失敗。

後者可用於業務合作伙伴通信或跨機器調用,它更好地執行另一層安全性。可能是WebServiceBinding(WS結合)或NetTcpBinding的

的結合

地塊很多教程都可以創建證書和它的工作。如果你被卡住了,請發帖。

+0

謝謝!我知道AD和證書認證 - 這很容易。但我想使用自定義身份驗證使用兩個(或更多)不同的自定義憑據。例如使用智能卡或生物識別掃描儀。 因此有必要在同一時間進行身份驗證通過不同方式的用戶。 –

+0

請檢查這些是否有用。 http://msdn.microsoft.com/en-us/magazine/cc163434.aspx,http://msdn.microsoft.com/en-us/library/bb905527.aspx – CodeMad