android - 使用 Google 帐户进行安全的 Android 身份验证

标签 android security authentication openid

我的应用程序将处理敏感数据(私钥),因此必须有一种安全的方式来访问这些数据。我想将用户身份验证的负担转嫁给谷歌,让他们根据验证他们的谷歌帐户信息来确定用户是否可以访问该应用程序。我正在研究使用 WebView 和使用 OpenID 协议(protocol),但作为一个更基于 Web 的协议(protocol),我仍在考虑其他选项。另一个要求是,用户每次希望访问应用程序时都必须进行身份验证,如果应用程序暂停,则可能需要 90 秒的窗口。

带 OpenID 的 WebView 对我来说是最好的解决方案吗?或者有人可以推荐更好的方法吗?

最佳答案

我认为最好的方法是使用 AccountManager。 AccountManager 实际上拥有用户谷歌帐户的用户名和密码,但您无法访问该信息。您可以向 AccountManager 请求用户拥有的某个帐户的 token 。如果你想要一个谷歌账户的 token ,你必须申请一个“com.google”账户。当您向 AccountManager 请求 token 时,将启动一个 Activity 以询问用户是否允许该应用程序访问他的帐户。

此外,您还可以请求对某种服务有用的 token 。如果您想访问 Blogger 信息。您可以请求“博主”许可。 AccountManager 将返回给您的 token 仅适用于该服务。

token 会在一段时间后过期,因此您必须进行检查。当 token 不再有效时,您必须告诉 AccountManager 该 token 不再有效。下次您请求 token 时,AccountManager 会给您一个新 token 。

在 Google 寻找 AccountManager。

http://developer.android.com/reference/android/accounts/AccountManager.html

它适用于 Android 2.1 及更高版本。

关于android - 使用 Google 帐户进行安全的 Android 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5709252/

相关文章:

database - 非基于角色的安全性?

android - 如何制作始终位于顶部的虚拟/软按钮(主页、菜单、后退、搜索)的应用程序/服务?

java - SharedPreferences if语句只存储一个选择

iOS7如何以编程方式显示iPhone多任务屏幕黑屏?

python - 在Python中,如何检查我的类的实例是否存在?

authentication - 您如何将 aws-amplify 身份验证与 react-admin 集成?

python - 如何解决使用 Python 读取和写入 HDFS 时的代理错误?

android - EditText 的 drawableRight

安卓开发 : How to get no pop up keyboard with an EditText

javascript - Android 和 iOS Webview 中 html 和 javascript 文件的安全性