使用表单的apache身份validation

我有问题试图让用户使用mod____auth____ldap对Apache进行身份validation。 我想让用户使用表单进行身份validation,而不是使用apache正常显示的默认对话框。

服务器“托pipe”一些应用程序。 如果用户试图访问这些应用程序而不通过apachevalidation,我希望服务器redirect到login页面。

login页面当前位于服务器的DocumentRoot中,每个应用程序在其自己的目录中被别名引用,因为login应用程序使用mod_rewrite作为URL。 例如

Alias /someapp "/opt/applications/someapp/" <Directory "/opt/applications/someapp"> AuthName "Login" AuthBasicProvider ldap AuthType Basic AuthLDAPUrl ldap://ldapserver:389/dc=somedomain,dc=com?cn AuthLDAPBindDN cn=Manager,dc=somedomain,dc=com AuthLDAPBindPassword somepassword AuthzLDAPAuthoritative off require valid-user </Directory> 

login应用程序使用对服务器的基本身份validation,据我了解,这应该使有权访问其他应用程序,使用mod____auth____ldap ?? restircted的用户?

目前DocumentRoot目前没有任何auth_ldap限制。

我如何去强迫一个login页面对Apache进行身份validation,以便用户可以访问其他应用程序?

谢谢…

Apache默认情况下不能显示login页面 。 当你进行一个基本的authentication时,它会发送一个401状态码给浏览器,popup用户名/密码对话框。 任何types的login页面都必须在应用程序端完成authentication处理。

作为替代scheme,您可能需要查看诸如shibboleth或simplesamlphp之类的身份validation联合系统。 设置它可以是一个痛苦,但一旦你这样做,它会做你想要的。

它会:

  1. 允许您通过将shibboleth指定为身份validation机制来保护Apache中的任何站点。 它加载一个mod_shib apache mod来处理前端过滤。
  2. 它将呈现给用户一个可定制的login页面
  3. 您可以将后端configuration为使用LDAP进行身份validation。

希望这可以帮助。