使用Facebook SSO作为唯一的登录机制,使用iOS客户端对REST API进行身份验证

时间:2011-08-07 02:05:55

标签: ios api rest facebook

我打算将Facebook作为我正在构建的应用程序的唯一登录机制,并需要对设计提供一些反馈。在这里 -

用户打开应用程序并显示注册屏幕。 facebook授权流程开始,让我们假设它成功并且用户已经成功注册了自己。成功后,应用程序调用Facebook图形API并获取用户的名字,姓氏,电子邮件,出生日期等。使用此数据,应用程序然后调用名为RegisterUser(string Fullname, string FirstName, string LastName ...)的Web服务方法,该方法在数据库中。

现在,对于API的后续调用,我需要验证请求是否真正来自我的应用程序(不一定是特定用户)。我查了一下S3 REST API,似乎每个请求都有一个名为Authorization的HTTP头,客户端通过附加一堆其他HTTP头来创建,如Date,Method,Request数据,用它签名客户端的私钥并计算其base64编码值。这在服务器端验证以验证客户端。

现在,我很乐意实施所有这些,但有几个问题:

  • 如果我有私钥,将它作为iOS应用程序本身的一部分包含在内是否安全?有人可以从iOS应用程序二进制文件中提取密钥吗?如果是这样,我该如何处理?
  • 您对此设计有任何其他更改吗?

谢谢,
Teja公司。

1 个答案:

答案 0 :(得分:0)

确保对base64编码的值应用单向散列算法 - base64是双向编码,因此您不希望窃听者对您的私钥进行逆向工程。 Amazon S3在执行base64之前执行SHA-1。

与所有(AFAIK?)编译的二进制文件一样,您的应用程序不应该被反编译。