Translate this page now :



»Programação
»Programação.NET
»Banco de Dados
»Webdesign
»Office
» Certificações Microsoft 4
»Treinamentos4
»Programação 4
»Webdesign«
»Office & User Tips«
»Grupos de Usuários
»Células Acadêmicas«
intcontpiada : 118
Xadrez
Você já está cadastrado e participa do grupo de usuários de sua cidade ? Se não, comente o porque.
 
 
Faça um pequeno teste com 10 questões de VB
.:.
Teste seus conhecimentos em Visual Basic, SQL Server e ASP 3.0 com nossas provas on-line
.:.
Aprimore seus conhecimentos em programação com nosso treinamento on-line de lógica de programação
.:.
Veja nosso calendário de treinamentos
Gostou da Página?
Então

para um amigo!
 





Por Dennes Torres
dennes@bufaloinfo.com.br
Dennes Torres possui as certificações MCAD, MCSD,MCSE, MCDBA e MCT. Atualmente atua Como diretor da Búfalo Informática, líder do grupo de usuários DevASPNet no Rio de Janeiro e membro da liderança dos grupos getWindows e devSQL, também do Rio de Janeiro, podendo sempre ser encontrado na lista de discussão do grupo DevASPNet (devaspnet-subscribe@yahoogrupos.com.br) bem como nas reuniões do grupo. Mantém dois blogs em http://cidadaocarioca.blogspot.com

Autenticação no IIS

Pesquisa personalizada
Pesquisar Dicas:







O sistema operacional garante a segurança do ambiente fazendo com que tudo que seja realizado na máquina precise de uma identificação de um usuário, e que esta identificação tenha permissão para realizar a referida tarefa.

Quando utilizamos uma aplicação comum a identificação do usuário é o login do usuário na máquina. Mas quando utilizamos um serviço, tal como o IIS, muitas vezes nem ao menos existe usuário logado no servidor, então ele precisa de outras formas de fazer essa identificação.

O IIS pode ser configurado para identificar o usuário da máquina client. Isso funciona bem em uma intranet, pois o internet explorer, ao ser requisitado, transmite para o IIS a identificação de rede do usuário, garantindo a autenticação do mesmo. Na Web, porém, isso gera uma tela cinza solicitando informações de login e senha ao usuário, o que muitas vezes não é adequado.

A Integrated Windows Authentication determina que o usuário do Windows seja reconhecido pelo IIS

O IIS, quando não está configurado para identificar o usuário em uma intranet, utiliza para o acesso a recursos um usuário anônimo chamado IUSR_<máquina>

Essa configuração de usuário gera influência quando acessamos outros recursos da rede através do IIS. Por exemplo, banco de dados.

O SQL Server tem duas formas de nos autenticarmos : SQL Authentication e Windows Authentication. A SQL Authentication, apesar de estar sendo muito usada, não é recomendável. Ela exige que passemos o login e senha do usuário pela string de conexão e isso normalmente é transmitido pela rede sem nenhuma criptografia, permitindo que essa senha seja capturada com ferramentas de rede.

Então, para evitarmos isso, devemos utilizar a Windows Authentication. Com a Windows Authentication o SQL Server reconhecerá a identidade do usuário do Windows que está realizando a requisição para ele, sem que para isso tenha que haver transmissão de senha pela rede.

Então no ASP 3, quando resolvemos utilizar uma string de conexão a banco com Windows Authentication, temos que dar permissão para o usuário IUSR_<máquina> para acessar o SQL Server. Como esse usuário é um usuário local, em produção somos obrigados a personalizar o IUSR_<máquina> . Isso porque normalmente o servidor SQL Server estará em uma máquina diferente do IIS e o usuário IUSR_<máquina> não terá permissão de acessá-lo.

Personalização do usuário anônimo no IIS

No Framework 1.0 o ASP.NET adotou o usuário ASPNET. Então passamos a ter alguma independencia do usuário anônimo do IIS, podendo dar permissão de banco para o usuário ASPNET. Mas em produção ainda se tornou necessário personalizar o usuário, pois o ASPNET também é local, então personalizamos o usuário através da tag <identity> no Web.Config.

Mas no Windows 2003, que vem com IIS 6, isso mudou um pouquinho. O ASP.NET utiliza um usuário chamado Network Services. Esse usuário é um usuário especial do windows, não pode ganhar permissões dentro do banco, então ficamos com um problema até mesmo para pequenos testes.

Para resolver podemos inserir no Web.Config a tag <identity impersonate="true" /> . Com essa tag o ASP.NET passa a assumir o usuário do sistema. Mas se o IIS não estiver configurado para identificar o usuário do browser, o usuário que o ASP.NET irá utilizar é o IUSR_<MÁQUINA>, o que nos devolve para o uso do usuário anônimo do IIS, exatamente como fazíamos no ASP 3.

É interessante ai observar que a mesma aplicação pode funcionar de formas diferentes entre o IIS 5 e o IIS 6 : No IIS 5 a tag impersonate do identity tentará identificar o usuário do client, enquanto que no IIS 6 isso não acontecerá se a Windows Authentication no IIS 6 estiver desabilitada.

Então depois de inserir esta tag no Web.Config devemos ainda inserir o IUSR_<máquina> no SQL Server. Lembrando que em produção precisamos personalizar este usuário, pois ele é local.

Outra alternativa no IIS 6, ao invés de utilizarmos o identity impersonate (e gerarmos assim arquivos web.config que só funcionarão no IIS 6, não no 5) é alterarmos a configuração de usuário utilizada, trocarmos o network services por outro usuário.

A forma como isso é feito no IIS 6 mudou bastante. No IIS 6 temos os Application Pools. São como processos nos quais podemos ter diversos sites e diretórios virtuais, (ou seja, aplicações), rodando. É no application pool que configuramos o usuário que será utilizado pelo IIS e temos ai a possibilidade de fazer com que o IIS passe a utilizar o IUSR_<máquina> ao invés do network services, fazendo com que atue de forma semelhante ao IIS 5.

As mesmas regras também valem para acesso a outros recursos, como por exemplo acesso a disco no servidor Web. Nesse caso as permissões precisam ser dadas ao usuário adequado dentro das configurações do NTFS, no disco.

 



Envie seus comentários sobre este artigo

Nome :

E-mail :

Comentários :


Avise-me quando houverem novos comentários nesta página

Veja abaixo os comentários já enviados :

Nome : 1 E-Mail : 1
-1'
Nome : -1' E-Mail : 1
1
Nome : 1 E-Mail : -1'
1
Nome : 1 E-Mail : 1
1
Nome : 1 E-Mail : 1
1
Nome : 1 E-Mail : 1
1