Ola,
Gostaria de saber se o java integra com active directory ou ldap.
Se ele o faz se alguem tem algun link bacana sobre.
Procurei no google mas só achei lixo.
Ola,
Gostaria de saber se o java integra com active directory ou ldap.
Se ele o faz se alguem tem algun link bacana sobre.
Procurei no google mas só achei lixo.
Ajuda + -, estava precisando mesmo é de integrar com AD, o LDAP seria segunda opção, mas mesmo assim valeu .
Obrigado.
[quote=alissoneloi]Ajuda + -, estava precisando mesmo é de integrar com AD, o LDAP seria segunda opção, mas mesmo assim valeu .
Obrigado.[/quote]
AD é um tipo simplificado de servidor LDAP.
Sim eu sei que o AD é filhote do LDAP mas ele tem funções que no LDAP não tem.
Hoje faço com php via comando do dos
<?php
###################################################################################################################################
# ------------------------------------------------------------------------
# CONEXÃO COM AS TABELAS DOS BANCOS DE DADOS
# ------------------------------------------------------------------------
include "conecta.php";
include "configuration.php";
$tabela_importacao = "SELECT Icodigo, Inome_aluno, Icurso, Inum_periodo, Iturno, Iunidade, Isituacao_aluno, Icodigo_barras FROM tb_importacao";
$consulta_tb_importacao = mysql_query($tabela_importacao);
# ------------------------------------------------------------------------
# CONEXÃO COM AS TABELAS DOS BANCOS DE DADOS
# ------------------------------------------------------------------------
$fp = fopen("./arquivo.bat", "w");
# ------------------------------------------------------------------------
# ------------------------------------------------------------------------
# FAZ LEITURA DO BANCO DE IMPORTAÇÃO
# ------------------------------------------------------------------------
while ($array = mysql_fetch_array ($consulta_tb_importacao, MYSQL_ASSOC) )
{
$cmd_codigo = $array["Icodigo"];
$cmd_nome_aluno = $array["Inome_aluno"];
$cmd_num_periodo = $array["Inum_periodo"];
$cmd_turno = $array["Iturno"];
$cmd_situacao_aluno = $array["Isituacao_aluno"];
$cmd_codigo_barras = $array["Icodigo_barras"];
$codigo_unidade = $array["Iunidade"];
$codigo_curso = $array["Icurso"];
# ------------------------------------------------------------------------
# BUSCA O NOME DO CURSO NA TABELA DE CURSOS RELATIVO AO CODIGO DA LISTA DE IMPORTAÇÃO
# ------------------------------------------------------------------------
$tabela_curso = "SELECT Ccurso, Cnomecurso, Cgrupo FROM tb_curso WHERE Ccurso = $codigo_curso LIMIT 1";
$consulta_tb_curso = mysql_query ($tabela_curso);
while ($array_1 = mysql_fetch_array ($consulta_tb_curso, MYSQL_ASSOC) )
{
$codigo_do_curso = $array_1["Ccurso"];
$nome_do_curso = $array_1["Cnomecurso"];
$grupo_seguranca = $array_1["Cgrupo"];
}
# ------------------------------------------------------------------------
# BUSCA O NOME DA UNIDADE NA TABELA DE UNIDADES RELATIVO AO CODIGO DA LISTA DE IMPORTAÇÃO
# ------------------------------------------------------------------------
$tabela_unidades = "SELECT Uunidade, Ucampus FROM tb_unidade WHERE Uunidade = $codigo_unidade LIMIT 1";
$consulta_tb_unidade = mysql_query ($tabela_unidades);
while ($array_2 = mysql_fetch_array ($consulta_tb_unidade, MYSQL_ASSOC) )
{
$nome_da_unidade = $array_2["Ucampus"];
}
# ------------------------------------------------------------------------
# GERA O ARQUIVO HTML/BAT PARA IMPORTAÇÃO DOS ALUNOS.
# ------------------------------------------------------------------------
echo "<br />";
if ($cmd_situacao_aluno == 1)
{
echo "Usuario: " . $cmd_codigo . " do curso " . $nome_do_curso . " criado com sucesso";
$arquivobat = "md \\\\" . $servidor_de_arquivos_alunos . "\\" . $grupo_seguranca . "\\" . $cmd_codigo;
shell_exec($arquivobat);
fwrite($fp, "$arquivobat");
$arquivobat = ("dsadd user \"CN=" . $cmd_codigo . ",OU=" . $nome_do_curso . ",OU=Usuarios,OU=" . $nome_da_unidade . ",OU=Unidades,DC=" . $dominio . ",DC=" . $ext_dominio . "\" -samid " . $cmd_codigo . " -upn " . $cmd_codigo . "@" . $dominio . "." . $ext_dominio . " -display \"" . $cmd_nome_aluno . "\" -pwd " . $cmd_codigo . " -fn \"" . $cmd_nome_aluno ."\" -title " . $cmd_codigo_barras . " -desc \"Curso: ". $nome_do_curso . " Periodo: " . $cmd_num_periodo . " Turno: " . $cmd_turno . "\" -office \"NUCLEO UNIV " . $nome_da_unidade . "\" -profile " . $caminho_perfil . " -loscr " . $script_logon . " -dept " . $grupo_seguranca . " -memberof \"CN=" . $grupo_seguranca . ",OU=Grupos,OU=" . $nome_da_unidade . ",OU=Unidades,DC=" . $dominio . ",DC=" . $ext_dominio . "\" -mustchpwd yes -hmdrv Z -hmdir \"\\\\" . $servidor_de_arquivos_alunos . "\\" . $grupo_seguranca . "\\" . $cmd_codigo . "\"");
shell_exec($arquivobat);
fwrite($fp, "$arquivobat");
}
elseif ($cmd_situacao_aluno > 2)
{
echo "Usuario: " . $cmd_codigo . " do curso " . $nome_do_curso . " excluido com sucesso";
$arquivobat = "\ndsrm \"CN=" . $cmd_codigo . ",OU=" . $nome_do_curso . ",OU=Usuarios,OU=" . $nome_da_unidade . ",OU=Unidades,DC=" . $dominio . ",DC=" . $ext_dominio . "\" -noprompt";
shell_exec($arquivobat);
fwrite($fp, "$arquivobat");
}
elseif ($cmd_situacao_aluno == 2 || $cmd_situacao_aluno == 0)
{
echo "Usuario: " . $cmd_codigo . " do curso " . $nome_do_curso . " bloqueado com sucesso";
$arquivobat = "dsmod user \"CN=" . $cmd_codigo . ",OU=" . $nome_do_curso . ",OU=Usuarios,OU=" . $nome_da_unidade . ",OU=Unidades,DC=" . $dominio . ",DC=" . $ext_dominio . "\" -disabled yes";
shell_exec($arquivobat);
fwrite($fp, "$arquivobat");
$arquivobat = "rd \\\\" . $servidor_de_arquivos_alunos . "\\" . $grupo_seguranca . "\\" . $cmd_codigo;
shell_exec($arquivobat);
fwrite($fp, "$arquivobat");
}
/*
0 Não matriculado Bloqueado ======OK
1 Matriculado Liberado ======OK
2 Trancado Bloqueado ======OK
3 Cancelado Excluído ======OK
4 Transferido Excluído ======OK
5 Formado Excluído ======OK
6 Calouro Desistente Excluído ======OK
7 Desligado Excluído ======OK
*/
}
//===================================================================================
fclose($fp); // fecha o arquivo
//===================================================================================
$output = shell_exec('arquivo.bat');
echo "<pre>$output</pre>";
//===================================================================================
echo "TERMINOU";
?>
Hoje o meu PHP faz uso o dsadd e dsmod (Ferramentas de linha de comando do windows server 2003).
shell_exec('arquivo.bat');
Queria portar isso pra java, pois estou com um mini projeto para fazer o seguinte;
Fazer a importação que o PHP faz acima;
E agora é que o bicho pega;
Os usuarios podem logar somente uma maquina por vez, quando o mesmo usuario tentar logar em outra maquina não consseguira;
O sistema tem que rodar no tray da maquina cliente (Windows XP SP3) do laboratorio, de minuto em minuto ele vai mandar para um banco de dados (bd_logados) o usuario que esta logado e a maquina;
Ex: usuario123 logado em maquina4lab1
quando o usuario123 tentar logar em outra maquina (maquina5lab1) por exemplo o software que esta rodando no tray desta maquina vai mandar para o banco;
usuario123 logado em maquina5lab1
====================================
No servidor ficará rodando o software na versão de verificação
ele vai ficar procurando no banco se exsitem usuarios duplicados
quando ele encontrar 2 X o usuario (No caso usuario123) ele manda uma mensagem do tipo "Usuario logado em duas maquinas" e manda fazer logof (Pode ate usar o recurso nativo do windows
shutdown -l -f -t 10 -c "Usuario logado em duas maquinas"
Vai funcionar mais ou menos como o limitlogin da microsoft, ( http://support.microsoft.com/kb/237282/pt )depois tem outras funcionalidades, tipo;
instalação de softares,
monitoramento remoto,
e por ai vai;
=================================
Por isso a questão de usar diretamente o AD e não o LDAP, pois o AD trata de forma diferente alguns atributos do usuario;
Isso impossibilita algumas de nossas tarefas pois usamos quase todas as guias preenchidas da propiedade do usuario;
=================================
Como eu havia dito,
LDAP ajuda mas o ideal é trabalhar direto no AD.
Atts,
Alisson Eloi
Alisson,
você conseguiu fazer a integração, estou enfrentando a mesma demanda…
Abs,
Carlos