2008-11-06 127 views

回答

22

www.jspwiki.org

参见:ActiveDirectoryIntegration

与LDAP的设置试试这个在server.xml:

<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99" 

      connectionURL="ldap://youradsserver:389" 
      alternateURL="ldap://youradsserver:389"   
      userRoleName="member" 
      userBase="cn=Users,dc=yourdomain" 
      userPattern="cn={0},cn=Users,dc=yourdomain" 
      roleBase="cn=Users,dc=yourdomain" 
      roleName="cn" 
      roleSearch="(member={0})" 
      roleSubtree="false" 
      userSubtree="true" 
    /> 

,并确定在Tomcat中的作用-users.xml和您的应用程序的web.xml

编辑webapp_root/WEB_INF/Web.xml文件如下:

<security-constraint> 
    <display-name>your web app display name</display-name> 
    <web-resource-collection> 
    <web-resource-name>Protected Area</web-resource-name> 
    <url-pattern>*.jsp</url-pattern> 
    <url-pattern>*.html</url-pattern> 
    <url-pattern>*.xml</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
    <role-name>yourrolname(ADS Group)</role-name> 
    </auth-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>FORM</auth-method> 
    <form-login-config> 
    <form-login-page>/login.jsp</form-login-page> 
    <form-error-page>/error.jsp</form-error-page> 
    </form-login-config> 
</login-config> 
<security-role> 
    <description>your role description</description> 
    <role-name>yourrolename(i.e ADS group)</role-name> 
</security-role> 
+1

链接被破坏 – Antonio 2010-10-05 14:18:46

+0

新的链接到www.jspwiki.org(谢谢安东尼奥) – Blauohr 2010-10-08 08:23:02

+0

由于在context.xml中没有指定连接用户名或密码,所以这似乎只有在匿名查找被允许获取列表时才有效角色。 – 2014-09-30 02:05:36

2

基于LDAP的身份验证在任何操作系统上都不需要任何附加步骤。

http://spnego.sf.net可用于对登录到Windows域的用户进行无提示验证。这需要在域中注册的域帐户对提供的服务具有权威性。它适用于Windows和Linux。

0

“欢迎SPNEGO SourceForge项目 集成Windows身份验证在Java中

这个项目的目的是提供一种替代库(.jar文件),该应用程序服务器(如Tomcat),可以作为工具使用(如Web浏览器)

如果您的组织正在运行Active Directory(AD),并且所有Web应用程序都通过Microsoft的Internet信息服务(IIS),并且IIS已启用集成Windows身份验证,并且您的每个人组织正在使用Internet Explorer(IE),那么此项目可能不是对你有任何兴趣。“

13

Blauhr的答案很好,但AD中用户的CN基于他们的“显示名称”,而不是他们的saMAccountName(用户用来登录)。基于他的解决方案,它看起来像某人将不得不使用他们的显示名称,基于userPattern登录。

我亲自使用下列内容:

 <Realm className="org.apache.catalina.realm.JNDIRealm" debug="99" 
     connectionURL="ldap://DOMAIN_CONTROLLER:389" 
     connectionName="[email protected]" 
     connectionPassword="USER_PASSWORD" 
     referrals="follow" 
     userBase="OU=USER_GROUP,DC=DOMAIN,DC=com" 
     userSearch="(sAMAccountName={0})" 
     userSubtree="true" 
     roleBase="OU=GROUPS_GROUP,DC=DOMAIN,DC=com" 
     roleName="name" 
     roleSubtree="true" 
     roleSearch="(member={0})" 
    /> 

其他一切会非常的工作是相同的。

相关问题