Kerberos 5 を使用して AD サーバーに対してユーザーを認証し、次に LDAP を使用してセキュリティ制約に対する承認のためのロールを取得する Tomcat 構成があります。
server.xml には次のものがあります。
<Realm className="org.apache.catalina.realm.JAASRealm" appName="vt-ldap" userClassNames="edu.vt.middleware.ldap.jaas.LdapPrincipal" roleClassNames="edu.vt.middleware.ldap.jaas.LdapRole"/>
jaas 設定ファイルには次のように記述されています。
vt-ldap { com.sun.security.auth.module.Krb5LoginModule が必要 storePass="true" デバッグ="真"; edu.vt.middleware.ldap.jaas.LdapDnAuthorizationModule が必要 serviceUser="CN=LIM User,OU=LIMGenericAccounts,DC=lim,DC=com" serviceCredential="パスワード" useFirstPass="true" setLdapPrincipal="true" setLdapDnPrincipal="true" TLS="偽" subtreeSearch="true" logCredentials="true" storePass="true" ldapUrl="ldap://auswa01.lim.com:389" base="ou=LIMUsers,dc=lim,dc=com" userField="sAMAccountName"; edu.vt.middleware.ldap.jaas.LdapRoleAuthorizationModule が必要 serviceUser="CN=LIM User,OU=LIMGenericAccounts,DC=lim,DC=com" serviceCredential="パスワード" useFirstPass="true" setLdapPrincipal="true" setLdapDnPrincipal="true" TLS="偽" subtreeSearch="true" logCredentials="true" storePass="true" ldapUrl="ldap://auswa01.lim.com:389" base="ou=LIMGroups,dc=lim,dc=com" roleFilter="(メンバー={0})" roleAttribute="sAMAccountName"; };
Kerberos 認証はうまく機能します。ただし、後続のフェーズ (承認に使用される LDAP からロールを取得する) では、serviceCredential (パスワード) が LAN 上でクリア テキストで渡されます。
パスワードを平文で送信しないようにする方法はありますか? おそらく、serviceUser/serviceCredential 情報の代わりに Kerberos チケットを使用して LDAP にアクセスし、役割を取得する方法があります (?)...
誰?