Tengo este código para autenticarme en un servidor LDAP:
Código PHP:
# -*- coding: cp1252 -*-
from Tkinter import *
ventana = Tk()
#Empieza: Cubrir la pantalla completa
w, h = ventana.winfo_screenwidth(), ventana.winfo_screenheight()
ventana.overrideredirect(1)
ventana.geometry("%dx%d+0+0" % (w, h))
#Termina: Cubrir la pantalla completa
#Empieza: Solicitar usuario y contraseña
label_usuarioinicial = Label(ventana, text="Documento de identidad:")
usuarioinicial = Entry(ventana)
label_claveinicial = Label(ventana, text="Contraseña:")
claveinicial = Entry(ventana, show="*")
label_usuarioinicial.pack()
usuarioinicial.pack()
label_claveinicial.pack()
claveinicial.pack()
usuarioinicial.focus_set()
#Termina: Solicitar usuario y contraseña
#Empieza: Conexión y autenticación LDAP
def autenticar():
import ldap
try:
l=ldap.initialize("ldap://12.34.56.78:389") #Realizar la conexión
l.protocol_version = ldap.VERSION3 #Versión a utilizar
usuario="cn="+usuarioinicial.get()+",ou=Users,dc=dominio,dc=co"
clave=claveinicial.get()
l.simple_bind_s(usuario, clave) #Validar usuario
print "¡CONECTADO!"
ventana.destroy() #Cerrar la ventana de bloqueo si la autenticación es correcta
l.unbind_s() #Cerrar la conexión
except ldap.INVALID_CREDENTIALS: #Mostrar mensaje si no es válida la autenticación
print "Usuario o contraseña no válidos."
incorrecto = Label(ventana, width=60, justify=LEFT, wraplength=400, text="\nEl documento de identidad o la contraseña no son correctos.")
incorrecto.pack()
except ldap.INVALID_DN_SYNTAX:
print "Sintaxis incorrecta"
sintaxis = Label(ventana, width=60, justify=LEFT, wraplength=400, text="\nCometió un error al escribir el documento de identidad. Por favor corríjalo.")
sintaxis.pack()
except ldap.LDAPError, e:
print "Error desconocido: ",e
otroerror = Label(ventana, width=60, justify=LEFT, wraplength=400, text="\nHa ocurrido un problema de conexión.")
otroerror.pack()
#Termina: Conexión y autenticación LDAP
#Empieza: Definir botón y acción a realizar al pulsarlo
b1 = Button(ventana, text="Iniciar", width=10, command=autenticar)
b1.pack()
#Termina: Definir botón y acción a realizar al pulsarlo
ventana.mainloop()
Intenté jugar con variables que iban aumentando y con "if", pero no me funcionó...