Eu tenho um site em execução em um computador Linux usando o Apache. Eu usei mod_auth_kerb para autenticação Kerberos de logon único em um servidor Windows Active Directory.
Para que o Kerberos funcione corretamente, criei uma conta de serviço no Active Directory chamada dummy
.
Gerei um keytab para o servidor da Web Linux usando o ktpass.exe no servidor do Windows AD usando este comando:
ktpass /out C:\krb5.keytab /princ HTTP/[email protected] /mapuser [email protected] /crypto RC4-HMAC-NT /ptype KRB5_NT_PRINCIPAL /pass xxxxxxxxx
Eu posso obter com sucesso um ticket do servidor web Linux usando este comando:
kinit -k -t /path/to/keytab HTTP/[email protected]
... e veja o ticket com klist
.
Também configurei meu servidor da web com essas propriedades do Kerberos:
<Directory />
AuthType Kerberos
AuthName "Example.com Kerberos domain"
KrbMethodK5Passwd Off
KrbAuthRealms EXAMPLE.COM
KrbServiceName HTTP/[email protected]
Krb5KeyTab /path/to/keytab
Require valid-user
SSLRequireSSL
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
No entanto, quando tento fazer login no site (a partir de outro Desktop com nome de usuário 'Jeff') minhas credenciais de Kerberos não são aceitas automaticamente pelo servidor da web. Deve me conceder acesso imediatamente depois disso, mas isso não acontece. A única informação que recebo dos logs mod_auth_kerb é:
kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
No entanto, mais informações são reveladas quando altero a configuração de mod_auth_kerb KrbMethodK5Passwd
to On
:
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(1939): [client xxx.xxx.xxx.xxx] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(1031): [client xxx.xxx.xxx.xxx] Using HTTP/[email protected] as server principal for password verification
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(735): [client xxx.xxx.xxx.xxx] Trying to get TGT for user [email protected]
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(645): [client xxx.xxx.xxx.xxx] Trying to verify authenticity of KDC using principal HTTP/[email protected]
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(1110): [client xxx.xxx.xxx.xxx] kerb_authenticate_user_krb5pwd ret=0 [email protected] authtype=Basic
O que estou perdendo? Eu estudei muitos tutoriais on-line e não consigo encontrar uma razão pela qual as credenciais do Kerberos não estejam permitindo o acesso.