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: 

ExtendedProtection

Erick Albuquerque | Moderator at Technet Brasil
http://iisbrasil.wordpress.com/ | http://erickalbuquerque.com.br/
Twitter: @_ealbuquerque