我目前正在開發一個包含Web應用程序和客戶端軟件的應用程序。客戶端通過Web服務進行通信,同時支持SOAP和Protobuffer實現。Web應用程序和WebService的身份驗證
初始登記經由web應用,這依賴於用戶名+密碼認證以後完成。
完成註冊過程後,所有的功能也可通過客戶端,這將僅通過HTTPS通信。爲了驗證web服務調用,我正在考慮三種可能的方法:
在每條消息中包含用戶名和密碼。但是,在每個請求中包含憑據是否真的是一種很好的做法,即使通過HTTPS進行保護?
不在第一Web服務請求的用戶名和密碼。客戶端然後獲取用於所有未來請求的令牌。 (注意:強制用戶將服務器生成的令牌複製到客戶端應用程序是不可接受的。)只有在用戶撤銷令牌時,他需要再次發送其用戶名和密碼以獲取新令牌。這種基於令牌的方法似乎很常見,例如Google,AWS和Rackspace正在使用它們很多。但是在這種情況下它真的會得到回報嗎?
哈希客戶端上的密碼,聽起來是個不錯的解決方案。不過,我想在服務器端加密加密的密碼。添加僅用於取鹽的請求聽起來不像是最佳解決方案,還是它?
是否有任何最佳實踐或技巧?我無法準確找到符合這些要求的太多信息。 目前我會與2),但我還沒有真正確信。
該項目是基於Java,Apache的CXF,Protobuffers和四郎,但應該不會有太大的爲一般問題的影響......
我們已經實施了2),到目前爲止它工作得很好,但感謝您的反饋! – xeraa 2011-02-24 15:43:13