У меня есть конфигурация Tomcat, которая использует Kerberos 5 для аутентификации пользователя на сервере AD, а затем использует LDAP для получения ролей для авторизации в соответствии с ограничением безопасности.
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 required
storePass="true"
debug="true";
edu.vt.middleware.ldap.jaas.LdapDnAuthorizationModule required
serviceUser="CN=LIM User,OU=LIMGenericAccounts,DC=lim,DC=com"
serviceCredential="password"
useFirstPass="true"
setLdapPrincipal="true"
setLdapDnPrincipal="true"
tls="false"
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 required
serviceUser="CN=LIM User,OU=LIMGenericAccounts,DC=lim,DC=com"
serviceCredential="password"
useFirstPass="true"
setLdapPrincipal="true"
setLdapDnPrincipal="true"
tls="false"
subtreeSearch="true"
logCredentials="true"
storePass="true"
ldapUrl="ldap://auswa01.lim.com:389"
base="ou=LIMGroups,dc=lim,dc=com"
roleFilter="(member={0})"
roleAttribute="sAMAccountName";
};
Аутентификация Kerberos отлично работает. Но на последующих этапах (получение ролей из LDAP, используемого для авторизации) serviceCredential (пароль) передается в локальной сети в виде открытого текста.
Есть ли способ избежать отправки пароля в виде открытого текста? Возможно, есть способ получить доступ к LDAP для получения ролей, используя билет Kerberos вместо информации serviceUser / serviceCredential (?) ...
Любой