Ola, bom dia,
Como eu faço para alterar senha de usuário windows 2000 atraves do LDAP?
Obrigada
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 …
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 …
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!!!