Fórum Autenticação do Sistema Operacional Windows(IIS) no Intraweb #273306
21/03/2005
0
Prezados senhores, depois do sufoco que passei gostaria de compartilhar o conhecimento que adquiri. Não achei essas informaçãos em lugar algum. Vou passar uma receita de bolo, mas outros caminhos podem ser usados.
Para autenticar automaticamente pelo Domínio do Windows, é necessário usar o servidor Web IIS. Desconheço essa funcionalidade no Apache.
1- É preciso habilitar essa função. Vá em Control Pane/Administrative Tools/Internet Information Services (se não tiver essa opção, tem que instalar o IIS antes.)
2- Selecione o serviço ´Default Web Site´ com o botão direito do mouse e vá em propriedades. Na aba ´Directory Security´, clique no botão ´Edit´ de ´Anonymous access and authentication control´.
3- Marque a opção ´Integrated Windows authentication´. Essa opção fará que o IE consiga se entender com o IIS. Porém, (pelo menos eu não consegui), não funciona com outros navegadores (testei o Firefox e o Opera, ambos no Windows e no Linux). Para isso funcionar, nessa mesma tela é preciso habilitar a opção ´Basic authentication´ também. Porém, como o próprio texto diz, a senha é enviada sem criptografia pela rede, um risco de segurança. Porém, vc consegue usar no Linux o sistema desejado (a minha máquina é). É questão de assumir o risco ou não. Eu ainda não decidi. :-)
Até aí é fácil e de conhecimento público. O seu programa Delphi feito no Intraweb no modo ISAPI só aceitará clientes que o IIS deixe passar. Mas como pegar o nome do usuário que o IIS autenticou?
4 - É preciso usar uma variável do ASP, que funciona no Delphi também. No form da sua aplicação, execute o seguinte comando:
WebApplication.Request.GetFieldByName(´LOGON_USER´)
Ele retornará o nome do usuário do seu cliente web. Gostaria de tentar esse comando no ServerController, mas ainda não consegui.
Pronto, é isso. Agora na sua rede Windows os usuários não precisam informar usuário/senha para usar o sistema. Acredito que tenha um comando parecido nas outras tecnologias web do delphi (webSnap, etc). É só chamar a variável ´LOGON_USER´.
Para autenticar automaticamente pelo Domínio do Windows, é necessário usar o servidor Web IIS. Desconheço essa funcionalidade no Apache.
1- É preciso habilitar essa função. Vá em Control Pane/Administrative Tools/Internet Information Services (se não tiver essa opção, tem que instalar o IIS antes.)
2- Selecione o serviço ´Default Web Site´ com o botão direito do mouse e vá em propriedades. Na aba ´Directory Security´, clique no botão ´Edit´ de ´Anonymous access and authentication control´.
3- Marque a opção ´Integrated Windows authentication´. Essa opção fará que o IE consiga se entender com o IIS. Porém, (pelo menos eu não consegui), não funciona com outros navegadores (testei o Firefox e o Opera, ambos no Windows e no Linux). Para isso funcionar, nessa mesma tela é preciso habilitar a opção ´Basic authentication´ também. Porém, como o próprio texto diz, a senha é enviada sem criptografia pela rede, um risco de segurança. Porém, vc consegue usar no Linux o sistema desejado (a minha máquina é). É questão de assumir o risco ou não. Eu ainda não decidi. :-)
Até aí é fácil e de conhecimento público. O seu programa Delphi feito no Intraweb no modo ISAPI só aceitará clientes que o IIS deixe passar. Mas como pegar o nome do usuário que o IIS autenticou?
4 - É preciso usar uma variável do ASP, que funciona no Delphi também. No form da sua aplicação, execute o seguinte comando:
WebApplication.Request.GetFieldByName(´LOGON_USER´)
Ele retornará o nome do usuário do seu cliente web. Gostaria de tentar esse comando no ServerController, mas ainda não consegui.
Pronto, é isso. Agora na sua rede Windows os usuários não precisam informar usuário/senha para usar o sistema. Acredito que tenha um comando parecido nas outras tecnologias web do delphi (webSnap, etc). É só chamar a variável ´LOGON_USER´.
Jeanlavalle
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)