Angular JS SPA使用LDAP身份验证

mar*_*ami 8 ldap jax-rs spring-security angularjs single-page-application

我正在写一个AngularJS SPA应用程序,它调用Rest完整的Web服务.后端正在编写JAX-RS,部署在上面Tomcat 7.我使用的是HTTPS, SSL从数据传输SPAJAX-RS

要求

  1. 我必须进行LDAP身份验证.(我会将用户名和密码发送到Web服务,它应该进行身份验证)
  2. 我必须进行用户的会话管理(因为,当经过身份验证的用户向Web服务发送请求时,用户不必再次进行身份验证)

问题

  1. 我认为进行LDAP身份验证有两种选择:

  2. 管理用户会话.一旦用户通过身份验证,就应将其保存在某处,以便用户可以在其登录未到期之前执行操作.我该怎么做?


我应该选择哪种方式?我该如何进行LDAP身份验证会话管理


任何人都可以提供任何建议示例链接吗?

小智 9

所以,

  1. 使用JNDI的LDAP身份验证工作正常,您也可以使用整洁的UnboundID LDAP Java API.可以在此处找到一个简单的LDAP绑定示例:https://code.google.com/p/ldap-sample-code/source/browse/trunk/src/main/java/samplecode/bind/SimpleBindExample.java.

另请注意,您可以使用Node.JS模块作为后端,例如,Passport.JS身份验证框架提供了许多与身份验证和联合相关的功能/功能(即执行"使用Google登录"等操作. ).见:passportjs.org.

  1. 在Angular/frontend方面,最好的办法是使用JWT令牌.这里的例子都有详细解释:http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543.

在本质上:

  • 一旦用户成功绑定到LDAP,您的后端身份验证REST应在响应中返回JWT令牌.此令牌将包含一些用户数据,并应加密(请参阅上面的链接).
  • 您的Angular应用程序应在成功登录后将该令牌设置为客户端浏览器上的cookie("set-cookie"响应头)(因此在Login视图的Controller中).
  • 然后,客户端将根据它对您的应用程序发出的每个请求提供该cookie/JWT令牌.
  • 然后,您的应用需要验证每个请求(在SPA的控制器中)提供的令牌.您可能还希望将用户身份验证数据添加到$ scope中,以便在视图中使用它.

希望能帮助到你...