Autenticação integrada do Windows com grupos de membros

1

Não tem certeza de que podemos fazer essa pergunta no StackOverflow (relacionado a programação semi) ou aqui. Eu acho que a maior parte da minha pergunta lida com problemas do lado do servidor, eu perguntarei primeiro no Serverfault. Por favor, realoque a pergunta, se necessário.

Eu tenho um site no IIS 6 escrito com PHP (FastCGI). O site é protegido por SSL e usado interna e externamente com os usuários que efetuam login no site de cada tipo de rede. Todos os usuários estão no AD que precisam acessar o site e o método atual funciona bem para fins de autenticação. O cenário de logon atual é uma página padrão com o formulário HTML que retorna o nome de usuário / PW para uma função de autenticação do ldap. Nessa autenticação, eu preenche uma variável de sessão (PHP) com uma matriz serializada dos grupos AD de usuários para uso em outras partes do aplicativo. Eu devo ser capaz de recuperar uma listagem dos grupos para uso.

Fui encarregado de fazer com que este sistema faça o login automaticamente de um usuário se ele estiver se conectando a ele de dentro do domínio / rede. Com a autenticação integrada (somente) ativada, isso funciona bem, embora com algumas ressalvas que estou tentando resolver agora. Com a autenticação integrada, nenhuma senha está cruzando o fio (bem), mas isso torna minha função de autenticação do ldap (que preenche uma variável com os grupos de usuários AD) inútil! Eu ainda preciso desses grupos para uso em outras partes do aplicativo.

Eu li alguns artigos e perguntas / respostas em ServerFault / StackOverflow em relação à autenticação integrada, mas ainda tenho dúvidas.

  • Se um usuário tentar fazer login no sistema em um computador que não esteja no domínio permitido, o IIS recorre a qualquer outra forma de autenticação ou atende a um 403?
  • Existe uma maneira de obter o atributo 'Membro de' de um usuário (em PHP / outras linguagens de script da web) sem usar ldapBind que requer uma senha (não enviada com logon integrado. ldap_get_entries requer um recurso de pesquisa anterior que deve ser vinculado como acima)

  • Ignorando completamente a autenticação integrada, a questão principal é: Um usuário da intranet local pode ser automaticamente conectado ao site sem ser solicitado, enquanto os usuários que não são da intranet recebem o nome de usuário / senha? forma página web, ou um pop-up do navegador)

Se a resposta acima for sim, uma elaboração sobre COMO será muito apreciada.

    
por PenguinCoder 05.09.2012 / 21:12

1 resposta

4

Tivemos uma solicitação semelhante para alguns aplicativos no meu antigo trabalho. Nós resolvemos isso através do uso de uma conta de utilidade especial que tinha direitos suficientes para ler membros do grupo, mas era sobre isso. O fluxo de aplicativos funcionou assim:

  1. o usuário acessa o site.
  2. Login integrado acontece.
  3. O código de back-end processa o login e se conecta ao AD com o usuário do programador.
  4. O back-end consulta o AD dos membros do grupo do usuário recém-conectado.

Nesse ponto, os membros do grupo estão disponíveis para codificar. A chave aqui é que é uma conta de utilitário dedicada fazendo a busca de informações, o servidor não está representando o usuário da maneira que você está fazendo agora com autenticação básica.

    
por 05.09.2012 / 21:25