簡體   English   中英

Android 消費webservice的APP如何認證用戶

[英]Android APP that consumes a webservice how to authenticate users

我正在開發一個 android 應用程序,它使用我將開發的 Web 服務(我正在考慮使用 RESTFul Web 服務)。我想保護應用程序和服務器之間的連接,但我也需要對用戶進行身份驗證。 .

我的問題在最后一部分,為了保護連接,我認為最好的方法是使用 SSL (https),我錯了嗎?

我不知道對用戶進行身份驗證的“最佳方式”是什么,以確保用戶不能將 web 服務作為另一個用戶使用。我有一些想法,比如在返回的 web 服務上使用 authenticate(login,pass) 方法一個令牌..對於任何需要身份驗證的操作,用戶都需要將該令牌作為參數傳遞..問題是,這是一個好方法嗎? 在這種情況下,用於對用戶進行身份驗證的最常用技術是什么?

如果基於令牌的身份驗證是一個好主意,我應該如何生成令牌?

抱歉這么長的文字..

任何幫助都會很有用

謝謝

確保您了解 go 之前的流行標准,例如 OAuth。 大多數 OAuth 流程以用戶通過 web 瀏覽器登錄到您的服務器為中心。 這可能會導致移動應用程序的用戶體驗非常糟糕。 該標准確實允許替代方案。 這是一個體面的介紹

您還可以使用現有的身份提供商,例如 Google、Facebook、Twitter 等,而不是實現自己的 authN/authZ。 在 Android 上,您可以使用AccountManager請求 Google 身份驗證令牌。 這通常有效,因為用戶需要登錄到他們的 Google 帳戶才能訪問 Android 市場。 無論如何,這將提示用戶向您的應用授予授權。 然后,您可以使用 Google 身份驗證令牌通過您自己的令牌將您的用戶登錄到您的服務。 登錄本質上是您的服務器驗證 Google 令牌是否有效(通過聯系 Google 的服務器),然后發出自己的令牌以用於調用您的 web 服務。 如果你不喜歡谷歌,你可以使用Facebook SDK等。

至於令牌的用途...... OAuth 規范也有相關內容。 您可以做一些簡單的事情,比如隨機字符串,也可以做一些復雜的事情,比如加密的SAML 斷言

您應該實施基於令牌的 OAuth,這將要求用戶登錄一次,然后永久擁有訪問權限。

您可以使用已經為您提供用戶身份驗證服務的Google App Engine (您的 Android 用戶很可能已經擁有 google 帳戶)但這只是眾多選項之一。

您還可以查看亞馬遜的身份訪問管理 (IAM) ,它允許您管理有權訪問您的 web 服務的用戶,並相應地授權他們。

我認為最好的方法是使用 SSL (https),我錯了嗎?

這只能防止某些類型的惡意使用,但不能防止一切。 仍然沒有什么可以阻止人們通過電話訪問您的數據庫,並以這種方式檢索憑據。

暫無
暫無

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

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