Script PHP Alterar senha Open Ldap

1. Script PHP Alterar senha Open Ldap

Paulo Cesar
paulomelo_esecur

(usa Fedora)

Enviado em 03/01/2014 - 21:34h

Boa Noite.

Preciso fazer um script para auterar senha de usuarios no openLdap,achei algumas coisas na internet mas me deparei com um problema.

Consigo fazer o logon no Ldap, testar o usuario, mas quando envio o comando para trocar a senha me volta uma mensagem, que Pede para falar com o Administrador.
Algum sabe se preciso realizar alguma conf no Ldap para executar os procedimentos citados?


  


2. Re: Script PHP Alterar senha Open Ldap

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 03/01/2014 - 22:50h

paulomelo_esecur escreveu:

Boa Noite.

Preciso fazer um script para auterar senha de usuarios no openLdap,achei algumas coisas na internet mas me deparei com um problema.

Consigo fazer o logon no Ldap, testar o usuario, mas quando envio o comando para trocar a senha me volta uma mensagem, que Pede para falar com o Administrador.
Algum sabe se preciso realizar alguma conf no Ldap para executar os procedimentos citados?


Primeiramente configure ACL no /etc/ldap/slapd.conf para autorizar a troca de senha pelo próprio usuário:

access to attrs=userPassword
by anonymous auth
by self write
by * none


Depois só fazer formulário HTML com os campos usuário, senha atual, nova senha e confirmação da senha, CSS(opcional) e usar as functions PHP ldap_connect(servidor,porta), ldap_bind(con,usuario,senha_atual), ldap_mod_replace(con,usuario,nova_senha), depois só fazer as verificações com if e else.

P.S. O fundamental para funcionar é fazer configuração ACL citada no início.


3. Script PHP Alterar senha Open Ldap

Paulo Cesar
paulomelo_esecur

(usa Fedora)

Enviado em 04/01/2014 - 12:26h

Bom dia

Obrigado pela resposta.

Mas aparentement esta tudo correto, mas mesmo assim não funciona, parece ser um erro interno do Ldap.


Da uma olhada se no fonte que estou usando.


// DADOS DO FORMULARIO
$usuario=$_POST['login'];
$senha_atual=$_POST['senha_atual'];
$senha_nova=$_POST['senha_nova'];

// DADOS DO SERVIDOR LDAP
$pessoas="cn=xx,dc=xx,dc=xx";
$servidor="ip";
$porta=389;
$base="dc=xx,dc=xx";
$administrador="cn=Manager,dc=xx,dc=xx";
$rdn="uid=".$usuario.",".$pessoas;
$info["userPassword"] = $senha_nova;


$con = @ldap_connect($servidor, $porta)
or die("Erro na conexao ao servidor {$servidor}");

if ($con) {

// Versao 3 do LDAP
ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3);
echo "cheguei";

// dados da autenticacao
$bind = @ldap_bind($con, $rdn, $senha_atual);
// verifica se autentica
if ($bind) {
echo "LDAP bind successful...";
echo "depois da verificacao ";
// se o usuario existe faz
$rs=ldap_mod_replace($con, $rdn, $info);

if ($rs) {
$msg="Senha foi atualizada com sucesso!";
}

else{
$msg="Ocorreu um erro ao trocar a senha! Contate o Administrador.";
}
// se for erro de uusuario ou senha
} else {
$msg="Usuario inexistente ou senha incorreta! Tente novamente.";

}
// monstra msg de erro ou sucesso
header ("Refresh: 0;url=index.html");
}


?>

6,9 Topo







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts