Um único usuário pode ter vários conjuntos de credenciais usando o MS Active Directory?

1

No momento, estamos fazendo a transição da autenticação baseada em banco de dados existente para o Active Directory. Na implementação existente, as senhas são mantidas em texto claro no banco de dados (sei que isso é ruim, é por isso que estamos em transição). Quando um usuário efetua login em nosso aplicativo no lado do cliente (não em um navegador), o aplicativo criptografa a senha usando um hash MD5 e a envia para o servidor. O servidor consulta o banco de dados para o login fornecido, criptografa a senha em texto simples e compara o resultado.

Como esta é uma aplicação do lado do cliente, leva tempo para atualizar todos os nossos clientes (podem ser meses). Portanto, gostaríamos de oferecer suporte a ambos os métodos de autenticação até que os clientes sejam totalmente transicionados.

Uma maneira de fazer isso seria ter um único usuário do Active Directory com duas senhas, a senha real e um hash MD5 da senha. Se eles entrarem com eles, eles serão autenticados.

Um único usuário pode suportar várias senhas no Active Directory?

Por exemplo, o usuário real Jon Smith tem dois conjuntos de senhas de login: 1. login="jon", senha="pass1" 2. login="jon", senha="pass2"

Se Jon passar em um desses no momento do login, ele será autenticado com sucesso.

Obrigado

    
por oneself 23.06.2009 / 18:02

6 respostas

3

A resposta para isso é basicamente não. AD permite apenas uma senha por conta de usuário. Como o AD tem o nome de usuário e o nome de usuário anterior a 2000, suponho que você possa juntar dois nomes de usuário para uma conta, mas não é uma boa ideia. Alguma razão em particular você precisa disso? Talvez haja uma solução melhor para as suas necessidades?

    
por 23.06.2009 / 18:08
2

Você não pode ter mais de uma senha, mas pode ter vários nomes de usuário usando várias extensões UPN.

i.e. para o domínio contoso.com, você pode ter os logins: [email protected] [email protected] [email protected]

Tudo isso associado à mesma conta. No entanto, você ainda teria apenas uma senha.

    
por 23.06.2009 / 18:46
2

O que você quer fazer é alterar seus clientes para verificar a autenticação em duas fontes.

Em outras palavras, mantenha seu banco de dados existente enquanto estiver fazendo a transição para o Active Directory. Peça aos clientes que verifiquem a conta do AD e, se isso não for auth, solicitem que verifiquem a fonte de autenticação herdada.

Qualquer dano que você fizer para que o AD aceite vários nomes de usuários / senhas será algo com o qual você lidará por um longo tempo. Basta executar fontes de autenticação paralela até que você esteja em transição.

    
por 23.06.2009 / 20:57
1

Eu não posso realmente ver por que você teria uma necessidade de fazer isso, mas eu concordo com Sam em que não há nenhuma maneira real de fazer isso.

Você pode copiar um usuário ou dar a um usuário exatamente as mesmas permissões e até mesmo acessar a mesma caixa de correio e recursos, etc., mas não vejo uma maneira de ter vários nomes de usuário para uma conta.

    
por 23.06.2009 / 18:25
0

O Active Directory não oferece suporte ao que você está descrevendo para um único identificador de segurança (SID). Cada SID pode ter exatamente uma combinação de nome de usuário / senha.

Você pode fazer isso funcionalmente, até certo ponto, criando um objeto de grupo no qual "jon1" e "jon2" são membros e usando esse grupo em todas as permissões (sistema de arquivos, caixa de correio do Exchange, etc.) relacionadas a "Jon Smith ". (Você deve estar usando grupos para quase todas as permissões de qualquer maneira). Desde que você não esteja usando nenhum software que não possa manipular o SID de um grupo sendo usado em vez de um dos SIDs das contas de usuário de Jon, você estará bem.

    
por 23.06.2009 / 18:47
0

Existe uma maneira muito feia de fazer isso, mas por que você quer?

Os IDs de usuário do Active Directory são, na verdade, apenas uma maneira abreviada de identificar uma conta pelo seu nome REAL, o identificador de segurança ou o SID. Cada objeto de usuário tem vários atributos atribuídos a ele que podem ser usados para efetuar logon com: samaccountname, nome principal do usuário etc. Esses podem ter valores diferentes, mas você ainda teria apenas uma senha SINGLE. Você poderia "copiar" um usuário através do console MMC "Usuários e Computadores", o que garantiria que ambas as contas de usuários tivessem as mesmas associações de grupo e dados genéricos, mas você AINDA teria dois objetos de usuário distintos com senhas diferentes. Eles teriam SIDs diferentes e seriam considerados usuários diferentes pelo AD, embora você possa fazê-los parecer iguais, fornecendo às contas exatamente o mesmo nome de exibição.

Se você realmente quer quebrar seu AD, você pode tentar usar o atributo SID-Histórico para inserir um SID duplicado no diretório. Eu recomendo que você não tente fazer isso. Na verdade, você terá dificuldade em fazê-lo, a menos que você esteja EXTREMAMENTE familiarizado com a estrutura do AD e com a programação de baixo nível. As ferramentas de migração da Microsoft NÃO permitem inserir um SID duplicado no histórico do SID, já que esse é um valor de atributo exclusivo. Eu acredito que isso pode ser feito se você escrever seus próprios métodos de acesso usando o MFC e substituir um número de salvaguardas embutidas. MAS NÃO FAÇA ISSO.

    
por 23.06.2009 / 18:54