2013-03-08 220 views
1

更新:我之前没有提及我们希望解决方案能够灵活地从我们的数据库中验证用户身份,或者要求其他服务器告诉我们用户是否已通过身份验证。还值得一提的是,这些其他服务器不在我们的控制之下,所以我们无法实施特定的用户模型。客户端 - 服务器用户认证

我对OAuth和OpenID进行了长时间的艰苦阅读,但它们都不适合我们的情况,并且会使得用户的过程变得更加困难。这已经解决了一千次,但我找不到解决方案。

我们正在寻找的是一个框架,可用于REST服务服务器以用户名和密码对用户进行身份验证(不涉及任何第三方客户端)。 除了首次登录时,解决方案不得传递用户名和密码,并使用令牌进行进一步身份验证。尽管OAuth确实使用了令牌,但它旨在允许第三方客户端访问服务提供商资源。情况并非如此,这些服务仅适用于我们自己的应用程序,唯一需要的是用户身份验证。

你们认为什么是最合适的解决方案?

配置:
提供基于REST的服务与我们的思维倾向于使用Spring Security的一些用户管理和令牌管理框架去-Spring服务器。
-iOS将对服务器进行HTTPS调用的设备。

我们最终想要的是让设备发送登录请求,并在登录成功后使用该令牌发出请求时收到令牌。就像Facebook一样,不包括第三方参与。

是否有东西可以在我们的服务器中进行配置?还是应该考虑构建我们自己的令牌管理,比较和生成软件? 在iOS应用程序中使用Spring-Security而不涉及存储cookie或重定向到可能的页面?

回答

0

OpenStack提供了许多与开源云相关的项目......项目Keystone。这几乎完全符合你的要求。

你可能想看看这里:

http://docs.openstack.org/developer/keystone/

+0

非常感谢。我仍在阅读它。我们是否必须为我们的用户使用OpenStack Identity?或者我们可以使用我们自己的用户名/密码比较过程,并使用Keystone进行令牌/会话管理? – hishamaus 2013-03-08 03:44:39

+0

Keystone可以绑定到ldap或返回到PAM atm。没什么别的。绑定到Active Directory中有一些模块工作,但不受基金会积极支持。 – 2013-03-08 04:24:20