2013-01-18 9 views
5

Sto utilizzando mod_auth_kerb & Apache HTTPD per autenticare gli utenti del sito Web da un server Kerberos. Sto ricevendo uno strano messaggio di errore nel mio log degli errori di Apache. (Si prega di notare che ho cambiato il principio in questo post per motivi di sicurezza, ma il formato rimane lo stesso). L'attivazione di uscita a livello di debug per Apache mi ha permesso di ottengo i registri più informativi:mod_auth_kerb errore di parsing principale

[debug] src/mod_auth_kerb.c(1932): [client x.x.x.x] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos 
[debug] src/mod_auth_kerb.c(1277): [client x.x.x.x] Acquiring creds for HTTP/[email protected] 
[debug] src/mod_auth_kerb.c(1470): [client x.x.x.x] Credentials cache FILE:/tmp/krb5cc_48 not found, create one 
[error] [client x.x.x.x] Could not parse principal HTTP/[email protected]/server_hostname: Malformed representation of principal (-1765328250) 
[debug] src/mod_auth_kerb.c(1598): [client x.x.x.x] Failed to obtain credentials for s4u2proxy 
[debug] src/mod_auth_kerb.c(1137): [client x.x.x.x] GSS-API major_status:000d0000, minor_status:0000000d 
[error] [client x.x.x.x] gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied) 

Suppongo che il problema è con il "/ server_hostname" alla fine del committente. Nel mio file keytab Kerberos l'entità è elencata come HTTP/[email protected]. Come posso modificare il principal inviato a mod_auth_kerb? O c'è un altro modo per riconciliare questo errore di analisi?

+1

La tua domanda non è molto chiara. Stai parlando del principio dell'iniziatore di contesto o del prinicipale per il quale esiste l'SPN (accettore) nel keytab? –

+0

Sono sicuro che sto parlando del principio dell'iniziatore di contesto. Alla fine non ha un "/ hostname" extra per il quale non riesca a trovare la documentazione. Infatti, secondo http://cryptnet.net/mirrors/docs/krb5api.html, "L'area in un nome Kerberos potrebbe non contenere i caratteri barra, due punti o null." Quindi sono confuso perché la parte di realm del principio dell'iniziatore di contesto conterrebbe una barra. –

+0

In secondo luogo la tua dichiarazione, per favore dai un'occhiata a questo: http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-user/What-is-a-Kerberos-Principal_003f .html Definisce la sintassi di un principal Kerberos. HAI chiesto al tuo amministratore? Che KDC usi? AD, MIT o Heimdal? –

risposta

6

Si è verificato un problema di autorizzazione del file system. Il keytab era di proprietà di root: root e le autorizzazioni erano impostate in lettura/scrittura solo per il proprietario (0600). Pertanto, Apache HTTPD non è stato in grado di accedere al file keytab. Non riesco ancora a capire come mod_auth_kerb abbia inventato il principio dell'iniziatore di contesto. Ma, ora che il keytab è leggibile da Apache, tutto funziona correttamente.

+2

Si può fare 'setfacl -m u: apache: r--/etc/krb5.keytab' su CentOS 7 (e precedenti) per risolverlo. –