Como aceder a ficheiros de rede a partir de aplicações do IIS


Recomendamos vivamente que todos os utilizadores actualizem para o Microsoft Internet Information Services (IIS) versão 7.0 em execução no Microsoft Windows Server 2008. O IIS 7.0 aumenta significativamente a segurança das infra-estruturas da Web. Para mais informações sobre tópicos relacionados com a segurança do IIS, visite o seguinte Web site da Microsoft:Para mais informações sobre o IIS 7.0, visite o seguinte Web site da Microsoft:

NESTA TAREFA

Sumário


Este artigo fornece informações sobre problemas de acesso a ficheiros num computador diferente do servidor de Internet Information Server (IIS) a partir de uma extensão Internet Server API (ISAPI), a página ASP (Active Server Pages) ou o Common Gateway Interface (CGI) aplicação. Este artigo lista alguns dos problemas que estão envolvidos e alguns métodos possíveis para tornar este trabalho.

Embora este artigo destina-se principalmente no contexto do acesso a ficheiros em partilhas de rede, os mesmos conceitos se aplicam a ligações de pipe nomeado, bem como. Pipes nomeados são frequentemente utilizados para ligações do SQL Server e de chamada de procedimento remoto (RPC) e de comunicações de serviços de informação Internet (COM, Component Object Model). Em especial, se ligar a um SQL Server através da rede que está configurada para utilizar segurança integrada do Microsoft Windows NT, não é possível ligar devido os problemas que são descritos neste artigo. Também podem utilizar RPC e COM outros mecanismos de comunicação com esquemas de autenticação de rede semelhantes. Por conseguinte, os conceitos neste artigo podem aplicar a uma grande variedade de mecanismos de comunicação de rede que podem ser utilizados a partir de aplicações do IIS.


Tipos de autenticação e representação

Quando o IIS serviços de um pedido de HTTP, o IIS executa representação para que o acesso aos recursos para processar o pedido é limitado adequadamente. O contexto de segurança representado baseia-se o tipo de autenticação efectuado para o pedido. Os cinco tipos diferentes de autenticação disponíveis do IIS 4.0 são:



Authentication Type Impersonation Type

Anonymous Access (no authentication) Network
Auto Password Synchronization is
ON (ON=default)

Anonymous Access (no authentication) IIS Clear Text
Auto Password Synchronization is OFF

Basic Authentication IIS Clear Text

NT Challenge/Response Authentication Network

Client SSL Certificate Mapping Interactive

Tipos de token

Se é ou não é permitido o acesso a recursos de rede é dependente do tipo de token de representação, em que o pedido é processado.
  • Tokens de rede "Não" têm permissão para aceder a recursos de rede. (Os tokens de rede são denominados, porque este tipo de token tradicionalmente é criado por um servidor quando um utilizador é autenticado através da rede. Para permitir que o servidor para utilizar uma rede token para agir como um cliente de rede e aceder a outro servidor é designado por "delegação" e é considerado um orifício de segurança possíveis.)
  • Interactivos tokens são tradicionalmente utilizados quando autentica um utilizador local no computador. Tokens interactivos têm permissão para aceder a recursos através da rede.
  • Tokens de secção foram concebidos para fornecer um contexto de segurança em que executar rotinas. Batch tokens ter acesso à rede.
O IIS tem o conceito de um início de sessão de Texto simples . Início de sessão de Limpar texto denomina-se, devido ao facto de que o IIS tem acesso para o nome de utilizador e a palavra-passe em texto simples. Pode controlar se um início de sessão de Texto simples cria um token de rede, um token interactivo ou um token de processo, definindo a propriedade de LogonMethod na metabase. Por predefinição, os inícios de sessão de Texto simples recebem um token interactivo e têm acesso a recursos de rede. O LogonMethod pode ser configurado no servidor, o site, o directório virtual, directório ou o nível de ficheiro.


Acesso anónimo representa a conta configurada como o utilizador anónimo para o pedido. Por predefinição, o IIS tem uma conta de utilizador anónimo denominada IUSR _ < NomeComputador > que é representada quando processa um pedido não autenticados. Por predefinição o IIS 4.0 tem uma funcionalidade configurável denominada "Permitir palavra-passe a sincronização automática" que utiliza uma autoridade de subsistema de segurança para criar o token. Tokens que são criadas desta forma são tokens de rede que "Não" não têm acesso a outros computadores na rede. Se desactivar a sincronização de palavra-passe, o IIS cria o token da mesma forma como o início de sessão de Texto simples anteriormente mencionado. Sincronização de palavra-passe automática só está disponível para contas que estão localizadas no mesmo computador que o IIS. Por conseguinte, se alterar a conta anónima para uma conta de domínio, não é possível utilizar a sincronização de palavra-passe automática e recebe um início de sessão de Texto simples . A excepção é se instalar o IIS no controlador de domínio primário. Neste caso, as contas de domínio estão no computador local. A conta anónima e a opção de sincronização de palavra-passe podem ser configurados no servidor, o site, o directório virtual, directório ou o nível de ficheiro.

Tem de ter o tipo de token correcto como o primeiro passo para aceder a um recurso na rede. Também deve representar uma conta que tenha acesso ao recurso através da rede. Por predefinição, a conta de IUSR _ < NomeComputador > que o IIS cria para pedidos anónimos existe apenas no computador local. Mesmo que desactive a sincronização de palavra-passe, de modo a que possa obter um Interactive token que pode aceder a recursos de rede, a conta IUSR _ < NomeComputador > normalmente não tem acesso a maior parte dos recursos de rede porque se trata de uma conta que seja não reconhecido em outros computadores. Se pretender aceder a recursos de rede com pedidos anónimos, tem de substituir a conta predefinida com uma conta num domínio na rede que possa ser reconhecida por todos os computadores. Se instalar o IIS num controlador de domínio, a conta IUSR _ < NomeComputador > é uma conta de domínio e tem de ser reconhecida por outros computadores na rede sem executar qualquer acção adicional.



Prevenção do problema

Seguem-se formas para evitar problemas quando aceder a recursos de rede da aplicação do IIS:
  • Manter os ficheiros no computador local.
  • Alguns métodos de comunicação de rede não requerem uma verificação de segurança. Um exemplo é utilizando Windows sockets.
  • Pode fornecer acesso directo aos recursos de rede do computador, configurando um directório virtual para ser:

    "Uma partilha localizada noutro computador."
    Todo o acesso ao computador que partilha os recursos de rede é efectuado no contexto da pessoa especificada na caixa de diálogo Ligar como. . Isto ocorre independentemente do tipo de autenticação está configurado para o directório virtual. Utilizando esta opção, todos os ficheiros na partilha de rede estão disponíveis a partir de browsers que aceder ao computador do IIS.
  • Utilize a autenticação base ou a autenticação anónima sem sincronização de palavra-passe.

    Por predefinição, a representação que o Internet Information Server para a autenticação básica, fornece um token que pode aceder a recursos de rede (ao contrário do Windows NT Challenge/Response, que fornece um token que não é possível aceder a recursos de rede). Para a autenticação anónima, o token só pode aceder um recurso de rede se a sincronização de palavra-passe automática é desactivada. Por predefinição, a sincronização de palavra-passe automática está activada quando o Internet Information Server é instalado pela primeira vez. Numa tal configuração predefinida, o token de utilizador anónimo não é possível aceder a recursos de rede.
    259353 tem de introduzir palavra-passe manualmente depois de activar/desactivar a sincronização de palavra-passe

  • Configure a conta anónima como uma conta de domínio.

    Isto permite pedidos anónimos de potencial acesso aos recursos através da rede. Para impedir que todos os pedidos anónimos tenham acesso à rede, tem apenas de efectuar a conta anónima uma conta de domínio sobre os directórios virtuais que necessitem de acesso.
  • Configurar a conta anónima com o mesmo nome de utilizador e palavra-passe no computador que está a partilhar os recursos de rede e, em seguida, desactivar a sincronização de palavra-passe automática.

    Se fizer isto tem de se certificar de que as palavras-passe coincidem exactamente. Esta abordagem só deve ser utilizada quando anteriormente "Para configurar a conta anónima como uma conta de domínio" mencionado não é uma opção por algum motivo.
  • NullSessionShares e NullSessionPipes podem ser utilizados para permitir o acesso a uma partilha de rede específica ou a um pipe nomeado quando o pedido é processado com um token de rede.

    Se tiver um token de rede e tentar estabelecer uma ligação a um recurso de rede, o sistema operativo tenta estabelecer uma ligação como uma ligação de acesso não autenticado (referida como "Sessão nula"). Esta definição de registo deve ser efectuada no computador que está a partilhar o recurso de rede, não no computador do IIS. Se tentar aceder a um NullSessionShare ou NullSessionPipe com um token de externos à rede, é utilizada a autenticação normal do Microsoft Windows e o acesso ao recurso baseia-se os direitos de utilizador da conta do utilizador representado.
  • Pode efectuar potencialmente próprias representação para criar um token do Thread que têm acesso à rede.

    A função LogonUser e a função de ImpersonateLoggedOnUser podem ser utilizados para representar uma conta diferente. Isto requer que tenha o texto simples nome de utilizador e palavra-passe de outra conta disponível no código. LogonUser também requer que a conta que chama LogonUser tem o privilégio "Actuar como parte do sistema operativo" no Gestor de utilizadores. Por predefinição, a maior parte dos utilizadores que o IIS representa enquanto processa um pedido de HTTP não têm este direito de utilizador. No entanto, para "No processo de aplicações" Existem várias formas para fazer com que o actual contexto de segurança mudar para a conta LocalSystem, que tem as credenciais administrativas "Actuar como parte do sistema operativo". Para as DLL de ISAPI que são executados no processo, a melhor forma de alterar o contexto de segurança que criou o IIS para a conta LocalSystem é chamar a
    Função de RevertToSelf . Se estiver a executar a aplicação do IIS "fora do processo", este mecanismo não funcionar por predefinição, uma vez que o processo está em execução sob a conta IWAM _ < NomeComputador > e não a conta de sistema Local. Por predefinição, o IWAM _ < NomeComputador > "Não" tem as credenciais administrativas "Actuar como parte do sistema operativo".
  • Adicione o componente que é chamado a partir da página ASP para um pacote de servidor do Microsoft Transaction Server (MTS) ou a aplicação de servidor do COM+ e, em seguida, especifique um utilizador específico, como a identidade do pacote.

    Nota O componente é executada num ficheiro separado .exe que está fora do IIS.
  • Com a autenticação de texto basic/simples, recomendamos que encripte os dados através da utilização de SSL porque é extremamente fácil obter credenciais de um rastreio de rede. Para mais informações sobre como instalar o SSL, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

    228991 como criar e instalar um certificado SSL no Internet Information Server 4.0

Nota Não se esqueça que pode impedir o acesso de rede para pedidos anónimos em que a sincronização de palavra-passe está desactivada e pedidos são autenticados utilizando a autenticação básica (Texto simples inícios de sessão), se definir a propriedade de metabase LogonMethod para "2" (indicando que um início de sessão de rede é utilizado para criar o token de representação). Com esta definição, a única forma para pedidos evitar a limitação de token de rede é ligar a NullSessionShares ou NullSessionPipes.


Não utilize letras de unidade mapeadas para partilhas de rede. Não só existem apenas 26 letras de controlador potenciais para seleccionar a partir, mas se tentar utilizar uma letra de unidade mapeada no contexto de segurança diferente, poderão ocorrer problemas. Em vez disso, tem de utilizar nomes de convenção de Nomenclatura Universal (UNC) sempre para aceder aos recursos. O formato deve ter um aspecto semelhante ao seguinte:

\\MyServer\filesharename\directoryname\filename
Para mais informações sobre como utilizar o UNC, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

Recomendações de segurança do IIS 280383 quando utiliza uma partilha UNC

As informações neste artigo refere-se apenas ao Internet Information Server 4.0. No Internet Information Server 5.0 (que está incluída no Windows 2000), existem alterações significativas para novos tipos de autenticação e capacidades. Embora a maior parte dos conceitos neste artigo aplicam-se ainda ao IIS 5.0, os detalhes sobre os tipos de tokens de representação que são gerados com determinados esquemas de autenticação no presente artigo aplicam-se estritamente ao IIS 4.0.

319067 como executar aplicações não no contexto da conta de sistema

Se não conseguir determinar qual o tipo de início de sessão está a ocorrer no servidor de IIS para processar pedidos, pode activar a auditoria de inícios de sessão e inícios. Siga estes passos:


  1. Clique em Iniciar, clique em Definições, clique em Painel de controlo, clique em Ferramentas administrativase, em seguida, clique em Política de segurança Local.
  2. Depois de abrir a política de segurança Local, no painel da esquerda de vista de árvore, clique em Definições de segurança, clique em Políticas locaise, em seguida, clique em Política de auditoria.
  3. Faça duplo clique no Evento de início de sessão de auditoria e, em seguida, clique em e sem êxito. São adicionadas entradas de registo de eventos no registo de segurança. Pode determinar o tipo de início de sessão, observando os detalhes do evento sob o tipo de início de sessão:

2=Interactive
3=Network
4=Batch
5=Service

Referências


Para mais informações sobre a segurança de rede, clique nos números de artigo que se segue para visualizar os artigos na Microsoft Knowledge Base:

Serviço de 124184 em execução como sistema falha de conta acesso à rede

Serviços de 180362 e unidades redireccionadas

319067 como executar aplicações não no contexto da conta de sistema

Recomendações de segurança do IIS 280383 quando utiliza uma partilha UNC

259353 tem de introduzir palavra-passe manualmente depois de activar/desactivar a sincronização de palavra-passe