Pegar usuário logado na máquina cliente para login na Intranet

1,520 views
Skip to first unread message

Igor Santos

unread,
Nov 3, 2009, 9:20:46 AM11/3/09
to Lista PHP
Olá pessoal =)

Estou desenvolvendo um sistema de Intranet. O servidor é personalizado e o PHP 5.2 tá rodando como ISAPI.
Dá pra pegar o username do usuário que acessou a página pra poder autenticar no sisteminha da Intranet?

Uma ideia que me surgiu é pegar o IP ou nome do host remoto e depois acessar o AD em busca do usuário logado naquele endereço... Mas, segundo meu chefe, não rola porque precisa da senha de admin do AD pra fazer isso via LDAP.
Sugestões em torno disso também são apreciadas =D

Nota: não, não quero acessar o AD pra pegar os usuários. O banco já existe, gostaria de poupar o usuário de entrar com login e senha de novo, já que ele já tá logado no próprio PC com os dados que preciso.


Igor Santos
  Programador Web

Bruno Nascimento

unread,
Nov 3, 2009, 9:38:23 AM11/3/09
to list...@googlegroups.com
Da uma olhada se é isso??

http://trilib.com.br/wordpress/?p=197

Correções no código serão bem vindas.


2009/11/3 Igor Santos <igorsa...@gmail.com>



--
[]'s

Bruno Nascimento
www.dbrunonascimento.com.br

Eduardo Kraus

unread,
Nov 3, 2009, 9:57:10 AM11/3/09
to list...@googlegroups.com

Sim, precisa ser administrador para isso. Mais o AD tem como dar permissões especificas apenas para tipos de pesquisa.

Agora o que é mais fácil e não precisa de senha de ADM é usar a seneha do usuário para se autenticar. Ai ele terá que digitar a senha e esta senha você tenta se conectar ao AD. Se retornar TRUE ele esta logado, contrário erro.


Eduardo Kraus

Desenvolvedor
eduard...@gmail.com
blog.mxml.com.br
www.twitter.com/EduardoKraus



2009/11/3 Igor Santos <igorsa...@gmail.com>

Erick Couto

unread,
Nov 3, 2009, 11:28:00 AM11/3/09
to list...@googlegroups.com
já pensou em instalar um certificado de segurança SSL na máquina de cada usuário que acessar o sistema?
no certificado você especifica um campo para servir de ítem para consulta ao AD. Por exemplo o e-mail do certificado,
basta o usuário instalar o certificado na máquina e o seu sistema automaticamente busca no AD.

dessa forma vc não precisa de login.

2009/11/3 Igor Santos <igorsa...@gmail.com>

Igor Santos

unread,
Nov 3, 2009, 1:33:21 PM11/3/09
to LISTA PHP
Já vi a ideia do NTLM, mas os exemplos que vi são relacionados ao
Apache e estamos rodando um servidor personalizado... A princípio a
ideia parece funcionar, mas é pra segunda opção.

Quanto às outras... Não é uma opção real instalar alguma coisa em cada
uma das estações, nem pedir dados do usuário, já que a ideia é **não**
pedir nenhuma informação.

EStamos considerando fazer uma consulta via LDAP, baseada no IP do
usuário, para pegar quem está logado na máquina, já que o servidor em
que vai rodar a página é uma máquina trusted para o AD.

A princípio, parece ser uma ideia razoável.
O NTLM também parece ser legal, mas falta ver como isso funcionaria.


On 3 nov, 12:38, Bruno Nascimento <dbruno.nascime...@gmail.com> wrote:
> Da uma olhada se é isso??
>
> http://trilib.com.br/wordpress/?p=197
>
> Correções no código serão bem vindas.
>
> 2009/11/3 Igor Santos <igorsanto...@gmail.com>

WILT::ON

unread,
Nov 4, 2009, 7:48:25 AM11/4/09
to list...@googlegroups.com


Fiz isso uma vez, mas só funciona no Internet Explorer:

function WinUser()
{
    var actvx = new ActiveXObject("WScript.Shell");
    var regPath = "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultUserName";
    var winUser = actvx.RegRead(regPath);
    return winUser;
   
}

Encontrei esse link com informações de como obter o usuário logado pelo firefox, mas não testei.

http://social.msdn.microsoft.com/forums/pt-BR/aspnetpt/thread/7f3067e4-8cfa-49f7-9d6e-9eb34cbf0b41/

2009/11/3 Igor Santos <igorsa...@gmail.com>

Igor Santos

unread,
Nov 4, 2009, 2:27:43 PM11/4/09
to LISTA PHP
Eu já vi isso... Usar JS+ActiveX é meio problemático porque só
funciona no IE, pede pro usuário confirmar sempre que rola, e é muito
mole de burlar em qualquer browser decente se o usuário tiver algum
conhecimento.

Daí pro cara conseguir acesso a todos os emails do dono da empresa é
um pulo, se ele souber o login do cara. hehehe


On 4 nov, 10:48, "WILT::ON" <wiltonb...@gmail.com> wrote:
> Fiz isso uma vez, mas só funciona no Internet Explorer:
>
> function WinUser()
> {
>     var actvx = new ActiveXObject("WScript.Shell");
>     var regPath = "HKLM\\SOFTWARE\\Microsoft\\Windows
> NT\\CurrentVersion\\Winlogon\\DefaultUserName";
>     var winUser = actvx.RegRead(regPath);
>     return winUser;
>
> }
>
> Encontrei esse link com informações de como obter o usuário logado pelo
> firefox, mas não testei.
>
> http://social.msdn.microsoft.com/forums/pt-BR/aspnetpt/thread/7f3067e...
>
> 2009/11/3 Igor Santos <igorsanto...@gmail.com>

Eduardo Kraus

unread,
Nov 4, 2009, 7:11:14 PM11/4/09
to list...@googlegroups.com

O NTLM é a coisa mais fácil do mundo de burlar. Fiz um projeto usando o NTLM no Adobe Acrobat Conenct e era muito simples entrar com qualquer usuário no sistema.

Então cuidado pois segurança não existe em produtos M$.




2009/11/3 Igor Santos <igorsa...@gmail.com>

Bruno Nascimento

unread,
Nov 11, 2009, 1:09:02 PM11/11/09
to LISTA PHP
Igor, qual opção você escolheu?

On 4 nov, 22:11, Eduardo Kraus <eduardokr...@gmail.com> wrote:
> O NTLM é a coisa mais fácil do mundo de burlar. Fiz um projeto usando o NTLM
> no Adobe Acrobat Conenct e era muito simples entrar com qualquer usuário no
> sistema.
>
> Então cuidado pois segurança não existe em produtos M$.
> *
> Eduardo Kraus*
> Desenvolvedor
> eduardokr...@gmail.com
> blog.mxml.com.brwww.twitter.com/EduardoKraus
>
> 2009/11/3 Igor Santos <igorsanto...@gmail.com>
Reply all
Reply to author
Forward
0 new messages