我對 WCF RESTful 身份驗證的實現方式

RESTful   具體含義請去搜索 ,意味着我們的服務是無狀態的,每次調用完全無關的

那麼我們怎麼保證身份驗證呢?

一般這類服務都是提供給別人調用(一般是 第三方系統 ),或者叫做應用程序編程接口 (api) 隨便叫吧,就這麼個意思

假如我有一個服務地址爲  www.a.com/aservice/   

提供給別人的登錄名 爲   system1     密碼 爲   abedeffffff    

1---提供簽到服務(相當於登錄,這裏的傳輸安全問題未考慮)(因爲這裏使用 用戶名和密碼 + ip驗證,可以暫時不考慮傳輸安全,暫時這樣吧,沒考慮到好的方式)

  比如    www.a.com/signinService      如果簽到成功   返回加密字符串(推薦 使用 用戶名  對  訪問者ip 進行 對稱加密),成功之後可以將用戶名和 時間戳放到cache中

       簽到服務   主要做以下內容

         1) 根據用戶傳遞的用戶名和密碼,驗證 是否正確,(同時服務中判斷 是否允許此用戶在此ip訪問)

          2)如果正確,則返回  使用用戶名    對   允許的ip(多個以‘,’ 分割) + 時間戳 進行對稱加密的結果  成功之後可以將用戶名和 時間戳放到cache中

 3) 之後所有服務則使用此 加密結果進行 

2---當用戶簽到之後開始調用相關服務 使用 用戶名 和 簽到的加密字符串

         在服務中獲取用戶傳遞過來的加密字符串,使用 用戶名  對其進行解密,得到 的ip 和  此次訪問服務的ip 進行對比(這裏不每次都查詢數據,因爲效率效率問題暫時想到這種對比方式),如果包含 此次訪問的ip即通過,否則不合法,如果限制訪問頻率, 可以對 解密出來得到的 時間戳 和緩存時間戳 進行對比,限制時間差距後更新cache 的時間戳

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章