Skip to content

Instantly share code, notes, and snippets.

@rogeriopradoj
Last active March 12, 2020 01:42
Show Gist options
  • Save rogeriopradoj/9096128 to your computer and use it in GitHub Desktop.
Save rogeriopradoj/9096128 to your computer and use it in GitHub Desktop.
Autenticação NTLM no Apache 2.2 e Apache 2.4

Porque?

Para capturar o nome do empregado logado na sua página numa Intranet usando autenticação integrada do Windows (NTLM).

Como?

Instalar módulo

Apache 2.4

# Módulo NTLM para Apache 2.4
# informações da página do mod-auth-sspi - http://sourceforge.net/projects/mod-auth-sspi/forums/forum/550583/topic/4868892
# e do apachehaus - https://www.apachehaus.net/modules/mod_authnz_sspi/

LoadModule authnz_sspi_module modules/mod_authnz_sspi.so

Apache 2.2

 # Módulo NTLM
# informações da página do Moodle - http://docs.moodle.org/en/NTLM_authentication
# e do mod-auth-sspi - http://sourceforge.net/projects/mod-auth-sspi/files/

LoadModule sspi_auth_module modules/mod_auth_sspi.so

.htaccess ou httpd.conf

Use o .htaccess deste gist ou coloque seu conteúdo no seu httpd.conf (ou onde mais você estiver configurando seus vhosts).

No PHP

O usuário autenticado via NTLM fica disponível nas seguintes variáveis:

  • $_SERVER['REMOTE_USER']
  • $_SERVER['PHP_AUTH_USER']

Nas nossas instalações, o nome do usuário vem no seguinte formato: 'NOME_DO_DOMINIO\NOME_DO_USUARIO`. Verifique o que acontece na sua instalação e ajuste conforme necessário.

<IfModule mod_authnz_sspi.c>
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic Off
Require valid-user
</ifModule>
<IfModule mod_auth_sspi.c>
AuthType SSPI
SSPIAuth On
SSPIOfferBasic Off
SSPIAuthoritative On
require valid-user
</ifModule>
<?php
error_reporting(-1);
ini_set('display_errors', '1');
ini_set('default_charset', 'utf-8');
date_default_timezone_set('America/Sao_Paulo');
ini_set('html_errors', '1');
var_dump($_SERVER);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment