在客户端 - 服务器设置中实现安全SSO

时间:2012-10-15 08:26:46

标签: android security client-server single-sign-on

我正在创建一个Android应用,并希望使用SSO让用户可以轻松使用他们的Google或Facebook帐户登录该应用。该应用程序将其数据存储在服务器中,以便用户可以从不同的设备访问它。在服务器上,我打算使用用户的电子邮件来识别用户。

在客户端上,我知道电子邮件属于用户,但是服务器如何确定它是真实用户而不是将另一个用户的邮件地址发送到服务器的攻击者呢?

我是否必须获取访问令牌并将其与电子邮件一起发送到服务器,并让服务器使用此令牌验证电子邮件,还是我还能做其他事情?

由于我只对用于登录的电子邮件感兴趣,因此只需获取一次邮件地址并在客户端上记住它,直到用户退出我的应用程序。但是,如果我还需要保留访问令牌,我需要定期检查它是否已过期,并在需要时续订。

1 个答案:

答案 0 :(得分:0)

经过更多调查和思考后,我决定将访问令牌发送到我的服务器(通过https),让服务器使用它来从Facebook / Google获取用户的电子邮件地址。

这似乎是处理这种情况的一种非常标准的方式,如果我这样做,我就不必提出一些自己的解决方案,这种解决方案必然会忽略某些情况并留下大量安全漏洞。