我有一个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(密码)以明文形式在LAN上传递。
有没有办法避免以明文形式发送密码?也许有一种方法可以使用Kerberos票证而不是serviceUser / serviceCredential info(?)来访问LDAP以获取角色......
任何?
答案 0 :(得分:1)
我已经检查过virgia技术代码但它不会这样做。我必须使用或重复使用kerberos票证并使用它对您的目录进行身份验证。 virgia技术代码似乎support。我做了简单的绑定,这是你能做的最糟糕的事情。 如果你有kerberos,你根本不需要SSL。您可以请求kerberos加密整个通信。
答案 1 :(得分:0)
这就是您使用LDAP over SSL的原因。然后在LDAP数据包内清除密码,但在点击线路之前加密。