0

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

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

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

请非常具体,因为我对所有这些都是新手。包括代码的分步说明将不胜感激。谢谢你

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

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

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

干杯

4

1 回答 1

0

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

您现在正在向您的应用程序添加状态。您最初可能会考虑在 tomcat 中实现您的身份验证 (authn) 和授权 (authz),而不是在您的应用程序中。

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

设置好会话基础结构后,您需要创建登录机制,通常是带有用户名和密码的表单。当提交该表单时,其背后的 CGI 会对密码进行魔术加密,然后执行 LDAP 舞蹈:

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

2a. 匿名或作为应用用户绑定到服务器,通过CN搜索用户,使用DN和密码绑定为用户

或者

2b。从用户名计算 DN,与 DN 和加密的密码绑定。

通常,第 3 步是检查用户记录中的某些授权指示符,它可能是是/否访问指示符,或者它可能是角色或权限列表。

如果用户成功通过身份验证和授权,则将一些授权信息写入用户的会话。

然后,您的应用程序的每个后续页面都将检查用户是否已登录和/或是否具有使用该页面的适当授权。如果未经授权,您可以将他们发送回登录后登录页面,如果他们未登录,则可以将其发送回登录页面。

Basically, you just replacing the usual "query the user table of the database" with a query to an LDAP to a directory server.

于 2012-10-22T14:50:32.867 回答