web-dev-qa-db-ja.com

Windows Active Directoryを使用して認証するためのTomcatの構成

Tomcat 5.5以降を設定してWindows Active Directoryからユーザーを認証する最良の方法は何ですか?

34
santtu

www.jspwiki.orgから

参照: ActiveDirectoryIntegration

Ldap-settingsで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>
25
Blauohr

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

他のすべてはほとんど同じように機能します。

18
Doug

LDAPベースの認証は、オペレーティングシステムで追加の手順を実行しなくても機能します。

http://spnego.sf.net は、Windowsドメインにログインしているユーザーのサイレント認証に使用できます。これには、提供されたサービスに対して権限を持つドメインに登録されているドメインアカウントが必要です。 WindowsとLinuxの両方で動作します。

2

「SPNEGO SourceForgeプロジェクトJavaへの統合Windows認証へようこそ

このプロジェクトの目的は、アプリケーションサーバー(Tomcatなど)がクライアント(Webブラウザーなど)を認証する手段として使用できる代替ライブラリ(.jarファイル)を提供することです。

組織でActive Directory(AD)を実行しており、すべてのWebアプリケーションがMicrosoftのインターネットインフォメーションサービス(IIS)を通過し、IIS統合Windows認証が有効になっており、組織内の全員が使用している場合Internet Explorer(IE)、このプロジェクトそうでないかもしれない興味がある。」

0
Renani