Javascript AngularJS/NodeJS/RESTEasy+;JBoss/LDAP堆栈
我想在如下设置的应用程序堆栈上寻找一些身份验证/安全机制或最佳实践:Javascript AngularJS/NodeJS/RESTEasy+;JBoss/LDAP堆栈,javascript,node.js,rest,angularjs,jboss,Javascript,Node.js,Rest,Angularjs,Jboss,我想在如下设置的应用程序堆栈上寻找一些身份验证/安全机制或最佳实践: AngularJS前端 nodejsweb服务器 在JBoss AS 7上运行的RESTEasy后端 LDAP身份验证 如果可能的话,我想展示一下登录对话框,让它看起来很漂亮,而不是标准的浏览器HTTP身份验证对话框,但这更多的是一种偏好,而不是一种需求。我有一个相当好的感觉(基于)如何可以工作 我已经将RESTEasy服务设置为需要JBoss上的LDAP身份验证,这样用户就不能在没有身份验证的情况下直接访问REST端点;
- AngularJS前端
- nodejsweb服务器
- 在JBoss AS 7上运行的RESTEasy后端
- LDAP身份验证
谢谢 我想您可以为JBoss中的给定部分生成一个身份验证令牌,该令牌是:
- 放入一个节点服务器可以访问的数据存储区(可以是MongoDB、CouchDB,您可以选择)
- 存储在客户端的cookie中,以连接到节点服务器
然后,节点服务器可以使用令牌交叉验证客户端是否已正确验证并保护页面(登录页面除外)。这里有点不回答,但我将描述如何解决我的问题:我将节点完全从堆栈中取出。API和web应用程序现在都直接由JBoss托管。JBoss完成的HTTP Basic/LDAP身份验证负责我的身份验证。因为它们在同一台机器、协议等上,所以不需要CORS,所以我也回避了这个问题。如果您决定使用HTTP基本/摘要身份验证,您可以使用该模块
// Authentication module.
var auth = require('http-auth');
var basic = auth.basic({
realm: "Simon Area.",
file: __dirname + "/../data/users.htpasswd" // gevorg:gpass, Sarah:testpass ...
});
// Creating new HTTP server.
http.createServer(basic, function(req, res) {
res.end("Welcome to private area - " + req.user + "!");
}).listen(1337);
如果您已经有REST后端,我可以知道Node的位置吗?谁与LDAP服务器对话?Node(使用express)只是为AngularJS站点提供服务;Node可能需要也可能不需要点击LDAP来保护UI(我想这是我的问题的一部分),这肯定会起作用。在这种情况下,我希望坚持使用HTTP基本身份验证(无令牌),因此这不是我正在采用的方法。