2008-11-06 169 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})" 
    /> 

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

相關問題