Ongelmia Apachen Kerberos autentikoinnin kanssa

Liittynyt
14.03.2019
Viestejä
879
Yritän saada Apachea toimimaan yhteen Windows Server 2022 Active Direcoryn kanssa käyttäen Kerberossia autentikointiin Apachen mod_auth_kerb-moduulilla, siinä onnistumatta. Apache pyörittää Nextcloudia.

Tällähetkellä olen päässyt kohtaan, jossa Apache valittaa alla olevaa kun yritän päästä Nextcloudiin domainiin liitetyltä W11-koneelta:
Bash:
[Wed Dec 27 19:59:18.199785 2023] [auth_kerb:debug] [pid 1713] src/mod_auth_kerb.c(1963): [client 192.168.88.174:49889] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Dec 27 19:59:18.201523 2023] [auth_kerb:debug] [pid 1713] src/mod_auth_kerb.c(1963): [client 192.168.88.174:49889] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Dec 27 19:59:18.201578 2023] [auth_kerb:debug] [pid 1713] src/mod_auth_kerb.c(1296): [client 192.168.88.174:49889] Acquiring creds for HTTP@nc.domain.fi
[Wed Dec 27 19:59:18.204953 2023] [auth_kerb:debug] [pid 1713] src/mod_auth_kerb.c(1719): [client 192.168.88.174:49889] Verifying client data using KRB5 GSS-API with our SPNEGO lib
[Wed Dec 27 19:59:18.205334 2023] [auth_kerb:debug] [pid 1713] src/mod_auth_kerb.c(1735): [client 192.168.88.174:49889] Client didn't delegate us their credential
[Wed Dec 27 19:59:18.205365 2023] [auth_kerb:debug] [pid 1713] src/mod_auth_kerb.c(1754): [client 192.168.88.174:49889] GSS-API token of length 9 bytes will be sent back
[Wed Dec 27 19:59:18.205381 2023] [auth_kerb:debug] [pid 1713] src/mod_auth_kerb.c(1156): [client 192.168.88.174:49889] GSS-API major_status:000d0000, minor_status:96c73a1f
[Wed Dec 27 19:59:18.205397 2023] [auth_kerb:error] [pid 1713] [client 192.168.88.174:49889] gss_accept_sec_context() failed: Unspecified GSS failure.  Minor code may provide more information (, Request ticket server HTTP/nc.domain.fi@AD.DOMAIN.FI kvno 2 enctype rc4-hmac found in keytab but cannot decrypt ticket)
Mitä olen tehnyt ja miten:
  • Luotu AD Domain ad.domain.fi ja vaadittu DNS
  • Apache-serveri (Ubuntu 22.04) liitetty domainiin komennolla sudo realm join ad.domain.fi Liitos toimii. Domain Userit voi kirjautua serverille.
  • Luotu Service Account: Active Directory Users and Computers -> ad.domain.fi -> Users -> New -> User
    • First Name: Apache
    • User logon name: apache
    • Password: ***
    • Confirm: ***
    • User must change password at next logon POIS
    • Password never expires PÄÄLLE
  • Luotu Service Principal Name (SPN) AD-servussa: komentoriville komento setspn -S HTTP/nc.domain.fi AD\apache
  • Luotu Apachelle oma Kerberos keytab: sudo ktutil - addent -password -p HTTP/nc.domain.fi -k 1 -e aes256-cts-hmac-sha1-96 (noita on luotu 4/kryptaustapa (aes256-cts-hmac-sha1-96/aes128-cts-hmac-sha1-96/rc4-hmac) muuttamalla -k 1-4, eli yht. 12.
cat /etc/apache2/apache2.keytab
Bash:
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    1          HTTP/nc.domain.fi@AD.DOMAIN.FI (aes256-cts-hmac-sha1-96)
   2    2          HTTP/nc.domain.fi@AD.DOMAIN.FI (aes256-cts-hmac-sha1-96)
   3    3          HTTP/nc.domain.fi@AD.DOMAIN.FI (aes256-cts-hmac-sha1-96)
   4    4          HTTP/nc.domain.fi@AD.DOMAIN.FI (aes256-cts-hmac-sha1-96)
   5    1          HTTP/nc.domain.fi@AD.DOMAIN.FI (aes128-cts-hmac-sha1-96)
   6    2          HTTP/nc.domain.fi@AD.DOMAIN.FI (aes128-cts-hmac-sha1-96)
   7    3          HTTP/nc.domain.fi@AD.DOMAIN.FI (aes128-cts-hmac-sha1-96)
   8    4          HTTP/nc.domain.fi@AD.DOMAIN.FI (aes128-cts-hmac-sha1-96)
   9    1          HTTP/nc.domain.fi@AD.DOMAIN.FI (arcfour-hmac)
  10    2          HTTP/nc.domain.fi@AD.DOMAIN.FI (arcfour-hmac)
  11    3          HTTP/nc.domain.fi@AD.DOMAIN.FI (arcfour-hmac)
  12    4          HTTP/nc.domain.fi@AD.DOMAIN.FI (arcfour-hmac)
Apachen Kerberos asetukset on tiedostossa /var/www/html/.htaccess, koska Nextcloud on asennettu suoraan /var/www/html/ -hakemistoon.
cat /var/www/html/.htaccess
Apache config:
...
Nextcloud juttuja
...
AuthType Kerberos
AuthName "Kerberos Login"
KrbAuthRealms AD.DOMAIN.FI
Require valid-user
SSLRequireSSL
Krb5Keytab /etc/apache2/apache2.keytab
Yhdellekään käyttäjälle ei ole määritetty mitään extra atribuutteja vakio asetusten lisäksi, koskien Kerberossia (Active Directory Users and Computers -> ad.domain.fi -> Users -> <user> -> Properties -> Atribute editor).

Mikähän tuossa mahtaa olla vikana? Toivottavasti joku keksii jotain
 
Homma taisi ratketa, ainakin Apache + Kerberosin suhteen, käyttämällä msktutil softaa kutilin sijaan.

Meni varmaan jotenkin näin (pää ihan sekaisin et mitä on tullut testattua, missä ja milloin...):
  1. Loin uuden käyttäjän ja annoin sille Domain Admin -oikeudet
  2. Kirjauduin kyseiseksi käyttäjäksi su -l <user>@ad.domain.fi
  3. Käskytin msktutil -N -c -b 'CN=Computers' -s HTTP/nc.ad.domain.fi -k ./a.keytab --computer-name NC$ --upn apache@AD.DOMAIN.FI --server w2022.ad.domain.fi
  4. Poistin vanhan /etc/apache2/apache2.keytab-tiedoston
  5. Siirsin a.keytab-tiedoston vanhan tilalle sudo mv a.keytab /etc/apache2/apache2.keytab
  6. Vaihdoin /etc/apache2/apache2.keytab-tiedoston omistajan ja ryhmän Apache-käyttäjälle sudo chown www-data:www-data /etc/apache2/apache2.keytab
  7. Sen jälkeen vielä Apachelle restartti sudo systemctl restart apache2.service

Nyt ei ainakaan valita tuosta keytabista, tai sen sisällöstä ja ainakin tämän sivun ( Ubuntu 22.04 LTS : Apache2 : Kerberos Authentication : Server World ) ohjeita seuraamalla luotu testisivu pelittää.

Nextcloud ei edelleenkään toimi, vaan valittaa selaimessa: "Account not provisioned. Your account is not provisioned, access to this service is thus not possible." ja Nextcloud.log:ssa näkyy seuraavaa:
Koodi:
{"reqId":"8ybFxZq2qANv0kls7C9l","level":2,"time":"2023-12-27T22:47:11+00:00","remoteAddr":"192.168.88.174","user":"--","app":"user_saml","method":"GET","url":"/index.php/apps/user_saml/saml/login?requesttoken=D78VN3Q0LmnVudXoQoEbLrfr1bADI3eO7ADLSsPMoZc%3D:Z4w6XyUbQQ/ggZ%2BjE/VRYO2zlIEoRRW32GjkMq%2B/lac%3D&originalUrl=&idp=1","message":"Error while trying to login using sso environment variable: IDP parameter for the UID not found. Possible parameters are: [\"HTTPS\",\"SSL_TLS_SNI\",\"SSL_SERVER_S_DN_CN\",\"SSL_SERVER_I_DN_C\",\"SSL_SERVER_I_DN_O\",\"SSL_SERVER_I_DN_CN\",\"SSL_SERVER_SAN_DNS_0\",\"SSL_VERSION_INTERFACE\",\"SSL_VERSION_LIBRARY\",\"SSL_PROTOCOL\",\"SSL_SECURE_RENEG\",\"SSL_COMPRESS_METHOD\",\"SSL_CIPHER\",\"SSL_CIPHER_EXPORT\",\"SSL_CIPHER_USEKEYSIZE\",\"SSL_CIPHER_ALGKEYSIZE\",\"SSL_CLIENT_VERIFY\",\"SSL_SERVER_M_VERSION\",\"SSL_SERVER_M_SERIAL\",\"SSL_SERVER_V_START\",\"SSL_SERVER_V_END\",\"SSL_SERVER_S_DN\",\"SSL_SERVER_I_DN\",\"SSL_SERVER_A_KEY\",\"SSL_SERVER_A_SIG\",\"SSL_SESSION_ID\",\"SSL_SESSION_RESUMED\",\"HTTP_HOST\",\"HTTP_USER_AGENT\",\"HTTP_ACCEPT\",\"HTTP_ACCEPT_LANGUAGE\",\"HTTP_ACCEPT_ENCODING\",\"HTTP_DNT\",\"HTTP_CONNECTION\",\"HTTP_UPGRADE_INSECURE_REQUESTS\",\"HTTP_SEC_FETCH_DEST\",\"HTTP_SEC_FETCH_MODE\",\"HTTP_SEC_FETCH_SITE\",\"HTTP_PRAGMA\",\"HTTP_CACHE_CONTROL\",\"PATH\",\"SERVER_SIGNATURE\",\"SERVER_SOFTWARE\",\"SERVER_NAME\",\"SERVER_ADDR\",\"SERVER_PORT\",\"REMOTE_ADDR\",\"DOCUMENT_ROOT\",\"REQUEST_SCHEME\",\"CONTEXT_PREFIX\",\"CONTEXT_DOCUMENT_ROOT\",\"SERVER_ADMIN\",\"SCRIPT_FILENAME\",\"REMOTE_PORT\",\"GATEWAY_INTERFACE\",\"SERVER_PROTOCOL\",\"REQUEST_METHOD\",\"QUERY_STRING\",\"REQUEST_URI\",\"SCRIPT_NAME\",\"PATH_INFO\",\"PATH_TRANSLATED\",\"PHP_SELF\",\"REQUEST_TIME_FLOAT\",\"REQUEST_TIME\"]","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0","version":"28.0.1.1","data":{"app":"user_saml"}}
Nextcloudissa oon koittanu pistää SSO & SAML authenticationin kenttään General (Atrribute to map the UID to.) userPrincipalName ja sAMAccountName, mutta kumpikaan ei toimi. En tiä mikä tuollakin on nyt ongelmana...
 

Statistiikka

Viestiketjuista
267 217
Viestejä
4 622 136
Jäsenet
76 002
Uusin jäsen
Veba

Hinta.fi

Back
Ylös Bottom