validación usuario petición para formulario contraseña con autenticación autenticacion aplicaciones active php iis com adsi

usuario - ¿Cómo leer la membresía de un grupo de Active Directory desde PHP/IIS usando COM?



formulario php para petición de usuario y contraseña y validación en ldap (4)

Parece estar funcionando ahora.

Permití "Confiar en esta computadora para delegación" para el objeto de computadora en Active Directory. Normalmente, IIS no puede autenticarte y luego hacerte pasar por otra persona a través de la red (en mi caso a un controlador de dominio para consultar a Active Directory) sin la confianza de delegación habilitada.

Solo debe asegurarse de que se está autenticando con Kerberos y no con NTLM o con alguna otra autenticación resumida, ya que no es confiable utilizar el compendio como un token de suplantación.

Reparó tanto mis scripts PHP como ASP.

Tengo el siguiente código:

$bind = new COM("LDAP://CN=GroupName,OU=Groups,OU=Division,DC=company,DC=local");

Cuando lo ejecuto desde un símbolo del sistema, funciona bien. Cuando se ejecuta bajo IIS / PHP / ISAPI, es barfs.

Fatal error: Uncaught exception ''com_exception'' with message ''Failed to create COM object `LDAP://CN=...[cut]...,DC=local'': An operations error occurred. '' in index.php Stack trace: #0 index.php: com->com(''LDAP://CN=...'') #1 {main} thrown

IIS está configurado para la Autenticación de Windows (no anónimo, no básico, sin resumen) y me estoy conectando como el mismo usuario que el símbolo del sistema. No puedo encontrar ningún error específico en los archivos de registro de IIS o en el registro de eventos.

El objetivo principal de este ejercicio es abstenerme de conservar las credenciales del usuario en mi secuencia de comandos y confiar en la autenticación IIS para pasarlas al directorio activo. Entiendo que puede usar LDAP para lograr lo mismo, pero hasta donde sé las credenciales no se pueden pasar.

Quizás esté relacionado de algún modo con el error que recibo cuando intento portarlo a ASP. Recibo el error 80072020 (que actualmente estoy buscando).

Los registros de eventos no muestran nada fuera de lo común. Sin advertencias, sin errores. La auditoría de seguridad completa está habilitada (éxito y falla en cada elemento de la política de seguridad) y muestra inicios de sesión de Windows exitosos para cada usuario que autentique contra la página web (lo cual se espera).


Bueno, si quieres usar LDAP, déjame señalarte el código de autenticación LDAP que usamos para Maia Mailguard: busca la función llamada lauth_ldap

Creo que requiere ldap versión 3, por lo que debe establecer ese parámetro para ldap. Para verificar la contraseña, usamos la función ldap bind para permitir que el servidor ldap se autentique.


Como está utilizando la Autenticación de Windows en IIS, es posible que tenga algunos eventos de seguridad en el registro de eventos de Windows. Verificaría el registro de eventos de seguridad y eventos de la aplicación y vería si se está produciendo algún tipo de problema con los permisos.

Además, dado que básicamente se está comunicando con AD a través de LDAP ... podría considerar utilizar una biblioteca LDAP nativa para PHP en lugar de una COM.

Tendrás que habilitar la extensión probablemente en tu php.ini. Vale la pena mirar probablemente.


No soy un experto en AD / COM / IIS, pero podría ser un problema de permisos. por ejemplo, el usuario de IUSR_nombre de computadora no tiene acceso aplicable dentro del directorio, o usted no está vinculando como un usuario específico?

La campana de alarma para mí es el hecho de que funciona bien desde la línea de comandos (por ejemplo, ejecutar con sus permisos) pero falla en IIS (por ejemplo, no sus permisos).