2016-03-29 26 views
4

我正在构建Laravel后端,以通过移动设备对用户进行身份验证。并使用https://github.com/lucadegasperi/oauth2-server-laravel使用OAuth时,将'client_secret'存储在移动设备上安全吗?

用户从移动将调用/的OAuth /回调以获取访问令牌

我打算使用“密码”为交付式。因此,在这种情况下,用户会发送以下内容: - 用户名密码& - 客户端ID + SECRET

我觉得有什么不对在移动设备中存储的秘密。这是不错的做法吗? 在进行逆向工程和app时,可以轻松检测到秘密。

可使用的OAuth2

回答

1

的OAuth 2.0假设本机应用程序不能让客户端凭证保密任何人解释最佳实践。以下是RFC 6749的摘录,“9. Native Applications”。

使用该授权码交付式应该这样做,而无需使用客户端凭据

原生应用中,由于原生应用程序无法保密客户端凭证。

的客户端应用程序,在它难以保持客户端凭证保密的环境被称为公众客户(RFC 6749,“2.1. Client Types”)。公共客户端不应使用客户端密钥进行授权和/或令牌请求。 (但允许)

如果您的移动设备是智能手机,则不应在应用程序中嵌入客户端密钥。另一方面,如果您的移动设备是特殊的,并且您认为饼干在移动设备中从您的应用程序中提取客户端密钥实际上是不可能的,那么使用客户端密钥将增强安全性。

相关问题