Autorização de Segurança <authorization>

Visão geral

O elemento <authorization> permite configurar as contas de usuário que podem acessar seu site ou aplicativo. Usar a autorização em combinação com a autenticação para proteger o acesso ao conteúdo no servidor. A autenticação confirma a identidade de um usuário, enquanto a autorização determina quais recursos os usuários podem ou não acessar.

Os IIS definem dois tipos de regras de autorização, regras de permissão e regras de negação:

  • As regras de permissão permitem definir as contas de usuário ou grupos de usuários que podem acessar um site, um aplicativo ou todos os sites em um servidor.
  • As regras de negação permitem definir as contas de usuário ou grupos de usuários que não podem acessar um site, um aplicativo ou todos os sites em um servidor.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <authorization> não foi modificado nos IIS 10.0.
IIS 8.5 O elemento <authorization> não foi modificado nos IIS 8.5.
IIS 8.0 O elemento <authorization> não foi modificado nos IIS 8.0.
IIS 7.5 O elemento <authorization> não foi modificado nos IIS 7.5.
IIS 7.0 O elemento <authorization> foi introduzido nos IIS 7.0.
IIS 6,0 A coleção <authorization> substitui as propriedades de metabase AzEnable, AzStoreName, AzScopeName e AzImpersonationLevel dos IIS 6.0.

Instalação

Para dar suporte e configurar a autorização para sites e aplicativos em seu servidor Web, você deve instalar o módulo de autorização de URL. Para fazer isso, execute as etapas a seguir.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor. – No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos. – No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar. Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, expanda Segurança e selecione Autorização de URL. Clique em Avançar.
    Image of Web Server and Security pane expanded with U R L Authorization highlighted. . – Na página Selecionar recursos, clique em Avançar. – Na página Confirmar seleções de instalação, clique em Instalar. – Na página Resultados, clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows. Expanda Serviços de Informações da Internet, expanda Serviços da World Wide Web, expanda Segurança e, em seguida, selecione Autorização de URL.
    Image of World Wide Web Services and Security pane expanded and U R L Authorization selected.– Clique em OK.
  2. Clique em Fechar.

Windows Server 2008 R2 ou Windows Server 2008

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor. – No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS). – No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função. – Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione Autorização de URL e clique em Avançar.
    Screenshot of Security pane expanded in Select Role Services page of the Add Role Services Wizard with U R L Authorization selected.– Na página Confirmar Seleções de Instalação, clique em Instalar. – Na página Resultados, clique em Fechar.

Windows Vista ou Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle. – Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou Desativar Recursos do Windows. – Expanda Serviços de Informações da Internet, selecione Autorização de URL e, em seguida, clique em OK.
    Image of Internet Information Services pane expanded and U R L Authorization selected.

Instruções

Como adicionar uma regra de autorização

  1. Abra o Gerenciador de Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador de Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador de Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
  2. No painel Conexões, expanda o nome do servidor, expanda Sites e navegue até o site ou aplicativo no qual deseja configurar a autorização.

  3. No painel Página Inicial, clique duas vezes em Regras de Autorização.
    Image of Home pane with Authorization Rules highlighted.

  4. Para adicionar uma nova regra de autorização, no painel Ações, clique em Adicionar Regra de Permissão... ou Adicionar Regra de Negação...

  5. Aplique as configurações de autorização necessárias para seu site ou aplicativo e clique em OK. Por exemplo:

    • Exemplo nº 1: adicionar uma regra de permissão para todos os usuários para verbos HTTP específicos:
      Image of Adding an Allow rule for all users for specific H T T P verbs dialog box showing verbs typed in the box for Apply this rule to specific verbs.

    • Exemplo nº 2: adicionar uma regra de negação para um usuário específico para todos os verbos HTTP:
      Image of dialog box for Add Deny Authorization Rule for a specific user for all H T T P verbs.

      Observação

      Para editar ou excluir uma regra existente, selecione a regra no painel Regras de autorização e clique em Editar ou Remover no painel Ações. Se você clicar em Editar, será exibida uma caixa de diálogo que permite editar a regra. Essa caixa de diálogo é semelhante às caixas de diálogo Adicionar Regra de Autorização de Permissão e Adicionar Regra de Autorização de Negação.

Configuração

Você pode configurar o elemento <authorization> no nível do servidor no arquivo ApplicationHost.config ou no nível do site ou aplicativo no arquivo Web.config apropriado.

Você pode definir regras de autorização padrão para todo o servidor configurando regras de autorização no nível do servidor. Você pode remover, limpar ou substituir essas regras configurando regras mais específicas para seus sites ou aplicativos.

Atributos

Atributo Descrição
bypassLoginPages Atributo booliano opcional.

Especifica se a verificação de autorização deve ser ignorada para a página especificada como a página de logon da autenticação de formulários. Isso permite que usuários não autenticados acessem a página de logon para fazer logon.

O valor padrão é true.

Elementos filho

Elemento Descrição
add Elemento opcional.

Adiciona uma regra de autorização à coleção de regras de autorização.
remove Elemento opcional.

Remove uma referência a uma regra de autorização para a coleção de regras de autorização.
clear Elemento opcional.

Remove todas as referências a regras de autorização da coleção de regras de autorização.

Exemplo de configuração

O exemplo de configuração a seguir, quando incluído em um arquivo Web.config, remove as configurações de autorização padrão dos IIS, o que permite que todos os usuários acessem o conteúdo do site ou do aplicativo. Em seguida, ele configura uma regra de autorização que permite que apenas usuários com privilégios de administrador acessem o conteúdo.

<configuration>
   <system.webServer>
      <security>
         <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="" roles="Administrators" />
         </authorization>
      </security>
   </system.webServer>
</configuration>

Exemplo de código

Os exemplos a seguir adicionam uma regra de autorização de permissão que permite que os usuários do grupo de administradores acessem um site chamado Contoso.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authorization /+"[accessType='Allow',roles='administrators']"

Observação

Opcionalmente, você pode definir o parâmetro commit ao apphost ao usar o AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo ApplicationHost.config. em vez de no arquivo Web.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Contoso");
         ConfigurationSection authorizationSection = config.GetSection("system.webServer/security/authorization");
         ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();

         ConfigurationElement addElement = authorizationCollection.CreateElement("add");
         addElement["accessType"] = @"Allow";
         addElement["roles"] = @"administrators";
         authorizationCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim authorizationSection As ConfigurationSection = config.GetSection("system.webServer/security/authorization")
      Dim authorizationCollection As ConfigurationElementCollection = authorizationSection.GetCollection
      Dim addElement As ConfigurationElement = authorizationCollection.CreateElement("add")
      addElement("accessType") = "Allow"
      addElement("roles") = "administrators"
      authorizationCollection.Add(addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso");
var authorizationCollection = authorizationSection.Collection;

var addElement = authorizationCollection.CreateNewElement("add");
addElement.Properties.Item("accessType").Value = "Allow";
addElement.Properties.Item("roles").Value = "administrators";
authorizationCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso")
Set authorizationCollection = authorizationSection.Collection

Set addElement = authorizationCollection.CreateNewElement("add")
addElement.Properties.Item("accessType").Value = "Allow"
addElement.Properties.Item("roles").Value = "administrators"
authorizationCollection.AddElement(addElement)

adminManager.CommitChanges()