Como segura uma aplicação do ASP.NET utilizando a segurança do Windows

Traduções de Artigos Traduções de Artigos
Artigo: 315736 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

O ASP.NET pode ser utilizado em conjunto com o Microsoft (IIS) para autenticar utilizadores Web consoante as respectivas credenciais de conta de utilizador Microsoft Windows 2000 ou Windows Server 2003. O motor de execução do ASP.NET também pode ser configurado para representar utilizadores da Web ou para utilizar a sua própria identidade Windows quando acede a recursos tais como bases de dados ou ficheiros.


Requisitos

Necessita do seguinte hardware, software e infra-estrutura de rede para executar os procedimentos descritos neste artigo:
  • Windows 2000 Server Service Pack 2
  • IIS 5.0
  • Windows Server 2003 com o IIS 6.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
Terá também de experiência com o seguinte:
  • Desenvolvimento do ASP.NET com o Visual Basic .NET
  • Administração do IIS
  • Administração de conta de utilizador do Windows 2000

Como programar o Web Site

Este procedimento, irá criar uma Web do ASP.NET simples aplicação, que será protegida utilizando a autenticação do Windows.
  1. Inicie o Visual Studio .NET e, em seguida, crie uma nova aplicação Web do ASP.NET do Visual Basic com o nome "WindowsSite."
  2. Arraste um controlo de rótulo da caixa de ferramentas para o formulário Web WebForm1.aspx e, em seguida, defina a propriedade ID para authUserPrincipalLabel .
  3. Arraste um segundo controlo de etiqueta da caixa de ferramentas para o formulário Web WebForm1.aspx e, em seguida, defina a propriedade ID para aspPrincipalLabel .
  4. Faça duplo clique em WebForm1.aspx para ver a janela código e adicione a seguinte instrução importações acima declaração da classe:
    Imports System.Security
    						
    adicionar o seguinte código ao procedimento de evento Page_Load:
    Dim authUserName As String
    Dim aspUserName As String
    authUserName = User.Identity.Name
    aspUserName = Principal.WindowsIdentity.GetCurrent.Name
    authUserPrincipalLabel.Text = "You are: " & authUserName
    aspPrincipalLabel.Text = "This page runs as: " & aspUserName
    					
  5. Ver ficheiro Web.config do projecto e, em seguida, localize o elemento de authentication. Verifique se o atributo de modo tem um valor do Windows .
  6. Criar e guardar o projecto.
  7. Execute o projecto e, em seguida, confirme que a página é apresentada a seguinte mensagem:
    • No Windows 2000
      São:
      Esta página é executado como: DomainOrServer \ASPNET
    • No Windows Server 2003
      São:
      Esta página é executado como: DomainOrServer \NETWORK SERVICE
    Nota O nome de utilizador não é apresentado uma vez que não tenha sido autenticado pelo IIS; acesso anónimo ainda está activado.
  8. Saia do Internet Explorer para parar o projecto.

Como desactivar o acesso anónimo

Este procedimento configurará o IIS para requerer a autenticação integrada do Windows para o site WindowsSite.
  1. Minimizar o Visual Studio e reinicie os serviços de Internet Gestor do grupo de programa ferramentas administrativas.
  2. Expanda o servidor e o respectivo Web site predefinido, clique com o botão direito do rato no site WindowsSite e, em seguida, clique em Propriedades .
  3. No separador Segurança de directórios na caixa de diálogo Propriedades de WindowsSite , clique no botão Editar a secção "Controlo de acesso anónimo e autenticação".
  4. Clique para desmarcar a caixa de verificação acesso anónimo (Anonymous access) , verifique se a caixa de verificação autenticação integrada do Windows está seleccionada e, em seguida, clique em OK .
  5. Clique em OK para fechar a caixa de diálogo Propriedades de WindowsSite .
  6. Mude para o Visual Studio e, em seguida, execute o projecto. Confirme que a página é apresentada a seguinte mensagem:
    • No Windows 2000
      Tem a: Your Windows user name
      Esta página é executado como: DomainOrServer \ASPNET
    • No Windows Server 2003
      Tem a: Your Windows user name
      Esta página é executado como: DomainOrServer \NETWORK SERVICE
    Nota Pode ter sido autenticado através da conta do Windows. Se não tinha sido sessão iniciada Windows, seria ter sido lhe Windows nome de utilizador e palavra-passe.
  7. Saia do Internet Explorer para parar o projecto.

Autorização

No ASP.NET, é possível permitir autorização para a aplicação quando disponibilizar definições adicionais dentro do Web.config ficheiro. Pode permitir que determinados utilizadores determinados grupos de acesso ou a estas definições adicionais. Os exemplos seguintes descrevem esta capacidade. Para permitir o acesso a todos os utilizadores existentes ao grupo do Windows NT é designado por "Gestores", utilize o seguinte código:
<configuration>
     <system.web>
       <authorization>
         <allow roles="domainname\Managers" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
para permitir o acesso a apenas determinados utilizadores, utilize o seguinte código:
<configuration>
     <system.web>
       <authorization>
         <allow users="domainname\user1,domainname\user2,domainname\user3" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
Nota que pode fazer referência vários utilizadores ou funções quando utiliza uma lista separada por vírgulas.


Como activar a representação

Este procedimento configurará a aplicação WindowsSite para representar o utilizador do Windows que está aceder ao mesmo.
  1. No Visual Studio, visualize o ficheiro Web.config para o projecto WindowsSite.
  2. Adicione o elemento seguinte após o elemento de authentication:
    <identity impersonate = "true" />
    					
  3. Guarde Web.config.
  4. Execute o projecto. Confirme que a página é apresentada a seguinte mensagem (tenha em atenção que o motor de execução de ASP.NET utilizará as credenciais do Windows para aceder a recursos em seu nome):
    Tem a: Your Windows user name
    Esta página é executado como: Your Windows user name
  5. Saia do Internet Explorer para parar o projecto.

Como atribuir um principal personalizada

Neste procedimento, irá configurar a aplicação WindowsSite para utilizar um principal de segurança personalizado:
  1. Inicie a funcionalidade de gestão de computadores a partir do grupo de programas ferramentas administrativas. Criar uma conta de utilizador nova do Windows 2000 denominada "WindowsSite", com uma palavra-passe "palavra-passe" (tenha em atenção se o servidor é um controlador de domínio e utilize a ferramenta computadores e utilizadores do Active Directory).
  2. Clique para desmarcar o utilizador deve alterar a palavra-passe no próximo início de sessão caixa de verificação. NOTA: A principal personalizada que seleccionou tem de ter as permissões descritas no seguinte artigo da base de dados de conhecimento:
    317012INFO: O processo e pedido de identidade no ASP.NET
  3. Quando a conta WindowsSite foi criada, feche a ferramenta administrativa que utilizou para criá-la.
  4. No Visual Studio, visualize o ficheiro Web.config para o projecto WindowsSite.
  5. Edite o elemento de identity para ler da seguinte forma:
    identity impersonate = "true"
           userName = "DomainOrServerName\WindowsSite"
           password = "password"/>
    
    onde DomainOrServerName é ou o nome do Windows 2000 ou domínio do Windows Server 2003 (num ambiente de domínio) ou do computador (num ambiente de grupo de trabalho).
  6. Guarde Web.config.
  7. Execute o projecto. Confirme que a página é apresentada a seguinte mensagem:
    Tem a: Your Windows user name
    Esta página é executado como: DomainOrServerName \WindowsSite
    Nota Aspnet_wp.exe utilizará as credenciais do Windows que especificou para aceder a recursos em seu nome.
  8. Saia do Internet Explorer para parar o projecto.
Nota A identidade do processo que representa um utilizador específico num thread deve ter o privilégio de actuar como parte do sistema operativo .
  • No Windows 2000, por predefinição, o Aspnet_wp.exe processo é executado numa conta de computador com o nome ASPNET.
  • No Windows Server 2003, por predefinição, o Aspnet_wp.exe processo é executado numa conta de computador é denominado serviço de rede. No entanto, esta conta não tem os privilégios correctos para representar um utilizador específico. Recebe uma mensagem de erro se tentar representar um utilizador específico.
Para contornar este problema, utilize um dos seguintes métodos:
  • Conceder a actuar como parte do sistema operativo privilégio à conta ASPNET (a conta com menos privilégios).

    Nota Apesar de poder utilizar este método para resolver o problema, a Microsoft não recomenda este método.
  • Altere a conta que o processo Aspnet_wp.exe é executada na conta de sistema na secção de configuração <processmodel> do ficheiro Machine.config.
Para mais informações sobre o processo ASPNET, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa291339(VS.71).aspx

Resolução de problemas

Segurança do Windows num site Web do ASP.NET pode ser mais avançada (e complicada) utilizando as permissões de ficheiros NTFS. Se a conta do Windows não tiver permissões para ler uma página Web do ASP.NET, o IIS irá pedir-lhe credenciais alternativas do Windows. Do mesmo modo, se uma página ASP.NET tenta aceder a um ficheiro principal de segurança utilizando o motor de execução do ASP.NET não tem acesso para, vai ser-lhe credenciais alternativas. NTFS permissões são uma forma eficaz para controlar o acesso para subsecções de um Web site.

Referências

Para mais informações sobre como utilizar a autenticação do Windows num Web site ASP.NET, consulte o tópico de "Segurança" de aplicação Web do ASP.NET na documentação do .NET Framework.

Além disso, consulte o artigo "Autenticação no ASP.NET: .NET Security Guidance" no seguinte Web site da MSDN:
http://msdn2.microsoft.com/en-us/library/ms978378.aspx

Propriedades

Artigo: 315736 - Última revisão: 3 de dezembro de 2007 - Revisão: 3.11
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft Internet Information Services 5.0
  • Microsoft ASP.NET 1.1
  • Microsoft Internet Information Services 6.0
Palavras-chave: 
kbmt kbconfig kbhowtomaster kbinfo kbsecurity kbweb KB315736 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315736

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com