簡體   English   中英

如何使用基本身份驗證保護Android / ios應用程序的Web API

[英]How to secure Web API for android/ios apps with basic authentication

我正在嘗試保護一個Web API ,該Web API將由在AndroidiOS上運行的移動應用程序使用。 它現在的工作方式是使用SSL進行Basic Authentication ,它會將每個請求的usernamepassword發送到Web API 在調用action之前,我在filter驗證Web API中的憑據。 這非常有效。 問題是,在用戶登錄后,我必須將密碼存儲在設備( Android / iOS )上以保存會話,否則他們將不得不一直登錄。 這不安全,因為如果設備被黑客入侵,則可以訪問憑證。 我正在尋找一種方法來使用基本身份驗證,而無需在設備上存儲密碼。

我認為在解決這個文章可以工作,但我不清楚如何使它發揮作用。 在接受的答案中,它說

為每個應用生成一個密鑰,讓他們將每個請求中的密鑰作為令牌傳遞。 然后,您的服務器可以驗證密鑰並驗證請求。

請查看ASP.NET站點中的“ 基本身份驗證”模塊。 該示例使用'basic'作為授權方案,但您可以使用'token'來改變它。

我不清楚這里的過程。 在此示例中,即使在初始登錄期間也似乎沒有涉及任何用戶名/密碼。 用戶如何在不登錄的情況下獲取密鑰? 然后,報價中提到的“關鍵”究竟是什么。 那可能是像Guid這樣的東西? 我也不理解這比如果被黑客攻擊在設備上存儲用戶名和密碼更安全。 黑客可以使用“密鑰”,就像用戶名和密碼一樣正確嗎?

這是身份驗證的基礎知識,我將以簡單的方式解釋這個過程。 希望你能理解。

  • 用戶鍵入名稱和密碼,然后點擊登錄。
  • 設備向服務器發送名稱和密碼。
  • 服務器使用長的隨機唯一字符序列(也稱為密鑰)進行身份驗證和響應。
  • 設備和服務器都存儲密鑰。
  • 所有其他請求都使用密鑰進行身份驗證。
  • 對於每個呼叫,服務器檢查密鑰是否與其存儲的密鑰匹配。
  • 設備永遠不會存儲用戶名或密碼。
  • 如果懷疑是違規,服務器可以禁用/刪除該密鑰,在這種情況下,用戶必須再次登錄

使用加密完成所有這些操作。 一切!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM