2012-10-18 203 views
0

我有一个简单的网页部署到tomcat根据用户选择运行某些shell脚本。这些页面是用html和cgi/perl编写的。LDAP身份验证CGI

我们已经有一个工作的ldap服务器和目录。我需要能够为我创建的网页添加安全性,以便在尝试访问主页或任何子页面时要求用户使用其ldap帐户登录。

如何将ldap身份验证添加到我的网页?

请对我非常具体,因为我对这一切都很陌生。一步一步的指示,包括代码将不胜感激。谢谢

我在google上做了大量的研究,但所有的解决方案都是通用的,我不知道从哪里开始。

这是一篇很好的文章,但我不确定我把我的连接放到ldap和绑定(我的哪个页面)?我如何确保身份验证将应用于子页面或将来创建的任何其他页面?

http://www.perlmonks.org/?node_id=32196

干杯

回答

0

这是一个很好的文章,但我不知道我在哪里把我的连接 到LDAP和结合(这我的网页)?我如何确保 身份验证将应用于子页面或将来创建的任何其他 ?

你现在的状态加入到你的应用程序。您最初可能会考虑在tomcat中实现认证(authn)和授权(authz),而不是在您的应用中。

如果您决定不实施在Tomcat中,并选择在Perl来实现,那么你刚刚决定增加状态,以您的应用程序,这意味着你需要添加某种会话处理。看看CGI :: Session,CPAN上还有很多其他会话处理模块。避免Apache :: Session。它的锁处理可能导致大量的痛苦,如果交易运行长。在cookie中使用会话密钥。通过SSL发送所有内容。如果你不使用SSL,那么破解者可以拦截你的会话密钥,然后劫持会话。

一旦你建立了会话架构,你需要创建一个登录机制,通常是一个带有用户名和密码的表单。当表单提交后,CGI背后的密码会对密码进行神奇加密,然后执行LDAP跳舞:

  1. 连接到目录服务器没有连接已经存在。

2a。绑定到服务器匿名或作为应用程序的用户,搜索通过CN的用户,绑定如使用DN的用户和口令

OR

2b中。从用户名中计算DN,使用DN和密码的密码进行绑定。

通常情况下,第3步是检查用户的记录对于一些授权的指标,它可能是一个是/否访问指示灯,也可以是角色或特权的列表。

如果用户成功通过认证和授权,然后在用户的会话中写入一些授权信息。

然后,您的应用的每个后续页面都会检查用户是否已登录和/或是否具有正确的authz来使用该页面。如果未经授权,您可以将它们发送回登录后登录页面,或登录页面(如果它们未登录)。

基本上,您只需替换通常的“查询数据库的用户表”通过查询将LDAP发送到目录服务器。