2008-11-06 38 views

Trả lời

22

từ www.jspwiki.org

Xem: ActiveDirectoryIntegration

Hãy thử điều này trong server.xml với ldap-settings của bạn:

<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" 
    /> 

và xác định vai trò trong tomcat -users.xml và tệp web.xml của ứng dụng của bạn

chỉnh sửa tệp webapp_root/WEB_INF/Web.xml như sau:

<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

Liên kết bị hỏng – Antonio

+0

Liên kết mới tới www.jspwiki.org (Cảm ơn Antonio) – Blauohr

+0

Vì không có tên người dùng hoặc mật khẩu kết nối được chỉ định trong context.xml, điều này dường như chỉ hoạt động nếu tra cứu ẩn danh được phép tải danh sách của vai trò. –

2

Xác thực dựa trên LDAP hoạt động mà không có bất kỳ bước bổ sung nào trên bất kỳ hệ điều hành nào.

http://spnego.sf.net có thể được sử dụng để xác thực im lặng của người dùng đã đăng nhập vào Miền Windows. Điều này cần một tài khoản miền được đăng ký trong miền để có thẩm quyền đối với dịch vụ được cung cấp. Nó hoạt động trên cả Windows và Linux.

0

"Chào mừng đến với dự án Spnego SourceForge Integrated Windows Authentication trong Java

Mục đích của dự án này là cung cấp một thư viện thay thế (file .jar) rằng các máy chủ ứng dụng (như Tomcat) có thể sử dụng như là phương tiện để xác thực khách hàng (như trình duyệt web)

Nếu tổ chức của bạn đang chạy Active Directory (AD) và tất cả các ứng dụng web của bạn đi qua Dịch vụ thông tin Internet của Microsoft (IIS) và IIS đã bật Xác thực Windows tích hợp và mọi người trong tổ chức đang sử dụng Internet Explorer (IE), sau đó dự án này có thể không phải là của bất kỳ sự quan tâm nào đối với bạn. "

+1

Liên kết đến trang dự án ở trên là [SPENEGO] (http://spnego.sourceforge.net/) –

13

Câu trả lời của Blauhr là tốt, nhưng CN của người dùng trong AD dựa trên "Tên hiển thị" của họ, chứ không phải tên saMAccountName của họ (người dùng được sử dụng để đăng nhập bằng). Dựa trên giải pháp của mình, có vẻ như ai đó sẽ phải đăng nhập bằng Tên hiển thị của họ, dựa trên userPattern.

Cá nhân tôi đã sử dụng như sau:

 <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})" 
    /> 

Mọi thứ khác sẽ khá nhiều công việc tương tự.

+0

Tuyệt vời, hoạt động với Tomcat 7! Cảm ơn –

Các vấn đề liên quan