我正在开发一个 BaaS 解决方案,为开发人员的应用程序提供一些 REST API。除了 SSL,我还想保护 REST API 对应用程序(令牌?)和客户端(用户和密码)的身份验证。
我在考虑客户端的基本身份验证和应用程序身份验证的令牌,但是我想不出在注册阶段提供给应用程序开发人员的简单 UUID 令牌如何保护 REST API 并验证应用程序。
我还阅读了有关 OAuth 的信息,但我认为它不适合作为身份验证机制的解决方案。
我怎样才能以正确的方式实现这一目标?
谢谢!
我正在开发一个 BaaS 解决方案,为开发人员的应用程序提供一些 REST API。除了 SSL,我还想保护 REST API 对应用程序(令牌?)和客户端(用户和密码)的身份验证。
我在考虑客户端的基本身份验证和应用程序身份验证的令牌,但是我想不出在注册阶段提供给应用程序开发人员的简单 UUID 令牌如何保护 REST API 并验证应用程序。
我还阅读了有关 OAuth 的信息,但我认为它不适合作为身份验证机制的解决方案。
我怎样才能以正确的方式实现这一目标?
谢谢!
使用“基本身份验证”进行用户身份验证,然后使用“令牌身份验证”来访问资源(全部通过 SSL),这似乎是一种很好的(也是常见的)方法。基本上为了支持这一点,您使用 SSL 上的“基本身份验证”(用户名/密码)进行用户身份验证,并基于积极的“身份验证”,为用户提供“承载令牌”(或身份验证令牌)。用户凭据通常存储(散列和加盐)在数据库中,如身份验证令牌。基于检索到的令牌,用户可以访问 API 资源(也可以通过 SSL 授予通道的最大安全性)。您可以不时(或按设备)更改令牌。
不确定您使用哪种技术来开发 RESTful Web 服务。在 Java 中,我一直在使用 Apache Shiro(http://shiro.apache.org/),它允许支持所有这些活动(基本身份验证、基于令牌的身份验证、数据加密(散列 + 加盐)以存储在数据库中,等等 - 看看我写的关于如何在 shiro 中设置这种方法的另一篇文章:https ://stackoverflow.com/a/17950339/1029673 )。
HTH。
最后我想出了适合我的安全模式的 OAuth 2.0 资源所有者密码流。
谢谢!