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
- 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.
. – 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
- 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.
– Clique em OK. - Clique em Fechar.
Windows Server 2008 R2 ou Windows Server 2008
- 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.
– Na página Confirmar Seleções de Instalação, clique em Instalar. – Na página Resultados, clique em Fechar.
Windows Vista ou Windows 7
- 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.
Instruções
Como adicionar uma regra de autorização
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).
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.
No painel Página Inicial, clique duas vezes em Regras de Autorização.
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...
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:
Exemplo nº 2: adicionar uma regra de negação para um usuário específico para todos os verbos HTTP:
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()