none
Web Service com Autenticação Integrado ao Windows RRS feed

  • Pergunta

  • Boa noite pessoal!

     

    Tenho o seguinte cenário em uma aplicaçã:

     

    1. Uma aplicação Open Source que precisa acessar informações de uma base legada em SQL Server 2000 que não pode ser modificado,
    2. Para realizar esse acesso é necessário utilizar Web Service pois tem outros projetos em caminho que estão querendo utilizar a mesma base e para interoperabilidade o Web Service iria ser muito bom.
    3. Todas as aplicação da empresa se integram com o AD, que por sua vez todos os AD são integrado, e integrados a nível mundial, ou seja, um usuário da europa consegue realizar login no Brasil com a mesma conta de AD que tem na Europa.

    Apresentado o cenário falo agora o que eu já tenho desenvolvido.

    O projeto está no início e então eu estou realizando os testes com a integração do Web Service com o AD e banco de dados. Para fazer os teste eu criei um web service que faz uma consulta qualquer no banco só para fazer o teste de autenticação. Habilitei o ASP.NET Impersonation no IIS e desabilitei a autenticação anônima.

    Quando eu realizo a consulta o SQL me retorna um erro falando que não pode autenticar para um usuário anônimo sendo que eu já estou autenticado via AD no IIS.

    As versões são as seguintes:

    IIS 7.0, ASP.NET v2.0, Visual Studio 2010, SQL Server 2000 e Windows Server 2008.

    Alguém sabe o que pode ser isso? 

    terça-feira, 23 de novembro de 2010 22:41

Todas as Respostas

  • Ola Daniel,

    Acredito que vc pode resolver o seu problema apenas configurando alguns detalhes no web.config...

    de uma olhada nesse artigo e diga se tem alguma duvida referente ao mesmo:

    http://msdn.microsoft.com/en-us/library/ff647405.aspx


    Eu não sou pago para postar aqui... faço simplesmente porque eu quero....
    terça-feira, 23 de novembro de 2010 23:39
    Moderador
  • Bom dia Rui!

    Acho um pouco difícil ser alguma configuração do web config pois a situação é um tanto quando unica. Enquanto estou navegando pelo web service eu consigo até pegar o usuário logado no IIS, que no meu casso é o meu usuário de rede, porém quando eu requisito uma chamada para o banco da dados, falando na string de conexão que é para utilizar o usuário do AD o banco me retorna uma exception falando que o não pode realizar autenticação para um usuário anônimo.

     

    É esquisito.

    quarta-feira, 24 de novembro de 2010 13:22
  • Ola Daniel,

        Por isso que afirmo novamente para ler o link informado, ao inves de fazer a configuração de acesso pelo IIS faça a mesma pelo web.config que é muito mais facil...

        é possivel atraves dele vc forçar a propragação da identidade do usuario ativo para o IIS, veja:

    Using Impersonation with Windows Authentication

    By using impersonation, ASP.NET applications can execute code or access resources with the identity of the authenticated user or a fixed Windows identity. Standard impersonate-level impersonation tokens that are usually created when you enable impersonation allow you to access local resources only. To be able to access remote network resources, you require a delegate-level token. To generate a delegate-level token when you impersonate, you need to use Kerberos authentication and your process account needs to be marked as trusted for delegation in Active Directory.

    By default, ASP.NET applications are not configured for impersonation. You can confirm this by reviewing the identity settings in the Machine.config.comments file located in the following folder: %windir%\Microsoft.Net\Framework\{Version}\CONFIG.

    The <identity> element is configured as follows. Note that impersonation is disabled.

    <identity impersonate="false" userName="" password="" />
    

    Impersonating the Original Caller with Windows Authentication

    When you configure your application for impersonation, an impersonation token for the authenticated user is attached to the Web request thread. As a result, all local resource access is performed using the caller's identity.

    To configure ASP.NET to use Windows authentication with impersonation, use the following configuration.

    ...
     <system.web>
      ...
      <authentication mode="Windows"/>
      <identity impersonate="true"/>
      ...
     </system.web>
     ...
     


    Eu não sou pago para postar aqui... faço simplesmente porque eu quero....

    quarta-feira, 24 de novembro de 2010 17:28
    Moderador