【问题标题】:Is it wise for Xamarin Social to store app secret keys rather than in server?Xamarin Social 存储应用程序密钥而不是服务器是否明智?
【发布时间】:2013-08-02 08:14:56
【问题描述】:

我希望用户在我的 Xamarin monotouch 应用上使用社交网络帐户登录/发帖。

Xamarin Social 似乎符合要求,但将密钥存储在移动设备应用程序而不是服务器上是一种好的做法/安全吗(因此集中执行身份验证和令牌/代码检索)?

或者它应该是一种更加混合的方法,其中秘密应用程序密钥存储在服务器上,并在向社交身份验证提供商验证移动设备时通过 Web 服务调用传递给 Xamarin Social(或 Xamarin Auth)(即,从而防止从应用程序本身反编译密钥的存储)?

请告知,因为我很想知道什么是最好的方法,因为我在 Instagram OAuth 说明上阅读过,您不应该将应用程序秘密 oauth 密钥放在移动设备中。

【问题讨论】:

  • Xamarin Social 只是链接到设备的本机帐户的包装器。所以它本身不存储任何细节。它只是调用设备特定的功能。

标签: security oauth xamarin.ios xamarin social


【解决方案1】:

我认为您将密钥问题混为一谈,例如,Web 服务器使用 facebook 应用程序密钥来更改应用程序范围的设置,而应用程序密钥只是您的应用程序的标识符,应该嵌入到客户端,以便客户端可以调用正确的 Facebook 应用程序。

所有和更多可以在这里找到: Access Tokens

正如我从Instagram Authentication docs 中看到的那样,它看起来非常类似于 facebook oauth2 身份验证,您提供重定向 url,在所有用户确认之后,用户将被重定向到上面给定的 url 以及访问令牌(注意在这种情况下,您不需要提供应用程序机密)

但并不总是这样,每个社交网络都有自己的身份验证机制,谷歌的 Oauth2 api 也有“客户端秘密”,但它不是这样的秘密,例如在 javascript 应用程序中,您必须将客户端秘密嵌入到应用程序本身,以便通过 OAuth2 向 google 进行身份验证,可以在此链接中阅读: Using OAuth 2.0 to Access Google APIs

所以这与 Xamarin.Social 是否使用客户端密码无关,而是您尝试连接的服务器的工作方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多