使用Google帐户保护Android身份验证

mco*_*ley 2 security openid authentication android

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

使用OpenID的WebView是我的最佳解决方案还是任何人都可以推荐更好的方法?

Joa*_*n M 7

我认为最好的方法是使用AccountManager.AccountManager实际上拥有用户的Google帐户中的用户和密码,但您无法访问该信息.您可以向AccountManager询问用户拥有的某个帐户的令牌.如果您需要Google帐户的令牌,则必须要求提供"com.google"帐户.当您向AccountManager询问令牌时,将启动一项活动,询问用户是否允许该应用程序访问其帐户.

此外,您可以要求提供对某种服务有用的令牌.如果您想要访问Blogger信息.您可以要求"博主"许可.AccountManager将返回的令牌仅适用于该服务.

令牌在一段时间后过期,因此您必须检查.当令牌不再起作用时,您必须告诉AccountManager该令牌不再有效.下次您要求提供令牌时,AccountManager会为您提供一个新令牌.

在Google上查找AccountManager.

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

它适用于Android 2.1和高级版本.