Usando AD como autenticação para Django
-
03-07-2019 - |
Pergunta
Eu estou trabalhando em um aplicativo baseado em Django em um ambiente corporativo e gostaria de usar o sistema existente do Active Directory para autenticação de usuários (para que eles não recebem mais um login / combinação senha). Eu também gostaria de continuar a usar o sistema de autorização de usuário / permissão de Django para gerenciar recursos de usuário.
Alguém tem um bom exemplo disso?
Solução
Aqui está outro trecho mais recente (Julho de 2008, atualizado em dezembro 2015):
Outras dicas
O link fornecido por Jeff fato funciona embora ele assume que você tem um você tem um grupo padrão onde os usuários são adicionados. Eu simplesmente substituídos:
group=Group.objects.get(pk=1)
por
group,created=Group.objects.get_or_create(name="everyone")
Se você quer uma integração mais estreita e mais recursos, há também django-auth-ldap o que lhe dá mais controle sobre como os usuários LDAP / grupo são mapeadas em Django usuários / grupos.
Para depurar a conexão LDAP achei neste blog pós útil, em particular o comando para testar a conexão LDAP com ldap-utils:
ldapsearch -H ldaps://ldap-x.companygroup.local:636 -D "CN=Something LDAP,OU=Random Group,DC=companygroup,DC=local" -w "p4ssw0rd" -v -d 1
Se você estiver usando SSL, há também a questão da espera obter de um certificado vai jogar bonito com. Ou você extraí-lo a partir do servidor, ou você pode seguir estas instruções para gerar o seu próprio.
Como sobre isso? Você tentou que um?
Eu tive o mesmo problema, e notou que django-auth-ldap não suporta SASL em tudo -.> Senhas de texto simples através da conexão se TSL não está disponível
Aqui está o que eu fiz para o problema: https://github.com/susundberg/django-auth-ldap-ad
Você pode subclasse o backend django-auth-ldap
para adicionar capacidades AD mais com SASL ou Kerberos ou o que quer. Aqui está um exemplo de trabalho 2018 no Django 2.1: