Sökresultat :

×

Guide för att ställa in Kerberos Single Sign-On (SSO)

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).



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).


NTLM Authentication Protocol single sign-on (SSO) flöde

  • 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.

Notera och kontakta oss - kerberos SSO ldap login enkel inloggning

Obs: Windows-autentisering använder antingen Kerberos-autentiseringsprotokoll eller NTLM-autentiseringsprotokoll, beroende på klient- och serverkonfigurationer.



Ett säkerhetsprotokoll för datornätverk som kallas Kerberos autentiserar tjänsteförfrågningar mellan två eller flera betrodda värdar över ett opålitligt nätverk, till exempel internet

  • 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.


Förkunskaper:

  1. Ett tjänstekonto/användarkonto i Active Directory.
  2. 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

Notera och kontakta oss - kerberos SSO ldap login enkel inloggning

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)
Notera och kontakta oss - kerberos SSO ldap login enkel inloggning

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).
Kerberos tjänst SSO Delegation för Windows Active Directory

  • 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.keytab

Steg 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:


Notera och kontakta oss - kerberos SSO ldap login enkel inloggning

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-gssapi

OR


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

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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
LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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>

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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.

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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.


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

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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)
LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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.keytab

Steg 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
LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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:

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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-gssapi

OR


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_kerb

Steg 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

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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.

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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.



  • Ö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.
LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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_account

Exempel: C:\Users\Administrator> setspn -l service_account eller C:\Users\Administrator> setspn -l domännamn

Ange SPN-post (Service Principal name) för Kerberos SSO-autentisering på Windows IIS-server

  • 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).
Kerberos servicedelegation för Kerberos enkel inloggning för RHEL, CentOS, Ubuntu, Fedora-system

  • Klicka Ansök.
  • Öppna IIS-hanteraren och klicka på den webbplats som du vill aktivera Windows-autentisering för.
  • Dubbelklicka på Autentisering.
Windows IIS-hanteraren för att konfigurera Windows-autentiseringsinställningar för webbplatser för att aktivera Kerberos SSO

  • 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.
Aktivera Windows-autentisering från Windows IIS-hanteraren för Kerberos SSO på det konfigurerade programmet

  • Högerklicka på Windows-autentisering och klicka på Leverantörer.
Internetinformationstjänst IIS-hanteraren lista över leverantörer av Windows-autentisering

  • Följande fönster visas. Se till "Förhandla" är överst på listan i leverantörslistan.
Windows IIS-hanteraren aktiverar Windows-autentiseringsleverantören för enkel inloggning SSO med Kerberos-protokoll

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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.
Avancerade inställningar för applikationspoolwebbplatsen för Windows Internet Information Service (IIS) för att aktivera Kerberos SSO

  • I fönstret Avancerade inställningar under Processmodell klickar du på Identitet.
Konfigurera identitet från avancerade inställningar för Windows IIS Manager-programpoolen för att aktivera Kerberos SSO

  • 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

Kerberos SSO på Windows konfigurerar anpassat konto från IIS-hanterarens identitetsinställningar för programpoolen

  • Gå till Konfigurationsredigerare.
Gå till Windows IIS-hanterarens konfigurationsredigerare för att aktivera Kerberos / NTLM-autentisering på webbplatsen

  • Välj i rullgardinsmenyn system.webServer > säkerhet > autentisering > windowsautentisering.
Konfigurera useAppPoolCredentials för att konfigurera Kerberos-autentisering för Windows IIS-server

  • Ändra använd AppPoolCredentials till True. och använd KernelMode till False.
LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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."

Kerberos-biljett finns i auktoriseringshuvudet under Kerberos SSO-process

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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.



  • Ö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


LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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).
Kerberos för Windows-autentisering på IIS-server

  • 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.

LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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.




LDAP-inloggning för- intranätsajter - kerberos SSO enkel inloggning

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.
Konfigurera webbläsare för Kerberos-autentisering med inställningar för internetalternativ

  • Klicka sedan på Avancerad knapp.
Konfigurera förhandsinställningar från internetalternativ för Kerberos SSO på Chrome och Internet Explorer

  • I Lägg till denna webbplats i zonen lägg till webbadressen som du vill logga in med SSO.
Konfigurera webbplatsen i Intranet Zone från internetalternativ för Kerberos 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.
Automatisk inloggning till intranätszonen med Kerberos autentiseringsprotokoll

  • 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:

Som standard kommer de allmänna webbläsarkonfigurationsinställningarna att vara tillämpliga, inga fler ytterligare inställningar krävs för Internet Explorer.

Google Chrome:

Som standard är de allmänna webbläsarkonfigurationsinställningarna tillämpliga, inga fler ytterligare inställningar krävs för Google Chrome.

Mozilla Firefox:

  • Öppna webbläsaren Mozilla Firefox och ange about: config i adressfältet.
  • Sök efter network.negotiate-auth.trusted-uris Inställningsnamn och klicka på Redigera. ange värdnamnet eller domänen för webbservern som skyddas av Kerberos HTTP SPNEGO. Ange flera domäner och värdnamn separerade med kommatecken.
Konfigurera mozilla Firefox för kerberos SSO (enkel inloggning)

  • Sök efter network.automatic-ntlm-auth.trusted-uris Inställningsnamn och klicka på Redigera. ange värdnamnet eller domänen för webbservern som skyddas av Kerberos HTTP SPNEGO. Ange flera domäner och värdnamn separerade med kommatecken.
konfigurera mozilla Firefox-inställningar för kerberos-autentisering

  • Klicka OK och starta sedan om din webbläsare.

Apple Safari:

Safari på Windows stöder SPNEGO utan ytterligare konfiguration. Den stöder både kerberos och NTLM som undermekanism till SPENGO.



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:

  1. 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.
  2. klist -t -k etc/apache2/spn.keytab: För att lista alla poster i nyckeltabellen etc/apache2/spn.keytab med tidsstämplar.
  3. klist -ek /etc/apache2/spn.keytab: Visar krypteringstypen för sessionsnyckeln och biljetten och listar posterna i en nyckeltabell.
  4. kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/ webbserver.dindomän.com @DINDOMÄN.COM: Verifiera Kerberos-autentisering med keytab-fil.
  5. 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.
  6. 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.
  7. 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.
ldap-inloggning för intranätsajter kerberos sso

Obs: Vänligen ta bort test.php fil efter att ha verifierat din konfiguration. Eftersom den innehåller värdefull information.


  • 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.



Följande är de vanligaste felmeddelandena:


  • kinit: Pre-authentication failed: Invalid argument while getting initial credentials
    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)]
    rc4-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.
    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.

    kerberos krbtgt egenskaper


  • Unspecified GSS failure. Minor code may provide more information (Clock skew too great)
    or
    kinit: krb5_get_init_creds: Too large time skew
    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.

  • 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-md5
    kinit: krb5_get_init_creds: Error from KDC: CLIENT EXPIRED
    or
    kinit: Client's entry in database has expired while getting initial credentials
    Ditt Kerberos-konto är inte längre aktivt. Kontouppgifterna måste förnyas.

  • kinit: krb5_cc_get_principal: No credentials cache file found
    or
    kinit: krb5_get_init_creds: Error from KDC: CLIENT_NOT_FOUND
    Fel domän var inriktad när kommandot kinit kördes. Verifiera domännamnet, det ska vara med versaler EXAMPLE.COM

  • 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 credentials Orsakas 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 credentials Din kerberos-principal kan skilja sig från ditt användarnamn på ditt lokala system.

  • kinit: Client's entry in database has expired Du måste ändra ditt kerberos-lösenord.


Fler vanliga frågor ➔

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.

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.

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.




 Tack för ditt svar. Vi återkommer snart.

Något gick fel. Skicka din fråga igen

Vi kontaktar dig tidigast!


ADFS_sso ×
Hej där!

Behövs hjälp? Vi är här!

stödja