您将如何将 OpenID 与 RESTful Web 服务结合起来?
我正在做的个人项目是使用 RPX SaaS 来做 OpenID。这样做的关键结果是描述登录用户的 URL。该应用程序本身大量使用 Javascript,我计划使用 REST api 与后端进行通信以进行数据库持久性和空间处理。
这个应用程序的安全要求并不大。我想知道哪个用户正在发出请求。我不认为我需要使用 SSL 来对数据保密,并且我不想要运行 SSL 的开销。
我正在使用 Spring,如果可能的话,我想使用 Spring Security (Acegi),但我并不赞同这个想法。
选项:
将 OpenID URL 返回到 Javascript 应用程序,使用它来检索用户的资源列表,然后按 id 检索/保存/等这些资源。
创建一个会话表,它将 OpenID URL 与随机会话令牌连接起来。将令牌返回给 Javascript 应用程序,然后该应用程序必须在每个后续请求中返回令牌。
将选项 2 中的会话用作 OAuth 的消费者令牌等。最初,会话将使用 PKI 加密发送到应用程序。
依赖 J2EE HTTP 会话。
在这些选项中,我倾向于选项 2。劫持会话将很困难,因为攻击者必须猜测会话 id,而且我不认为应用程序需要防止嗅探。选项 3 与选项 2 基本相同,但会话 ID 不可用于嗅探。选项 4 将 OpenID URL 放入服务器的内存中,并导致 REST 旨在避免的所有可伸缩性问题。
我很感激对此的任何讨论。