none
Modo Autenticação Windows > Login Failed ANONYMOUS LOGON em servidores diferentes RRS feed

  • Pergunta

  • Prezados, Bom dia!

    [edit - favor ir para próxima resposta...]

    Consegui hoje adaptar uma aplicação para rodar sobre modo de autenticação Windows.
    Neste caso tenho um usuário do domínio, "DOMINIO/appuser" cadastrado no servidor de SQL Server e no grupo IIS_IUSRS do outro servidor de IIS7.

    Logo no web.config tenho:

    <authentication mode="Windows"/>
    <identity impersonate="true" userName="DOMINIO/appuser" password="senhadoappuser"/>
    
    <add name="ConnectionString1" connectionString="Data Source=SERVIDORSQL\INSTANCIASQL;Initial Catalog=BASEX; Integrated Security=SSPI;" providerName="System.Data.SqlClient" />

    Mas neste caso, toda permissão que a aplicação precisa de Insert/Update/Delete, deve estar autorizada nesta conta do domínio "DOMINIO/appuser"...

    Minha dificuldade é, quero alterar depois que a aplicação abrir/logar, a "Identity/Credencial/Conta" de "DOMINIO/appuser" para "DOMINIO/rafael" por exemplo, ou seja, alterar para que a aplicação utilize as credenciais de domínio do usuário que está logado no windows da máquina cliente ao invés desta padrão cadastrada no Web.Config.

    Motivo: Tenho na base de dados, os grupos e usuários, cada grupo com permissões de acesso em tabelas diferenciadas e etc.... e rodando sobre o appuser invalida toda esta estrutura.

    é possível?

    Obrigado,
    Rafael Silva


    Rafael Silva, Analista e Desenvolvedor de Sistemas


    • Editado rafael.dev quinta-feira, 15 de março de 2012 13:43 Melhor explicação da situação
    terça-feira, 13 de março de 2012 15:40

Respostas

  • Bom dia!

    Olavo obrigado pelo retorno, mas não seria isto que preciso realmente.

    Resolvi parcialmente meu problema de outra forma:
    - quando o IIS7 e o BD estão no mesmo servidor funciona perfeitamente,
    - mas em servidores diferentes recebo "Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'."

    A connectionString continua a mesma, so mudei as configs:

    <authentication mode = "Windows"/>
    <identity impersonate="true"/>
    <authorization>
          <allow users="*" />
          <deny users="?" />
    </authorization>

    Mudando o impersonate para "false" o erro eu consigo resolver criando um usuário no servidor de BD "DOMAIN\SERVERIIS$" com as permissões e aplicação funciona, mas eu não quero um utilizador específico para executar tudo no BD (dbower), preciso utilizar as credenciais do Windows para cada cliente conectado, passando pelas "roles" de cada usuário cadastrado na base.

    Cai em uma situação em pesquisas pela internet que tenho de configurar "Delegation" no active directory... já achei um tento complexo.... seria isto mesmo?? (transporte de credenciais entre servidores)


    Minhas fontes:
    http://blog.reveille.org.uk/2010/01/asp-net-impersonation-delegation/
    http://msdn.microsoft.com/en-us/library/ff647396.aspx
    http://msdn.microsoft.com/en-us/library/bsz5788z(v=vs.90).aspx
    http://mateus.info/tecnologia/artigo4.html

    Obrigado


    Rafael Silva, Analista e Desenvolvedor de Sistemas

    • Sugerido como Resposta Harley Araujo sexta-feira, 16 de março de 2012 12:44
    • Marcado como Resposta Harley Araujo quinta-feira, 22 de março de 2012 14:10
    quinta-feira, 15 de março de 2012 13:39

Todas as Respostas