validación usuarios usuario servidor petición para obtener los logueado formulario datos contraseña conectar con active php windows authentication
http://www.gknw.at/development/apache/httpd-2.2/win32/modules/mod_auth_sspi-1.0.4-2.2.2.zip

petición - obtener datos de los usuarios de un servidor ldap con php



¿Puedes obtener un nombre de usuario de Windows(AD) en PHP? (15)

Tengo una aplicación web PHP en una intranet que puede extraer la IP y el nombre de host del usuario actual en esa página, pero me preguntaba si también hay una forma de obtener / extraer su nombre de usuario de Active Directory / Windows. es posible?



Este es un ejemplo simple de integración NTLM AD, permite el inicio de sesión único con Internet Explorer, requiere inicio de sesión / configuración en otros navegadores.

Ejemplo PHP

<?php $user = $_SERVER[''REMOTE_USER'']; $domain = getenv(''USERDOMAIN''); ?>

En tu archivo apache httpd.conf

LoadModule authnz_sspi_module modules/mod_authnz_sspi.so <Directory "/path/to/folder"> AllowOverride All Options ExecCGI AuthName "SSPI Authentication" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOmitDomain On Require valid-user Require user "NT AUTHORITY/ANONYMOUS LOGON" denied </Directory>

Y si necesita el módulo, este enlace es útil:

https://www.apachehaus.net/modules/mod_authnz_sspi/


Hacer referencia a intentar también averiguar si AUTH_USER es parte de un grupo de dominio particular; una forma inteligente de hacerlo es t crear una carpeta bloqueada con archivos de texto (puede estar en blanco). Configure la seguridad para que solo tenga el grupo de seguridad / distribución que desea validar. Una vez que ejecute @file_get_contents (<--- arrojará una advertencia) ... si el usuario no tiene acceso de grupo, no podrá obtener el contenido del archivo y, por lo tanto, no tendrá acceso a ese grupo de AD en particular. Esto es simple y funciona maravillosamente.


Intenté casi todas estas sugerencias, pero todas devolvían valores vacíos. Si alguien más tiene este problema, encontré esta práctica función en php.net ( http://php.net/manual/en/function.get-current-user.php ):

get_current_user(); $username = get_current_user(); echo $username;

Esta fue la única forma en que finalmente pude obtener el nombre de usuario del directorio activo del usuario. Si ninguna de las respuestas anteriores ha funcionado, pruébelo.


Mire las funciones de la biblioteca PHP LDAP: http://us.php.net/ldap .

Active Directory [principalmente] se ajusta al estándar LDAP.


No. Pero lo que puede hacer es tener su administrador de Active Directory habilitar LDAP para que los usuarios puedan mantener un conjunto de credenciales

http://us2.php.net/ldap


Probablemente puedas autenticar al usuario en Apache con mod_auth_kerb requiriendo acceso autenticado a algunos archivos ... Creo que de esa manera, el nombre de usuario también debería estar disponible en variables de entorno de PHP en alguna parte ... probablemente sea mejor verificarlo con <?php phpinfo(); ?> <?php phpinfo(); ?> una vez que lo ejecutas.


Puedes decir getenv(''USERNAME'')



Si está utilizando Apache en Windows, puede instalar el mod_auth_sspi de

http://www.gknw.at/development/apache/httpd-2.2/win32/modules/mod_auth_sspi-1.0.4-2.2.2.zip

Las instrucciones están en el archivo INSTALL, y hay un ejemplo de whoami.php. (Solo se trata de copiar el archivo mod_auth_sspi.so en una carpeta y agregar una línea en httpd.conf).

Una vez que está instalado y las configuraciones necesarias se realizan en httpd.conf para proteger los directorios que desea, PHP completará $_SERVER[''REMOTE_USER''] con el usuario y el dominio (''USER / DOMAIN'') del usuario autenticado en IE - - o solicite y autentique en Firefox antes de pasarlo.

La información está basada en sesiones, por lo que el inicio de sesión único (ish) es posible incluso en Firefox ...

-Craig


Tenemos varios dominios en nuestro entorno, así que uso preg_replace con regex para obtener solo el nombre de usuario sin DOMAIN /.

preg_replace("/^.+/////", "", $_SERVER["AUTH_USER"]);


Tengo php mysql ejecutándose en IIS: puedo usar $_SERVER["AUTH_USER"] si $_SERVER["AUTH_USER"] Autenticación de Windows en IIS -> Autenticación y desactivo la autenticación anónima (importante)

Lo he usado para obtener mi usuario y dominio:

$user = $_SERVER[''AUTH_USER''];

$user devolverá un valor como: DOMAIN/username de DOMAIN/username en nuestra red, y luego solo se eliminará el DOMAIN/ de la cadena.

Esto ha funcionado en IE, FF, Chrome, Safari (probado) hasta el momento.


get_user_name funciona de la misma manera que getenv (''USERNAME'');

Tenía problemas de codificación (con caracteres cirílicos) con getenv (''USERNAME'')


prueba este código:

$user= shell_exec("echo %username%"); echo "user : $user";

obtienes tu nombre de usuario de windows (AD) en php


Verifique la variable de solicitud AUTH_USER . Esto estará vacío si su aplicación web permite el acceso anónimo, pero si su servidor está usando autenticación básica o integrada de Windows, contendrá el nombre de usuario del usuario autenticado.

En un dominio de Active Directory, si sus clientes ejecutan Internet Explorer y los permisos de su servidor web / sistema de archivos están configurados correctamente, IE enviará silenciosamente sus credenciales de dominio a su servidor y AUTH_USER será MYDOMAIN/user.name sin que los usuarios tengan que iniciar sesión explícitamente en tu aplicación web