我們正在開發一個android庫,它將與我們的後端進行通信。這個庫將分發給我們的客戶,允許他們的應用程序發送數據到我們的服務器。爲Android庫設置憑據的最佳方式
每個庫都應該以安全的方式與客戶端憑證(令牌等)進行通信。
哪裏可以存放該令牌的最佳位置?也許在清單?純文本文件在一個文件夾中?
我希望儘可能透明。客戶應該下載我的圖書館,下載憑證文件,並且都應該順利開始運行。
任何提示?
謝謝你這麼多
我們正在開發一個android庫,它將與我們的後端進行通信。這個庫將分發給我們的客戶,允許他們的應用程序發送數據到我們的服務器。爲Android庫設置憑據的最佳方式
每個庫都應該以安全的方式與客戶端憑證(令牌等)進行通信。
哪裏可以存放該令牌的最佳位置?也許在清單?純文本文件在一個文件夾中?
我希望儘可能透明。客戶應該下載我的圖書館,下載憑證文件,並且都應該順利開始運行。
任何提示?
謝謝你這麼多
處理憑證
一般情況下,我們建議您儘量降低請求用戶 憑據,以使網絡釣魚攻擊更顯眼的頻率,並且不太可能 成功。而是使用授權令牌並刷新它。
如有可能,用戶名和密碼不應存儲在 設備上。而應使用用戶提供的用戶名和密碼執行初始身份驗證,然後使用短暫的 特定於服務的授權令牌。
多個應用程序可以訪問的服務應該是使用AccountManager訪問的 。如果可能,請使用AccountManager 類來調用基於雲的服務,並且不要在設備上存儲密碼 。
使用AccountManager檢索帳戶之後,CREATOR在 之前傳入任何憑據,以便您不會無意中將 憑據傳遞給錯誤的應用程序。
如果憑證僅由您創建的應用程序使用,您可以使用checkSignature()驗證訪問AccountManager 的應用程序。或者,如果只有一個應用程序 使用憑證,則可以使用KeyStore進行存儲。
因此使用AccountManager似乎是存儲憑據的最佳選擇。
您也可以使用SharedPreference,但它有風險,可能導致在根源電話上訪問應用程序的首選項文件。
經過對這個問題的一些研究,似乎是最好的方式來做到這一點。對於我們的客戶,我們將提供一個java類來存儲帳戶信息,我們的圖書館將使用它來通過客戶經理與後端進行交流。謝謝 :) – Isaac
可能重複的[Android:存儲用戶名和密碼?](http://stackoverflow.com/questions/1925486/android-storing-username-and-password) – Kassisdion