Integração Scriptcase com AD (Autenticação LDAP)

Gostaria de integrar a autenticação do scriptcase com active diretory (LDAP), peço ajuda em como proceder, obrigado

Ertroi,

Existem algumas codificações mais e outras menos elaboradas, no entanto adaptei um exemplo simples para servir de base para você ok ,

1- Primeiro ‘descomente’ a linha do seu php.ini e reinicie o apache :
;extension=php_ldap.dll

2 - Crie a função

//-------------------------------------------------------------
// Função: valida_ldap
// Uso: valida_ldap( ‘servidor’, ‘dominio\usuário’, ‘senha’)
//-------------------------------------------------------------

function valida_ldap($srv, $usr, $pwd) {

$ldap_server = $srv;
$auth_user = $usr;
$auth_pass = $pwd;

// Tenta se conectar com o servidor     
if (!($connect = @ldap_connect($ldap_server))) {
   return FALSE;    // Erro na conexão com o servidor
}

// Tenta autenticar no servidor    
if (!($bind = @ldap_bind($connect, $auth_user, $auth_pass))) {
 return FALSE;    // Autenticação OK
 } else {  
 return TRUE;    // Falha na Autenticação
 }

ldap_unbind($connect);

}

Embora não tenha testado em meu ambiente de produção, nos testes com a versão 5.01.0011 do SC, a função funcionou como esperado

Mais detalhes sobre a documentação PHP LDAP Functions pode ser encontrada em http://www.php.net/manual/en/ref.ldap.php

Espoero ter ajudado

William Scardua

Mas como eu crio essa função la no scriptcase? Pode me ajudar no processo? Já tenho a aplicação de controle, quero tipo que ele autentique com a senha do ad o usuario que esta cadastrado na base para acesso, pode me mandar um exemplo?

voce pode criar biblioteca … ou colocar num evento do controle(login) e chamar no validate …

Pessoal coloquei da forma abaixo, mas continua dando o erro de credencial invalida

$var_login = sc_sql_injection({login});
$var_password = sc_sql_injection({password});
$ldap[‘user’] = $var_login;
$ldap[‘pass’] = $var_password;
$ldap[‘host’] = ‘10.51.1.2’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘uid=’.$ldap[‘user’].’@ctis.local’;
$ldap[‘base’] = ‘DC=ctis,DC=local’;
// Conectando ao LDAP
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] );
ldap_set_option($ldap[‘conn’], LDAP_OPT_PROTOCOL_VERSION, 3);

$ldap[‘bind’] = ldap_bind ($ldap[‘conn’], $ldap[‘dn’],$ldap[‘pass’] );;

if ($ldap['bind'])
{ 

$sm_global_login = {login};	
sc_set_global($sm_global_login);

    sc_lookup(ds_user_app, "select dbo.SCRIPTGROUPAPL.CODIGOAPL from dbo.SCRIPTGROUPAPL inner join dbo.SCRIPTGROUPUSER on dbo.SCRIPTGROUPAPL.CODIGOGRUPO = dbo.SCRIPTGROUPUSER.CODIGOGRUPO where dbo.SCRIPTGROUPUSER.CODIGOUSER = '{login}' ");

if ({ds_user_app} != false)
{
	for($i = 0; $i < count({ds_user_app}); $i++)
	{		    
		sc_apl_status({ds_user_app[$i][0]}, 'on');
	}
}

sc_redir('detec');		

}
else
{
sc_error_message(“Acesso negado !”);
}

Common mistake that’s no good.