Windows Server 2012 Digest MD5 Настройка на удостоверяване за Active Directory

Мога ли да попитам как да настроя удостоверяване за Digest MD5 в моята активна директория на Windows Server 2012, за да позволя на клиента да се удостовери пред сървъра. Ето кода, който използвам, за да установя връзката от клиента към сървъра.

Hashtable env = new Hashtable()
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory")
env.put(Context.SECURITY_AUTHENTICATION,"DIGEST-MD5 CRAM-MD5")
env.put(Context.SECURITY_PROTOCOL,"ssl")
env.put(Context.PROVIDER_URL,"ldap://test.com:636/") //The Window Server Address
env.put(Context.SECURITY_PRINCIPAL,"CN=DemoUser,OU=test,DC=test,DC=com")
env.put(Context.SECURITY_CREDENTIALS,"thepasswordishere")
try {
    def ctx = new InitialDirContext(env)
    if (ctx) {
              println "Authentication Success"
            }
}catch(AuthenticationException elc){
println elc.printStackTrace()
println "Authentication Fail"
}catch(Exception e){
println e.printStackTrace()
}
ctx.close()

person Derwin FeelsTired    schedule 19.11.2015    source източник


Отговори (1)


Същият проблем за мен тук на Windows Server 2012R2.

Ако не е от решаващо значение за вас, има заобиколно решение - използвайте стойността във формат sAMAccountName или userPrincipalName за Context.SECURITY_PRINCIPAL.

Тъй като форматът distinguishedName, който използвате в момента, изглежда създава проблеми.

Ето какво трябва да работи за вас:

env.put(Context.SECURITY_PRINCIPAL,"DemoUser")

Няколко препратки, описващи подобни проблеми:

"Active Directory не поддържа отличително име."

" Отличителното име (DN) не работи за удостоверяване; вместо него трябва да се използва атрибутът userPrincipalName."

person Vlad.Bachurin    schedule 16.03.2016