Guide för att ställa in Kerberos Single Sign-On (SSO)
Översikt
Kerberos är en kryptografibaserat autentiseringsprotokoll som skyddar åtkomsten till applikationer. Detta protokoll är utformat för att tillhandahålla säker autentisering över ett osäkert nätverk. Nyckelidén bakom Kerberos är att autentisera användare samtidigt som man förhindrar att lösenord skickas över internet.
Enkel LDAP/Active Directory-integration för WordPress Video.
Kerberos termer:
Kerberos: Kerberos är ett autentiseringsprotokoll som stöder konceptet Single Sign-On (SSO). När det gäller HTTP tillhandahålls stöd för Kerberos vanligtvis med termen "SPNEGO"-autentiseringsmekanism.
Kerberos Realm: En administrativ domän för autentisering betecknas med termen sfär. Dess mål är att definiera begränsningarna för när en autentiseringsserver kan autentisera en användare, värd eller tjänst. Detta innebär inte att en användare och en tjänst måste vara medlemmar i samma sfär för att autentisering ska ske: om de två objekten är anslutna via en förtroendeanslutning trots att de tillhör olika sfärer kan autentisering fortfarande ske.
Rektor: I ett Kerberos-system representerar en Kerberos Principal en distinkt identitet till vilken Kerberos kan utfärda biljetter för åtkomst till Kerberos-medvetna tjänster. "/"-avgränsaren används för att separera de olika komponenterna som utgör huvudnamnen. Tecknet "@" kan användas för att identifiera en sfär som namnets sista element. Om ingen sfär är angiven, antas det att rektorn tillhör standardområdet som är inställd i filen krb5.conf.
Kunder/användare: En process som får åtkomst till en tjänst på uppdrag av en användare. Det kan finnas flera klienter eller användare inom en sfär.
Service: Något användaren vill få tillgång till.
SSO: Single Sign-On är en procedur som gör det möjligt för en användare att bara logga in en gång och få tillgång till många tjänster efter att ha slutfört användarautentisering. Efter att ha loggat in på en primär tjänst innebär detta autentisering i varje tjänst som användaren har gett behörighet till. SSO har ett antal fördelar, varav en är att undvika den tröttsamma processen att upprepade gånger validera identitet med hjälp av lösenord eller andra autentiseringssystem.
GSSAPI: Program kan komma åt säkerhetstjänster genom Generic Security Service Application Program Interface (GSSAPI), som är ett applikationsprogrammeringsgränssnitt (API). En IETF-standard är GSSAPI. Den erbjuder ingen säkerhet i sig. Istället erbjuds GSSAPI-implementeringar av leverantörer av säkerhetstjänster. Utbytet av ogenomskinliga meddelanden (tokens), som döljer implementeringsdetaljen från applikationen på högre nivå, är det utmärkande kännetecknet för GSSAPI-applikationer.
SPNEGO: Klient-serverprogramvara använder den enkla och skyddade GSSAPI-förhandlingsmekanismen, ofta kallad "spen-go", för att förhandla om valet av säkerhetsteknik. När en klientapplikation måste logga in på en fjärrserver men ingen ände är säker på vilka autentiseringsprotokoll den andra stöder, används SPNEGO. Pseudomekanismen använder ett protokoll för att identifiera de tillgängliga vanliga GSSAPI-mekanismerna, väljer en och tilldelar sedan alla efterföljande säkerhetsåtgärder till den valda mekanismen.
KDC: Ett nyckeldistributionscenter är en nätverkstjänst som tillhandahåller biljetter och tillfälliga sessionsnycklar; eller en instans av den tjänsten eller den värd som den körs på. KDC betjänar både initiala biljett- och biljettförfrågningar. Den initiala biljettdelen kallas ibland för autentiseringsservern (eller tjänsten). Den biljettbeviljande biljettdelen hänvisas ibland till som den biljettbeviljande servern (eller tjänsten).
NTLM Authentication Protocol:
En klients åtkomst till en resurs på en Active Directory-domän kan autentiseras med hjälp av autentiseringsprotokollet för utmaningssvar som kallas Windows NT LAN Manager (NTLM). När en klient begär åtkomst till en domänrelaterad tjänst, skickar tjänsten en utmaning till klienten och instruerar den att använda sin autentiseringstoken för att utföra en matematisk operation och sedan tillhandahålla resultatet till tjänsten. Resultatet kan verifieras av tjänsten eller verifieras av domänkontrollanten (DC). Tjänsten ger åtkomst till klienten om DC eller tjänsten verifierar att klientens svar är korrekt.
Eftersom det tillåter användaren att endast ange den underliggande autentiseringsfaktorn en gång, under inloggning, är NTLM en sorts enkel inloggning (SSO).

- Ocuco-landskapet NEGOTIATE_MESSAGE definierar ett NTLM Negotiate-meddelande som skickas från klienten till servern. Med det här meddelandet kan klienten specificera sina NTLM-alternativ som stöds till servern.
- Ocuco-landskapet CHALLENGE_MESSAGE definierar ett NTLM-utmaningsmeddelande som skickas från servern till klienten och det används av servern för att utmana klienten att bevisa sin identitet.
- Ocuco-landskapet AUTHENTICATE_MESSAGE definierar ett NTLM-autentiseringsmeddelande som skickas från klienten till servern efter att CHALLENGE_MESSAGE har bearbetats av klienten.
Obs: Windows-autentisering använder antingen Kerberos-autentiseringsprotokoll eller NTLM-autentiseringsprotokoll, beroende på klient- och serverkonfigurationer.
Kerberos Authentication Protocol:

- Meddelande A: Klient-/TGS-sessionsnyckel krypterad med klientens/användarens hemliga nyckel.
- Meddelande B: Ticket-Granting-Ticket krypterad med den hemliga nyckeln till TGS.
- Meddelande C: Består av TGT från meddelande B och ID för den begärda tjänsten.
- Meddelande D: Authenticator krypterad med klient/TGS-sessionsnyckeln.
- Meddelande E: Klient-till-server-biljett krypterad med hjälp av tjänstens hemliga nyckel.
- Meddelande F: Klient-/serversessionsnyckel krypterad med klient-/TGS-sessionsnyckeln.
- Meddelande G: En ny Authenticator, som inkluderar klient-ID, tidsstämpel och är krypterad med klient-/serversessionsnyckel.
- Meddelande H: Tidsstämpeln som hittas i klientens Authenticator krypterad med klient-/serversessionsnyckeln.
Kerberos SSO på Ubuntu/Debian:
Förkunskaper:
- Ett tjänstekonto/användarkonto i Active Directory.
- Kontolösenordet bör ha ett lösenord inställt på Ej utgången.
Steg 1: Skapa Keytab-fil på AD Domain Controller:
- På AD Domain Controller öppnar du kommandotolken i administratörsläget och utför följande kommando för att skapa Keytab-filen.
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
-pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab -crypto ALL
Obs: Se till EXAMPLE.COM ska stå med versaler. Om användaren med SPN redan finns, använd den användaren för att skapa en ny. Kerberos-principen är skiftlägeskänslig. Kontrollera om det finns skillnader i versaler/gemener innan du kör tangentbordskommandot.
- Följande är komponenterna i kommandot.
| Serverns värdnamn: | Det är värdnamnet för webbplatsen som finns på servern. |
| EXAMPLE.COM: | Det är Active Directory-domännamnet. |
| Användarnamn: | Det är ett tjänstekonto i Active Directory. |
| Lösenord: | Det är lösenordet för tjänstekontot som används ovan. |
| Väg: | Sökväg till en lokal plats som lagrar keytab-filen. (C:\Temp\spn.keytab) |
Obs: Kommandot ovan skapar en keytab-fil. Den måste placeras på klientservern där din WordPress-webbplats finns. Användaren som kör Apache bör ha full åtkomst till den här filen. Användaren bör ha behörighet till keytab-filen.
- Öppna Active Directory användare och datorer och välj från toppmenyn Visa >> Avancerade funktioner.
- Öppna tjänstekontot och gå till fliken för attributredigerare, bläddra till servicePrincipalName för att verifiera SPN-posten.
- Navigera till Delegation fliken.
- Välja Lita på den här användaren för delegering till valfri tjänst (endast Kerberos).

- Klicka Ansök.
- kopiera Tangentbord fil från AD Domain Controller till webbservern på Apache.
- Ge behörighet till kerberos keytab-fil:
chmod 644 etc/apache2/spn.keytabSteg 2: Installera kerberos klientbibliotek på webbservern:
- Använd följande kommando på din terminal för att installera Kerberos-klientbiblioteken.
sudo apt-get install krb5-user
Steg 3: Installera moduler för Apache:
Obs: I de senaste utgåvorna av Ubuntu/Debian, mod_auth_kerb har föråldrats och ersatts med mod_auth_gssapi.
- Det finns två apache-moduler, men bara en av dem behövs för att installeras:
1. mod-auth-gssapi-modul för apache.
2. mod_auth_kerb-modul för apache. (utfasad)
1. Installera mod-auth-gssapi-modulen för apache:
- Använd följande kommando för att installera libapache2-mod-auth-gssapi modul för Apache på debianbaserade system:
sudo apt-get -y install libapache2-mod-auth-gssapiOR
2. Installera mod_auth_kerb-modulen för apache (utfasad):
- Använd följande kommando för att installera auth_kerb-modulen för Apache på debianbaserade system:
sudo apt-get install libapache2-mod-auth-kerb- När auth_kerb-modulen är installerad måste den aktiveras genom följande kommando.
a2enmod auth_kerb- Efter aktivering, Starta om Apache att träda i kraft.
Steg 4: Konfigurera Active Directory-domänen i Kerberos-konfigurationsfilen:
- Öppna och redigera krb5.conf fil.
Sökvägen till krb5.conf-filen för linux är C:/etc/krb5.conf och för andra UNIX-baserade system är c:/etc/krb5/krb5.conf - Lägg till följande konfigurationskodavsnitt till krb5.conf fil under nämnda avsnitt:
[libdefaults]
default_realm = EXAMPLE.COM
# ...
# ...
[realms]
EXAMPLE.COM = {
kdc = <DNS entries pointing to your primary domain controller>: Port
admin_server = <DNS entries pointing to your primary domain controller>: Port
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
Obs: Ersätt AD DOMAIN CONTROLLER IP/DNS med din IP/DNS adress. Säkerställa EXAMPLE.COM ska stå i versaler.
Ersätt EXAMPLE.COM med Active Directory-domännamnet och se till att port 88 på AD Domain Controller är åtkomlig från denna server.
- Spara filen.
Steg 5: Konfigurera Kerberos SSO för webbplatskatalogen:
- Redigera den pålagda virtuella värdkonfigurationsfilen som lagras under /etc/apache2/sites-enabled katalog eller den virtuella standardvärdfilen med namnet 000-default.conf
Obs: Lägg till följande avsnitt i katalogen enligt vilken apache-modul som används. T.ex: "mod_auth_kerb" or "mod_auth_gssapi".
- 1. Lägg till följande avsnitt i katalogen för webbplatsen för mod_auth_gssapi.
<IfModule !mod_auth_gssapi.c>
LoadModule auth_gssapi_module /usr/lib64/httpd/modules/mod_auth_gssapi.so
</IfModule>
<Directory "/placeholder">
AuthType GSSAPI
AuthName "Kerberos auth"
GssapiAllowedMech krb5
GssapiBasicAuth On
GssapiCredStore keytab:<PATH TO KEYTAB>
GssapiLocalName On
BrowserMatch Windows gssapi-no-negotiate
Require valid-user
</Directory>
OR
- 2. Lägg till följande avsnitt i katalogen för webbplatsen för mod_auth_kerb (utfasad).
<Directory "/placeholder">
AuthType Kerberos
KrbAuthRealms EXAMPLE.COM
KrbServiceName HTTP/<Server Host Name>
Krb5Keytab <PATH TO KEYTAB>
KrbMethodNegotiate on
KrbMethodK5Passwd on
require valid-user
</Directory>
Obs: Se till EXAMPLE.COM ska stå i versaler.
Följande är komponenterna i ovanstående konfiguration:
| EXAMPLE.COM: | Detta är Active Directory-domänen som konfigurerats i krb5.conf. |
| SÖG TILL TANGENTTABB: | Tillgänglig sökväg till tangentbordet på den här servern. (etc/spn.keytab) |
- Efter denna konfiguration måste Apache startas om för att ändringarna ska träda i kraft.
Obs: När du har konfigurerat inställningarna, Klicka här för att konfigurera webbläsare för Kerberos SSO.
För att testa din Kerberos/NTLM SSO-konfiguration, Klicka här.
För att felsöka eventuella fel, vänligen Klicka här.
Ställ in Kerberos på RHEL/CentOS:
Steg 1: Skapa Keytab-fil på AD Domain Controller:
- På AD Domain Controller öppnar du kommandotolken i administratörsläge och utför följande kommando för att skapa Keytab-filen.
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
-pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab -crypto ALL
Obs: Se till EXAMPLE.COM ska stå med versaler. Kerberos-principen är skiftlägeskänslig. Kontrollera om det finns skillnader i versaler/gemener innan du kör tangentbordskommandot.
- Följande är komponenterna i kommandot.
| Serverns värdnamn: | Det är värdnamnet för webbplatsen som finns på servern. |
| EXAMPLE.COM: | Det är Active Directory-domännamnet. |
| Användarnamn: | Det är ett tjänstekonto i Active Directory. |
| Lösenord: | Det är lösenordet för tjänstekontot som används ovan. |
| Väg: | Sökväg till en lokal plats som lagrar keytab-filen. (C:\Temp\spn.keytab) |
Obs: Kommandot ovan skapar en keytab-fil. Den måste placeras på klientservern där din WordPress-webbplats finns. Användaren som kör Apache bör ha full åtkomst till den här filen. Användaren bör ha behörighet till keytab-filen.
- kopiera Keytab-fil från AD Domain Controller till webbservern på Apache.
- Ge behörighet till kerberos keytab-fil:
chmod 644 etc/httpd/spn.keytabSteg 2: Installera kerberos klientbibliotek på webbservern:
- Använd följande kommando på din terminal för att installera Kerberos-klientbiblioteken.
yum install -y krb5-workstation krb5-devel krb5-libs mod_auth_gssapi mod_session
Obs: I de senaste versionerna av CentOS, mod_auth_kerb har föråldrats och ersatts med mod_auth_gssapi.
Steg 3: Installera moduler för Apache:
Obs: I de senaste utgåvorna av Ubuntu/Debian, mod_auth_kerb har föråldrats och ersatts med mod_auth_gssapi.
- Det finns två apache-moduler, men bara en av dem behövs för att installeras:
1. mod-auth-gssapi-modul för apache.
2. mod_auth_kerb-modul för apache (utfasad).
1. Installera mod-auth-gssapi-modulen för apache:
- Använd följande kommando för att installera libapache2-mod-auth-gssapi-modul för Apache på debianbaserade system:
sudo apt-get -y install libapache2-mod-auth-gssapiOR
2. Installera mod_auth_kerb-modulen för apache (utfasad):
- Använd följande kommando för att installera auth_kerb-modul för Apache på Red Hat-baserade system. (För de senaste versionerna av RHEL använd mod-auth-gssapi-modulen)
yum install mod_auth_kerbSteg 4: Konfigurera Active Directory-domänen i Kerberos-konfigurationsfilen:
- Öppna och redigera krb5.conf fil.
Sökvägen till filen krb5.conf för RHEL är C:/etc/krb5.conf - Lägg till följande konfigurationskodavsnitt till krb5.conf fil under nämnda avsnitt:
- Navigera till [libdefaults] avsnitt och lägg till följande:
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true
- Navigera till [riket] avsnitt och lägg till följande:
EXAMPLE.COM = {
kdc = <DNS entries pointing to your primary domain controller>: Port
admin_server = <DNS entries pointing to your primary domain controller>: Port
}
- Navigera till [domain_realm] avsnitt och lägg till följande:
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
Obs: Ersätt AD DOMAIN CONTROLLER IP/DNS med din IP/DNS-adress. Se till EXAMPLE.COM ska stå i versaler.
Ersätt EXAMPLE.COM med Active Directory-domännamnet och se till att port 88 på AD Domain Controller är åtkomlig från denna server.
- Spara filen.
Steg 5: Konfigurera Active Directory-domänen i Kerberos-konfigurationsfilen:
- Redigera den pålagda värdkonfigurationsfilen /etc/httpd/conf/httpd.conf
- Lägg till följande avsnitt i katalogen på webbplatsen för mod_auth_gssapi
LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
<Directory "/placeholder">
AuthType GSSAPI
AuthName "Kerberos auth"
GssapiBasicAuth On
GssapiCredStore keytab:<PATH TO KEYTAB>
GssapiLocalName On
Require valid-user
</Directory>
OR
- Lägg till följande avsnitt i katalogen på webbplatsen för mod_auth_kerb (utfasad).
<Directory "/placeholder">
AuthType Kerberos
KrbAuthRealms EXAMPLE.COM
KrbServiceName HTTP/<Server Host Name>
Krb5Keytab <PATH TO KEYTAB>
KrbMethodNegotiate on
KrbMethodK5Passwd on
require valid-user
</Directory>
- Följande är komponenterna i ovanstående konfiguration:
| VÄG TILL KEYTAB | Tillgänglig sökväg till tangentbordet på den här servern. (etc/apache2/spn.keytab) |
| "/Platshållare" | Sökväg till dokumentroten |
- Efter denna konfiguration måste Apache startas om för att ändringarna ska träda i kraft.
Obs: När du har konfigurerat inställningarna, Klicka här för att konfigurera webbläsare för Kerberos SSO.
För att testa din Kerberos/NTLM SSO-konfiguration, Klicka här.
För att felsöka eventuella fel, vänligen Klicka här.
SSO med Windows-autentisering på IIS-server:
- Öppna kommandotolken i Administratörsläge.
- Kör följande kommando för att lägga till Service Principal Name (SPN) för tjänstekontot.
Obs: Anta att webbplatsen måste svara på http://maskinnamn och http://maskinnamn.domän.com. Vi måste ange dessa adresser i SPN-attributet för tjänstekontot.
Setspn -S http/<computer-name>.<domain-name> <domain-user-account>Exempel: C:\Users\Administrator> setspn -S HTTP/maskinnamn.domän.com tjänstekonto
Obs: "maskinnamn.domän.com" här är datornamn. Se till att det går att lösa på Windows-servern som kör AD-tjänsten.
- Kontrollera om detta har ställts in korrekt genom att köra följande kommando:
setspn -l domain or service_accountExempel: C:\Users\Administrator> setspn -l service_account eller C:\Users\Administrator> setspn -l domännamn

- Resultatet bör listas http/maskinnamn.domän.com
- Öppna Active Directory användare och datorer och välj från toppmenyn Visa >> Avancerade funktioner.
- Öppna tjänstekontot och gå till attributredigerare fliken, bläddra till servicePrincipalName för att verifiera SPN-inträde.
- Navigera till Delegation fliken.
- Välja Lita på den här användaren för delegering till valfri tjänst (endast Kerberos).

- Klicka Ansök.
- Öppna IIS-hanteraren och klicka på den webbplats som du vill aktivera Windows-autentisering för.
- Dubbelklicka på Autentisering.

- I avsnittet Autentisering kan du se att endast anonym autentisering är aktiverad som standard. IIS försöker alltid utföra anonym autentisering, alltså Inaktivera anonym autentisering och Aktivera Windows-autentisering.

- Högerklicka på Windows-autentisering och klicka på Leverantörer.

- Följande fönster visas. Se till "Förhandla" är överst på listan i leverantörslistan.

Obs: Som standard finns det två tillgängliga leverantörer, Negotiate och NTLM. Negotiate är en behållare som använder kerberos som den första autentiseringsmetoden, och om autentiseringen misslyckas används NTLM. Så det krävs att Negotiate kommer först i listan över leverantörer.
- Klicka på Ok för att stänga fönstret.
- För att konfigurera IIS Application Pool för att starta den från det skapade SPN-kontot, klicka på Applicationspooler för att öppna fönstret Application Pools.
- Högerklicka på domänen och från listan klicka på avancerade inställningar.

- I fönstret Avancerade inställningar under Processmodell klickar du på Identitet.

- Välj i Application Pool Identity Anpassat konto och klicka på in för att ställa in identiteten.
- Ändra det från ApplicationPoolIdentity till \.
Exempel: domain.com\service_account

- Gå till Konfigurationsredigerare.

- Välj i rullgardinsmenyn system.webServer > säkerhet > autentisering > windowsautentisering.

- Ändra använd AppPoolCredentials till True. och använd KernelMode till False.
Obs: Att ställa useAppPoolCredentials till True innebär att vi tillåter IIS att använda domänkontot för att dekryptera Kerberos-biljett från klienterna.
- Klicka Ansök.
- Starta om IIS-servern.
- Du kan kontrollera att kerberos-autentisering används på webbplatsen genom att övervaka HTTP-trafik med Fiddler.
Starta spelman och starta webbläsaren till önskad webbplats. Leta upp raden för webbplatsåtkomst i fönstrets vänstra sida. Välj fliken Inspektera från fönstrets högra sida. Det är uppenbart att Kerberos har använts för att autentisera på IIS-webbplatsen från raden "Authorization Header (Negotiate) seems to contain a Kerberos-ticket."

Obs: När du har konfigurerat inställningarna, Klicka här för att konfigurera webbläsare för Kerberos SSO.
För att testa din Kerberos/NTLM SSO-konfiguration, Klicka här.
För att felsöka eventuella fel, vänligen Klicka här.
SSO med Apache på Windows Xampp Server:
- Öppna kommandotolken i Administratörsläge.
- Kör följande kommando för att lägga till Service Principal Name (SPN) för tjänstekontot.
Setspn -s http/<computer-name>.<domain-name> <domain-user-account>Exempel: C:\Users\Administrator> setspn -S HTTP/maskinnamn.domän.com tjänstekonto
Obs:"maskinnamn.domän.com" här är datornamn. Se till att det går att lösa på Windows-servern som kör AD-tjänsten.
- Kontrollera om detta har ställts in korrekt genom att köra följande kommando:
setspn -l domain\service_account- Resultatet bör listas http/maskinnamn.domän.com
- Öppna Active Directory användare och datorer och välj från toppmenyn Visa >> Avancerade funktioner.
- Öppna tjänstekontot och gå till attributredigerare fliken, bläddra till servicePrincipalName för att verifiera SPN-inträde.
- Navigera till Delegation fliken.
- Välja Lita på den här användaren för delegering till valfri tjänst (endast Kerberos).

- Klicka Ansök.
- Klicka här för att ladda ner apache-modulen.
- kopiera mod_authnz_sspi.so från Apache24 > moduler mappen och placera den i katalogen moduler (C:\xampp\apache\modules).
- kopiera sspipkgs.exe fil från Apache24 -> bin och placera den i bin-mappen i din Xampp apache-mapp (.....\xampp\apache\bin) på din webbserver.
- Öppna httpd.conf (.....\xampp\apache\conf) och placera kodraden nedan i avsnittet LoadModule.
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so- Se till att följande moduler är okommenterade:
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so- Se också till att aktivera ldap-förlängning.
- Öppna filen httpd.conf från (.....\xampp\apache\conf\httpd.conf).
Gå till och klistra in raderna nedan efter #Kräv alla anslag.
<Directory "...../xampp/htdocs">
......
......
#Require all granted
AllowOverride None Options None
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
Require valid-user
</Directory>
- Starta om din Apache-server.
Obs: När du har konfigurerat inställningarna, Klicka här för att konfigurera webbläsare för Kerberos SSO.
För att testa din Kerberos/NTLM SSO-konfiguration, Klicka här.
För att felsöka eventuella fel, vänligen Klicka här.
Konfigurera webbläsare för Kerberos SSO:
Obs: Konfigurationen på klientsidan gör det möjligt för respektive webbläsare att använda SPNEGO för att förhandla fram Kerberos-autentisering för webbläsaren. Du måste se till att webbläsaren på en slutanvändares system är konfigurerad för att stödja Kerberos-autentisering.
Allmän Kerberos SSO-konfiguration för alla webbläsare:
- Gå till Kontrollpanelen och klicka på Nätverk och Internet >> Internetalternativ.
- Detta öppnar ett fönster för Internetegenskaper. Klicka på Säkerhet >> Lokalt intranät >> Webbplatser.

- Klicka sedan på Avancerad knapp.

- I Lägg till denna webbplats i zonen lägg till webbadressen som du vill logga in med SSO.

- Klicka Verktyg > Internetalternativ > Säkerhet > Lokalt intranät > Anpassad nivå.
- Rulla ned till alternativen för Användarautentisering och välj Automatisk inloggning endast i intranätszonen.

- Klicka på Ok knappen och starta sedan om din webbläsare.
När du är klar med ovanstående inställningar behöver du inte konfigurera webbläsarinställningarna för Internet Explorer, Google Chrome och Apple Safari.
- Internet Explorer
- Google Chrome
- Mozilla Firefox
- Apple Safari
Testa din Kerberos/NTLM SSO-konfiguration:
Tidssynkronisering:
Kerberos-protokollet kräver att tiden för klienten och servern matchar: om klientens systemklocka inte matchar serverns, kommer autentiseringen att misslyckas. Det enklaste sättet att synkronisera systemklockorna är att använda en NTP-server (Network Time Protocol).
Verifiera med kommandon:
För att verifiera din keytab- och kerberos-konfiguration kan du köra följande kommandon:
- Klist: Kommandot klist visar innehållet i en Kerberos autentiseringscache eller nyckeltabell. Med detta kommando kan du kontrollera om du har en giltig biljett eller inte.
- klist -t -k etc/apache2/spn.keytab: För att lista alla poster i nyckeltabellen etc/apache2/spn.keytab med tidsstämplar.
- klist -ek /etc/apache2/spn.keytab: Visar krypteringstypen för sessionsnyckeln och biljetten och listar posterna i en nyckeltabell.
- kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/ webbserver.dindomän.com @DINDOMÄN.COM: Verifiera Kerberos-autentisering med keytab-fil.
- kdestroy -A: Du kan använda detta kommando på Linux för att återställa alla Kerberos-token på din lokala dator. Kommandot förstör din tidigare Kerberos-biljett.
- klistrengöring: Du kan använda detta kommando på Windows för att återställa alla Kerberos-token på din lokala dator. Kommandot förstör din tidigare Kerberos-biljett.
- KRB5_TRACE=/dev/stdout kinit -kt /etc/krb5.keytab HTTP/≶Servervärdnamn>: Du kan använda det här kommandot i din linux-webbserver för att få Kerberos-biljett med hjälp av keytab-filen och få detaljerad information för felsökning av Kerberos-autentiseringsprocessen genom att aktivera Kerberos-spårning.
Testkonfiguration:
- För att testa SSO-konfigurationen skapa en test.php filen i din WordPress rotkatalog.
- Ange raden nedan:
<?php
var_dump($_SERVER);
?>
- Spara filen och öppna den i webbläsaren. Du kommer att se $_SERVER innehåll.
- Söka efter "REMOTE_USER" och det bör innehålla det för närvarande inloggade användarnamnet.
Obs: Vänligen ta bort test.php fil efter att ha verifierat din konfiguration. Eftersom den innehåller värdefull information.
Kerberos-autentisering över flera domäner:
- Skapa separata tangenttabeller på varje domän och slå samman dem med ktutil-verktyget:
ktutil
ktutil: read_kt <keytab_filename_1>
ktutil: read_kt <keytab_filename_2>
ktutil: read_kt <keytab_filename_3>
ktutil: write_kt spn.keytab
ktutil: quit
- Verifiera sammanslagningen med kommandot nedan:
klist -k spn.keytab
- Konfigurera krb5.conf:
krb5.conf-filen innehåller Kerberos-konfigurationsinformation som inkluderar KDC- och adminservrar för en eller flera Kerberos-sfärer, standardvärden för den aktuella sfären och mappningar av värdnamn till Kerberos-världen. I händelse av flera domäner bör krb5.conf-filen uppdateras med information om olika domäner/domänområden för att autentisering ska fungera.
Felsökning:
Följande är de vanligaste felmeddelandena:
-
kinit: Pre-authentication failed: Invalid argument while getting initial credentialsrc4-krypteringstypen som fortfarande används flitigt i AD-miljöer men som redan är inaktiverad som standard i RHEL-8.3. Du kan hänvisa till exemplet nedan för att lägga till krypteringstyp till din keytab-fil.
or
GSS ERROR gss_accept_sec_context(): [Unspecified GSS failure. Minor code may provide more information (Request ticket server HTTP/<Server Host Name>@EXAMPLE.COM kvno x enctype rc4-hmac found in keytab but cannot decrypt ticket)]
Exempel:ktutil
addent -password -p HTTP/<Server Host Name>@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
wkt spn.keytab.
Se till Kerberos AES 256 bitars kryptering stöds av användaren "Konto" inställningar.

-
Unspecified GSS failure. Minor code may provide more information (Clock skew too great)Kerberos är väldigt tidskänslig. Kontrollera att klockorna på värdarna för Active Directory och webbservern är identiska. Konfigurera en av dina domänkontrollanter för att fungera som NTP-server för dina klientdatorer.
or
kinit: krb5_get_init_creds: Too large time skew -
gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied)Felaktiga filsystemsbehörigheter för /etc/apache2/spn.keytab, dvs inte läsbar för webbserverns Linux-användare.
För att ändra filsystemsbehörigheter använd chmod 644 /etc/apache2/spn.keytab -
gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found).Saknar tjänsteprincip (möjligen HTTP/webserver.dindomän.com @DINDOMÄN.COM) i /etc/apache2/spn.keytab. -
Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration.gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)Webbplatsen är inte i zonen "Lokalt intranät" i IE eller IE är felaktigt konfigurerad, se Autentisering använder NTLM istället för Kerberos. -
gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ).Fel kvno eller maskinlösenord i etc/apache2/spn.keytab. Återskapa tangentbordet med rätt information.
Problem med lokal Kerberos-biljettcache på din arbetsstation, använd Kerbtray.exe för att rensa biljettcachen och öppna webbplatsen i IE igen. -
kinit: KDC has no support for encryption type while getting initial credentialsÄndra standardkrypteringstypen i avsnittet libdefaults i filen /etc/apache2/krb5.conf. Lägg till default_tgs_enctypes och default_tkt_enctypes till din konfiguration. -
[libdefaults]
default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5kinit: krb5_get_init_creds: Error from KDC: CLIENT EXPIREDDitt Kerberos-konto är inte längre aktivt. Kontouppgifterna måste förnyas.
or
kinit: Client's entry in database has expired while getting initial credentials -
kinit: krb5_cc_get_principal: No credentials cache file foundFel domän var inriktad när kommandot kinit kördes. Verifiera domännamnet, det ska vara med versaler EXAMPLE.COM
or
kinit: krb5_get_init_creds: Error from KDC: CLIENT_NOT_FOUND -
kinit : Cannot find KDC for requested realm while getting initial credentials/etc/apache2/krb5.conf-filen innehåller inte domännamnet för den aktiva katalogen (.EXAMPLE.COM). -
kinit: Preauthentication failed while getting initial credentialsOrsakas av att felaktigt skriva in kerberos-lösenordet. Försök igen. Eller på grund av systemets klocka. Se till att datumkommandot returnerar en korrekt tid inom 5 minuter. -
kinit: Client not found in Kerberos database while getting initial credentialsDin kerberos-principal kan skilja sig från ditt användarnamn på ditt lokala system. -
kinit: Client's entry in database has expiredDu måste ändra ditt kerberos-lösenord.
Vanliga frågor
Fler vanliga frågor ➔Kan jag använda en befintlig LDAP-användare som Kerberos Service-principal?
Ja, du kan använda en befintlig LDAP-användare som Kerberos-tjänstehuvud. Den här användaren måste dock ha ett lösenord som aldrig upphör att gälla. Se till att det här kontot inte används av någon användare eftersom applikationen använder detta konto som Kerberos-tjänstens principal och motsvarande tangenttab för att få en kerberos-biljett.
Vad är en "Kerberos-klient", "Kerberos-server" och "applikationsserver"?
All autentisering i Kerberos sker mellan klienter och servrar. Därför kallas varje enhet som tar emot en tjänstebiljett för en Kerberos-tjänst som en "Kerberos-klient" i Kerberos terminologi. Användare anses ofta vara kunder, men vilken som helst kan vara en.
Nyckeldistributionscentret, eller KDC för kort, kallas vanligtvis en "Kerberos-server". Både Authentication Service (AS) och Ticket Granting Service (TGS) implementeras av KDC. Varje lösenord som är kopplat till varje huvudman lagras i KDC. På grund av detta är det viktigt att KDC är så säkert som möjligt.
Frasen "applikationsserver" syftar ofta på Kerberiserad programvara som klienter använder för att interagera medan de autentiseras med Kerberos-biljetter. Ett exempel på en applikationsserver är Kerberos telnet-demon.
Varför får jag en uppmaning att ange mina referenser?
Detta händer när NTLM-protokollet används för autentisering istället för Kerberos.
Detta kan uppstå på grund av flera orsaker:
- Kontrollera om du använder en domänansluten dator för att komma åt webbplatsen.
- Se till att tiden är synkroniserad mellan LDAP-servern och webbservern.
- Bekräfta om dina webbläsarinställningar och internetalternativ är konfigurerade för Kerberos SSO.
- Om du fortfarande har det här problemet, kontakta oss gärna.
Relaterade artiklar
Tack för ditt svar. Vi återkommer snart.
Något gick fel. Skicka din fråga igen


