Como Adicionar Autorização de Segurança <add>
Visão geral
O elemento <add>
da coleção <authorization>
define uma regra de autorização que permitirá ou negará acesso a usuários, grupos, usuários anônimos ou todos os usuários especificados.
O atributo accessType especifica um dos dois tipos de regras de autorizaçã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.
As regras de autorização podem ser direcionadas ainda mais para uma lista de verbos HTTP e usuários ou grupos específicos.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <add> não foi modificado no IIS 10.0. |
IIS 8.5 | O elemento <add> não foi modificado no IIS 8.5. |
IIS 8.0 | O elemento <add> não foi modificado no IIS 8.0. |
IIS 7.5 | O elemento <add> não foi modificado no IIS 7.5. |
IIS 7.0 | O elemento <add> da coleção <authorization> foi introduzido no 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 do IIS (Serviços de Informações da Internet):
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 do IIS (Serviços de Informações da Internet).
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 do IIS (Serviços de Informações da Internet).
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 do IIS (Serviços de Informações da Internet).
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 do IIS (Serviços de Informações da Internet).
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
Atributos
Atributo | Descrição | ||||||
---|---|---|---|---|---|---|---|
accessType |
Atributo de enumeração necessário. O atributo accessType pode ser um dos valores possíveis a seguir.
|
||||||
roles |
Atributo de cadeia de caracteres opcional. Especifica as funções de uma regra de autorização. |
||||||
users |
Atributo de cadeia de caracteres opcional. Especifica os usuários de uma regra de autorização. Vários usuários podem ser adicionados a uma lista separada por vírgulas. Além disso, os identificadores especiais a seguir foram definidos.
|
||||||
verbs |
Atributo de cadeia de caracteres opcional. Especifica os verbos HTTP para uma regra de autorização. Se esse valor for deixado em branco ou não for especificado, a regra será aplicada a todos os verbos HTTP. |
Elementos filho
Nenhum.
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 como 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()