AD サーバーを 1 つだけ構成する必要がある場合は、Active Directory に対して認証できます。ソリューションは 、ssl を介した匿名ユーザーとしての Active Directory 認証として提供されます。
Load Balancer の背後で複数の AD が実行されていると、スタックします。
間にロード バランサーがあるため、ホスト名のみを取得し、可用性に基づいてロード バランサーの背後にあるホスト名に AD の IP を置き換えます。したがって、認証要求を処理するためにどの Active Directory サーバーが使用されるかを知ることはできません。そのため、事前に証明書を生成することはできません。また、クライアントが負荷分散に使用している AD の IP を取得できません (セキュリティ上の理由から)。したがって、 jssecacertを生成する意味はありません。私がする必要があるのは、証明書の検証を無効にすることだけです。LdapTemplateクラス ( spring -ldap 1.3.1 を使用) を使用してユーザーを認証しています。私の春の設定は次のようになります...
<bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
<property name="contextSource" ref="contextSource" />
<property name="ignorePartialResultException" value="yes" />
</bean>
<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldaps://xxx.xxx.xxx.xxx:636" />
</bean>
認証方法:
public boolean login(String username, String password) {
System.setProperty("javax.net.ssl.trustStore",
.../jssecacerts");
boolean authenticate=false;
AndFilter filter = new AndFilter();
filter.and(new EqualsFilter("xyz","xyz"));
filter.and(new EqualsFilter("xyz", xyz));
authenticate = this.ldapTemplate.authenticate(base, filter.encode(), password);
return authenticate;
}
証明書を持っている必要がないので、必要ありませんSystem.setProperty("javax.net.ssl.trustStore",
.../jssecacerts");
。
証明書の検証を無効にするために必要な変更。
私はLDAPのことでかなり新しいです。、適切な回答をお願いします。