/ / Configurando o LDAP - django, ldap, server

Configurando o LDAP - django, ldap, server

Meu aplicativo que estou criando requer autenticação LDAP. Estou hospedando meu aplicativo através do apache e estou usando o SSL ... se isso ajuda

Eu instalei todas as bibliotecas e segui as etapas básicas de configuração, mas depois de tentar alguns testes relacionados ao shell, não consegui nem mesmo me conectar ao meu servidor ldap.

Eu nunca fiz isso antes, então qualquer ajuda é muito apreciada.

Deixe-me saber se devo postar algum material extra.

Tutorial principal: https://pythonhosted.org/django-auth-ldap/_static/versions/1.0.19/index.html

Teste que usei até agora: Testando autenticação no Django

Ao alterar o ldap: //128.114.119.108: 636 para ldaps: //128.114.119.108: 636 desde ssl

>>> import ldap
>>> server = "ldaps://xxx.xxx.xxx.xxx:qqq"
>>> user_dn = "uid=ajanakos,ou=people,dc=ucsc,dc=edu"
>>> password = "xxxxxxxxx"
>>> con = ldap.initialize(server)
>>> con.simple_bind_s(user_dn, password)
SERVER_DOWN: {"info": "TLS: hostname does not match CN in peer certificate", "desc": "Can"t contact LDAP server"}

settings.py

import ldap
from django_auth_ldap.config import LDAPSearch

AUTH_LDAP_SERVER_URI = "ldaps://xxx.xxx.xxx.xxx:qqq"

AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=people,dc=ucsc,dc=edu", ldap.SCOPE_SUBTREE, "(uid=%(user)s)")

AUTHENTICATION_BACKENDS = (
"django_auth_ldap.backend.LDAPBackend",
"django.contrib.auth.backends.ModelBackend",
)

views.py - função de login

from django.shortcuts import render
from models import search
from forms import Form
from dmca import settings
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth.decorators import login_required
import credentials as c
import base64
import psycopg2
import time
import datetime

# Create your views here.

def Login(request):
if request.method == "POST":
username = request.POST["username"]
password = request.POST["password"]
print "text"
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect("/lookup")
else:
return HttpResponse("Inactive user.")
else:
return HttpResponseRedirect(settings.LOGIN_URL)

return render(request, "dmca_app/login.html", {})

Respostas:

2 para resposta № 1

Percebo que você está tentando se conectar aoServidor LDAP, usando LDAPS, ou seja, LDAP sobre TLS. Isso requer que você esteja configurando um TrustStore que contenha pelo menos os certificados para verificar o certificado do servidor.