2013-07-05 4 views
0

을 획득 할 수 없습니다 나는 API로 서버와 UnboundID로 ApacheDS를 사용하고 UnboundID LDAP DIGEST-MD5 binding cause NPEUnboundID SASL 내 다른 질문에 관한 비밀

.

제안 된 답변에 따라 NPE가 사라졌습니다. 그러나 이제는이 오류가 발생합니다.

LDAPException(resultCode=49 (invalid credentials), errorMessage='INVALID_CREDENTIALS: DIGEST-MD5: cannot acquire password for 'dn:uid=blah,ou=dev,dc=blah,dc=com in realm : mizar.com', diagnosticMessage='INVALID_CREDENTIALS: DIGEST-MD5: cannot acquire password for dn:uid=blah,ou=dev,dc=blah,dc=com in realm : blah.com') 
at com.unboundid.ldap.sdk.LDAPConnection.bind(LDAPConnection.java:1881) 
at UnboundDemo.main(UnboundDemo.java:40) 

코드는 다음과 같이

SASL Host: 1.1.1.1 
SASL Principal: ldap/[email protected] 
Search Base Dn: ou=dev,dc=blah,dc=com 

ApacheDS의 문서가 SASL 교장 그렇게 무엇인지 설명하지 않았다

여기
conn = new LDAPConnection("1.1.1.1",389); 
    mdBind = new DIGESTMD5BindRequest("dn:uid=blah,ou=dev,dc=blah,dc=com", null, "test", "blah.com",null); 
    bindResult = conn.bind(mdBind); 
    System.out.println("MD5 bind success!"); 

이 디렉토리 스튜디오 설정 페이지에서 ApacheDS SASL 구성입니다 나는 그것이 내 구성에 잘못 설정된 것일 수 있다고 생각하기 시작했다. 여기서 주요 아이디어는 여러 SASL 메커니즘에 대해 UnboundID를 테스트하는 것입니다.

답변

2

ApacheDS 서버가 암호의 일반 텍스트 값을 결정할 수있는 형식으로 암호를 저장하도록 구성되지 않은 경우 일 수 있습니다.

DIGEST-MD5 및 CRAM-MD5 SASL 메커니즘의 주요 장점은 암호가 다른 정보와 결합되어 서버로 전송되기 전에 단방향 다이제스트로 인코딩된다는 것입니다. 이렇게하면 암호가 명확하게 전달되지 않으므로 나머지 통신을 안전하게 유지할 필요없이 통신을 볼 수있는 모든 사람으로부터 보호됩니다. 그러나 이러한 메커니즘 중 하나를 사용하여 인증하는 기능을 사용하려면 서버가 일반 텍스트 버전의 암호를 결정하여 클라이언트와 동일한 암호화 처리를 수행 할 수 있어야합니다.

UnboundID LDAP SDK의 SASL 인증 기능을 테스트하려는 경우 PLAIN 메커니즘을 사용하는 것이 좋습니다 (사용자 입력에 특별한 요구 사항을 부과해서는 안 됨). 정말로 DIGEST-MD5를 사용하려면 서버가 해당 메커니즘으로 인증해야하는 사용자의 암호에 대한 일반 텍스트 표현에 액세스 할 수 있도록해야합니다.