Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为RESTful web服务使用OpenID(RPX)(可能还有OAuth)_Javascript_Rest_Openid_Spring Security_Restful Authentication - Fatal编程技术网

Javascript 为RESTful web服务使用OpenID(RPX)(可能还有OAuth)

Javascript 为RESTful web服务使用OpenID(RPX)(可能还有OAuth),javascript,rest,openid,spring-security,restful-authentication,Javascript,Rest,Openid,Spring Security,Restful Authentication,如何将OpenID与RESTful web服务相结合 我正在从事的个人项目是使用RPX SaaS进行OpenID。此操作的关键结果是描述登录用户的URL。应用程序本身大量使用Javascript,我计划使用RESTAPI与后端进行通信,以实现数据库持久性和空间处理 这个应用程序的安全性要求不大。我想知道哪个用户正在发出请求。我不认为我需要使用SSL来对数据保密,我也不希望运行SSL的开销 我使用的是Spring,如果可能的话,我希望使用Spring安全性(Acegi),但我并不坚持这个想法 选项

如何将OpenID与RESTful web服务相结合

我正在从事的个人项目是使用RPX SaaS进行OpenID。此操作的关键结果是描述登录用户的URL。应用程序本身大量使用Javascript,我计划使用RESTAPI与后端进行通信,以实现数据库持久性和空间处理

这个应用程序的安全性要求不大。我想知道哪个用户正在发出请求。我不认为我需要使用SSL来对数据保密,我也不希望运行SSL的开销

我使用的是Spring,如果可能的话,我希望使用Spring安全性(Acegi),但我并不坚持这个想法

选项:

  • 将OpenID URL返回到Javascript应用程序,使用此URL检索用户的资源列表,然后按id检索/保存/等这些资源

  • 创建一个会话表,将OpenID URL与随机会话令牌连接起来。将令牌返回到Javascript应用程序,Javascript应用程序随后必须在每个后续请求中返回令牌

  • 使用选项2中的会话作为OAuth的使用者令牌等。最初,会话将使用PKI加密发送到应用程序

  • 依赖J2EEHTTP会话

  • 在这些选项中,我倾向于选项2。劫持会话将是困难的,因为攻击者必须猜测会话id,我认为应用程序不需要防止嗅探。选项3基本上与选项2相同,但会话id不可用于嗅探。选项4将OpenIDURL放入服务器的内存中,并导致REST旨在避免的所有可伸缩性问题


    非常感谢大家就此进行讨论。

    因此,2年3个月后,我可以回答我自己的问题。我为我的个人项目实施了该计划,我也为我的雇主单独实施了该计划


    插入Spring Security是最好的方法。您可以选择使用预验证流,但您可能会发现
    CasAuthenticationFilter
    (和
    CasAuthenticationEntryPoint
    )工作得更好,因为它们拥有您所需的大部分流。

    因此,2年3个月后,我可以回答我自己的问题。我为我的个人项目实施了该计划,我也为我的雇主单独实施了该计划

    插入Spring Security是最好的方法。您可以选择使用预验证流,但您可能会发现
    CasAuthenticationFilter
    (和
    CasAuthenticationEntryPoint
    )工作得更好,因为它们拥有您所需的大部分流