Tipos de autenticação no IIS 7/7.5 (pt-BR)
Tipos de autenticação no IIS 7/7.5
Autenticação Anônima
A Autenticação anônima permite que qualquer usuário acesse qualquer conteúdo público sem fornecer usuário ou senha. Por padrão, a autenticação Anônima está habilitada no IIS 7.
Para habilitar a Autenticação anônima por linha de comando, utilize:
appcmd set config /section:anonymousAuthentication /enabled:true
Para desabilitar, utileze:
appcmd set config /section:anonymousAuthentication /enabled:false
ASP.NET Impersonation
Utilizado quando você quiser executar o aplicativo ASP.NET em um contexto de segurança diferente do padrão do aplicativo ASP.NET. Por padrão, fica desabilitado.
Para habilitar o ASP.NET Impersonation, utilize:
appcmd set config /commit:WEBROOT /section:identity /impersonate:true
Para desabilitar, utilize:
appcmd set config /commit:WEBROOT /section:identity /impersonate:false
Como opção, você pode definir uma conta que o IIS deve personificar, usando a sintaxe:
**appcmd set config /commit:WEBROOT /section:identity /userName: usuario /password: senha
OBS: Quando você usar o Appcmd.exe para configurar o elemento de identidade no nível global no IIS 7, deverá especificar /commit:WEBROOT no comando, de forma que as alterações de configuração sejam feitas no arquivo Web.config raiz em vez de no ApplicationHost.config.
Autenticação Básica
Autenticação básica exige que usuários forneçam um nome de usuário e senha válidos para acessarem o conteúdo. É muito utilizado quando você deseja restringir o acesso a algum conteúdo mas não tudo.
Para habilitar a Autenticação Básica, utilize:
appcmd set config /section:basicAuthentication /enabled:true
Para desabilitar, utilize:
appcmd set config /section:basicAuthentication /enabled:false
Certificate Mapping Authentication
Permite a autenticação automática dos usuários que efetuarem logon com esses certificados, sem exigir outros métodos de autenticação.
Links de Apoio:
Map Client Certificates One-to-One
http://technet.microsoft.com/en-us/library/cc771382(WS.10).aspx
Map Client Certificates Many-to-One
http://technet.microsoft.com/en-us/library/cc772272(WS.10).aspx
Map Client Certificates by Using Active Directory
http://technet.microsoft.com/en-us/library/cc770480(WS.10).aspx
Autenticação Digest
A Autenticação Digest usa um controlador de domínio Windows para autenticar usuários que solicitam acesso ao conteúdo do servidor WEB.
OBS: Para utilizar a Autenticação Digest e’ necessário desabilitar a autenticação anônima.
Para habilitar a Autenticação Digest, utilize:
appcmd set config /section:digestAuthentication /enabled:true
Para desabilitar, utilize:
appcmd set config /section:digestAuthentication /enabled:false
Autenticação de Formularios (Forms Authentication)
A Autenticação por formulários usa redirecionamento no lado do cliente para encaminhar usuários sem autenticação a um formulário em HTML em que eles podem inserir as credenciais, que normalmente utiliza um usuário e senha.
Para habilitar a Autenticação de Formulários, utilize:
appcmd set config /commit:WEBROOT /section:system.web/authentication /mode:Forms | Windows | Passport
Para desabilitar, utilize:
appcmd set config /commit:WEBROOT /section:system.web/authentication /mode:none
OBS: Quando você usa o Appcmd.exe para configurar o elemento de autenticação no nível global do IIS 7, é preciso especificar /commit:WEBROOT no comando para que as alterações de configuração sejam feitas no arquivo Web.config raiz, e não em ApplicationHost.config.
Autenticação do Windows
Normalmente utilizado quando quiser que os clientes sejam autenticados usando o protocolo NTLM ou Kerberos.
A autenticação do Windows, que inclui a autenticação NTLM e Kerberos v5, é mais adequada para um ambiente de intranet pelos seguintes motivos:
- Os computadores cliente e servidores Web estão no mesmo domínio.
- Os administradores podem se certificar de que cada navegador cliente seja o Internet Explorer 7.0 ou versões posteriores.
- As conexões proxy HTTP, que não são compatíveis com NTLM, não são necessárias.
- O Kerberos v5 requer uma conexão com Active Directory, que não é viável em um ambiente de Internet.
Para habilitar a Autenticação do Windows, utilize:
appcmd set config /section:windowsAuthentication /enabled:true
Para desabilitar, utilize:
appcmd set config /section:windowsAuthentication /enabled:false
Como opção, você pode impor a autenticação do Windows para que use NTLM, usando a seguinte sintaxe:
appcmd set config /section:windowsAuthentication /-providers.[value='Negotiate']
Configurar a proteção extendida no IIS 7.5 (Valido apenas no IIS 7.5, Windows Server 2008 R2)
**
**
A proteção estendida para o IIS 7.5 aprimora a funcionalidade existente de Autenticação do Windows de modo a reduzir a retransmissão de autenticação ou os ataques “intermediários”. Essa redução é realizada pelo uso das informações de segurança que são implementadas por meio dos mecanismos de segurança:
- Informações de associação de canal que são especificadas por meio de um CBT (Token de Associação de Canal), que é basicamente usado para conexões SSL.
- Informações de associação de serviço que são especificadas por meio de um SPN (Nome da Entidade de Serviço), que é basicamente usado para conexões que não usam SSL, ou quando uma conexão é estabelecida por meio de um cenário que fornece descarregamento de SSL, como um servidor proxy ou um servidor de balanceamento de carga.
Para habilitar a proteção estendida, utilize:
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/windowsAuthentication /extendedProtection.tokenChecking:"Allow" /extendedProtection.flags:"None" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/windowsAuthentication /+"extendedProtection.[name='HTTP/www.contoso.com']" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/windowsAuthentication /+"extendedProtection.[name='HTTP/contoso.com']" /commit:apphost
Para maiores informações, acesse:
Erick Albuquerque | Moderator at Technet Brasil
http://iisbrasil.wordpress.com/ | http://erickalbuquerque.com.br/
Twitter: @_ealbuquerque