Alterar senha LDAP

Ola, bom dia,
Como eu faço para alterar senha de usuário windows 2000 atraves do LDAP?

Obrigada

Pra windows nao sei como fazer.

Mas, se fosse o diretorio LDAP da Oracle, tem um .jar fornecido pela propria Oracle com classes e metodos
onde vc pode manipular o diretorio.

Tente axar algo parecido para o Windows.

Via Java? É beeeeeem chatinho.
Tem de ser em um canal criptografado(SSL), a senha deve estar em Unicode. Precisei gerar um certificado no servidor windows e importar para a minha VM para conseguir:

char SEP = File.separatorChar;
				String keystore = System.getProperty("java.home") + SEP + "lib"
						+ SEP + "security" + SEP + "cacerts";
				System.setProperty("javax.net.ssl.trustStore",keystore);
				
				Hashtable env = new Hashtable(5, 0.75f);
				env.put(Context.SECURITY_AUTHENTICATION,"simple");
				env.put(Context.SECURITY_PRINCIPAL, "cn=admin,dc=dominio,dc=com,dc=br");
				env.put(Context.SECURITY_CREDENTIALS, "123");
				env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
				env.put(Context.PROVIDER_URL, "ldaps://10.10.10.110:636"); //636 é a porta do ldaps
				env.put(Context.SECURITY_PROTOCOL, "ssl");
				
				String newPassword = "321";
				String oldPassword = "123";
				String entryDN = "cn=usuario,ou=Usuarios,dc=dominio,dc=com,dc=br";
				
    //A password deve estar em unicode e entre aspas duplas
				String oldQuotedPassword = "\"" + oldPassword + "\"";
				byte[]oldUnicodePassword = oldQuotedPassword.getBytes("UTF-16LE");				
				String newQuotedPassword = "\"" + newPassword + "\"";
				byte[] newUnicodePassword = newQuotedPassword.getBytes("UTF-16LE");
				ModificationItem[] mods = new ModificationItem[1];
				mods[1] = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, new BasicAttribute("unicodePwd", oldUnicodePassword));
				mods[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, new BasicAttribute("unicodePwd", newUnicodePassword));
				
				
				
				
				// Troca a senha
				DirContext ctx = new InitialDirContext(env);
				ctx.modifyAttributes(entryDN, mods);

Bom dia Rafael,

Bem relevante este tópico … :slight_smile:

Poderia esclarecer um pouquinho melhor o procedimento de geração do certificado pelo Servidor Windows 2003, não consegui compreender esta parte, seria via Java ou via alguma ferramenta da MS mesmo?

Obrigado!

Tiago Seibel

[quote=tiagoseibel]Bom dia Rafael,

Bem relevante este tópico … :slight_smile:

Poderia esclarecer um pouquinho melhor o procedimento de geração do certificado pelo Servidor Windows 2003, não consegui compreender esta parte, seria via Java ou via alguma ferramenta da MS mesmo?

Obrigado!

Tiago Seibel[/quote]

E no proprio servidor que voce gera um certificado.
E importa para a sua JVM(jre/lib/security/cacerts) atraves da ferramenta keytool

vc tem que usar a autoridade certificadora do windows 2003 (ferramentas administrativas)
lá vc gera um certificado pro server (já deve ter se vc usa ad… (logico q vc usa…heheh))

e exporta lá de dentro pra um arquivo .pfx

[quote=qmx]vc tem que usar a autoridade certificadora do windows 2003 (ferramentas administrativas)
lá vc gera um certificado pro server (já deve ter se vc usa ad… (logico q vc usa…heheh))

e exporta lá de dentro pra um arquivo .pfx[/quote]

Aqui foi gerado com um .cer

Hum…

No caso o servidor da rede não tem nenhum certificado criado…
vou tentar criar um certificado e exportar em um servidor de testes …

valeu!!!