Kerberos-begränsad delegering för enkel inloggning (SSO) till dina appar med programproxy
Du kan ange enkel inloggning för lokala program som publicerats via programproxy och som skyddas med integrerad Windows-autentisering. Dessa program kräver en Kerberos-biljett för åtkomst. Programproxy använder Kerberos-begränsad delegering (KCD) för att stödja dessa program.
Mer information om enkel inloggning (SSO) finns i Vad är enkel inloggning?.
Du kan aktivera enkel inloggning till dina program med hjälp av integrerad Windows-autentisering (IWA) genom att ge privata nätverksanslutningar behörighet i Active Directory för att personifiera användare. Anslutningsapparna använder den här behörigheten för att skicka och ta emot token för deras räkning.
Så här fungerar enkel inloggning med KCD
Det här diagrammet förklarar flödet när en användare försöker komma åt ett lokalt program som använder IWA.
- Användaren anger URL:en för att komma åt det lokala programmet via programproxyn.
- Programproxy omdirigerar begäran till Microsoft Entra-autentiseringstjänster för att förautentisera. I det här läget tillämpar Microsoft Entra-ID alla tillämpliga autentiserings- och auktoriseringsprinciper, till exempel multifaktorautentisering. Om användaren verifieras skapar Microsoft Entra-ID en token och skickar den till användaren.
- Användaren skickar token till programproxyn.
- Programproxy verifierar token och hämtar användarens huvudnamn (UPN) från den, och sedan hämtar anslutningsappen UPN och TJÄNSTENs huvudnamn (SPN) via en dually autentiserad säker kanal.
- Anslutningsprogrammet genomför en KCD-förhandling (Kerberos-begränsad delegering) med den lokala AD:n och personifierar användaren för att skaffa en Kerberos-token till programmet.
- Active Directory skickar programmets Kerberos-token till anslutningsprogrammet.
- Anslutningsprogrammet skickar den ursprungliga begäran till programservern med den Kerberos-token som erhölls från AD.
- Programmet skickar svaret till anslutningsappen, som sedan returneras till programproxytjänsten och slutligen till användaren.
Förutsättningar
Innan du kommer igång med enkel inloggning för IWA-program kontrollerar du att din miljö är klar med följande inställningar och konfigurationer:
- Dina appar, till exempel SharePoint-webbappar, är inställda på att använda integrerad Windows-autentisering. Mer information finns i Aktivera stöd för Kerberos-autentisering eller för SharePoint i Planera för Kerberos-autentisering i SharePoint 2013.
- Alla dina appar har namn på tjänstens huvudnamn.
- Servern som kör anslutningsappen och servern som kör appen är domänanslutna och en del av samma domän eller betrodda domäner. Mer information om domänanslutning finns i Ansluta en dator till en domän.
- Servern som kör anslutningsappen har åtkomst till att läsa attributet TokenGroupsGlobalAndUniversal för användare. Den här standardinställningen kan ha påverkats av säkerhetshärdning av miljön. Det gör du normalt genom att lägga till anslutningsservrarna i "Windows-auktoriseringsåtkomstgrupp".
Konfigurera Active Directory
Active Directory-konfigurationen varierar beroende på om din privata nätverksanslutning och programservern finns i samma domän eller inte.
Anslutningsprogram och programserver i samma domän
I Active Directory går du till Verktyg>Användare och datorer.
Välj den server som kör anslutningsappen.
Högerklicka och välj Egenskaper>delegering.
Välj Lita på den här datorn för delegering till endast angivna tjänster.
Välj Använd valfritt autentiseringsprotokoll.
Under Tjänster som det här kontot kan presentera delegerade autentiseringsuppgifter till lägger du till värdet för PROGRAMserverns SPN-identitet. Detta gör det möjligt för den privata nätverksanslutningsappen att personifiera användare i AD mot de program som definieras i listan.
Anslutningsprogram och programserver i olika domäner
En lista över förutsättningar för att arbeta med KCD mellan domäner finns i Kerberos-begränsad delegering mellan domäner.
principalsallowedtodelegateto
Använd egenskapen för tjänstkontot (dator eller dedikerad domänanvändarkonto) för webbprogrammet för att aktivera Kerberos-autentiseringsdelegering från programproxyn (anslutningsappen). Programservern körs i kontextenwebserviceaccount
för och den delegerande servern ärconnectorcomputeraccount
. Kör kommandona nedan på en domänkontrollant (kör Windows Server 2012 R2 eller senare) i domänenwebserviceaccount
för . Använd platta namn (inte UPN) för båda kontona.webserviceaccount
Om är ett datorkonto använder du följande kommandon:$connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com Set-ADComputer -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector Get-ADComputer webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
webserviceaccount
Om är ett användarkonto använder du följande kommandon:$connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com Set-ADUser -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector Get-ADUser webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
Konfigurera enkel inloggning
Publicera programmet enligt anvisningarna i Publicera program med programproxy. Se till att välja Microsoft Entra-ID som förautentiseringsmetod.
När programmet visas i listan över företagsprogram väljer du det och klickar på Enkel inloggning.
Ange läget för enkel inloggning till Integrerad Windows-autentisering.
Ange det interna program-SPN:et för programservern. I det här exemplet är
http/www.contoso.com
SPN för vårt publicerade program . Det här SPN:et måste finnas i listan över tjänster som anslutningsappen kan presentera delegerade autentiseringsuppgifter för.Välj den delegerade inloggningsidentiteten för anslutningsappen som ska användas för dina användares räkning. Mer information finns i Arbeta med olika lokala identiteter och molnidentiteter.
Enkel inloggning för appar som inte är Windows-appar
Kerberos-delegeringsflödet i Microsoft Entra-programproxyn startar när Microsoft Entra autentiserar användaren i molnet. När begäran tas emot lokalt utfärdar microsoft Entra-anslutningsprogrammet för privata nätverk en Kerberos-biljett åt användaren genom att interagera med den lokala Active Directory. Den här processen kallas Kerberos-begränsad delegering (KCD).
I nästa fas skickas en begäran till serverdelsprogrammet med den här Kerberos-biljetten.
Det finns flera mekanismer som definierar hur kerberos-biljetten ska skickas i sådana begäranden. De flesta servrar som inte är Windows-servrar förväntar sig att ta emot den i form av SPNEGO-token. Den här mekanismen stöds på Microsoft Entra-programproxy, men är inaktiverad som standard. En anslutningsapp kan konfigureras för SPNEGO eller standard-Kerberos-token, men inte båda.
Om du konfigurerar en anslutningsdator för SPNEGO kontrollerar du att alla andra anslutningsappar i den anslutningsgruppen också har konfigurerats med SPNEGO. Program som förväntar sig standard-Kerberos-token ska dirigeras via andra anslutningsappar som inte har konfigurerats för SPNEGO. Vissa webbprogram accepterar båda formaten utan att det krävs någon ändring i konfigurationen.
Så här aktiverar du SPNEGO:
Öppna en kommandotolk som körs som administratör.
Kör följande kommandon på de anslutningsservrar som behöver SPNEGO från kommandotolken.
REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft Entra private network connector" /v UseSpnegoAuthentication /t REG_DWORD /d 1 net stop WAPCSvc & net start WAPCSvc
Icke-Windows-appar använder vanligtvis användarnamn eller SAM-kontonamn i stället för domänens e-postadresser. Om den situationen gäller för dina program måste du konfigurera fältet delegerad inloggningsidentitet för att ansluta dina molnidentiteter till dina programidentiteter.
Arbeta med olika lokala identiteter och molnidentiteter
Programproxy förutsätter att användarna har exakt samma identitet i molnet och lokalt. Men i vissa miljöer kan organisationer på grund av företagsprinciper eller programberoenden behöva använda alternativa ID:er för inloggning. I sådana fall kan du fortfarande använda KCD för enkel inloggning. Konfigurera en delegerad inloggningsidentitet för varje program för att ange vilken identitet som ska användas vid enkel inloggning.
Med den här funktionen kan många organisationer som har olika lokala identiteter och molnidentiteter ha enkel inloggning från molnet till lokala appar utan att användarna behöver ange olika användarnamn och lösenord. Detta omfattar organisationer som:
- Ha flera domäner internt (joe@us.contoso.com, joe@eu.contoso.com) och en enda domän i molnet (joe@contoso.com).
- Ha ett icke-dirigerbart domännamn internt (joe@contoso.usa) och ett lagligt domännamn i molnet.
- Använd inte domännamn internt (joe)
- Använd olika alias lokalt och i molnet. Till exempel jämfört joe-johns@contoso.com med joej@contoso.com
Med programproxy kan du välja vilken identitet som ska användas för att hämta Kerberos-biljetten. Den här inställningen är per program. Vissa av dessa alternativ är lämpliga för system som inte accepterar e-postadressformat, andra är utformade för alternativ inloggning.
Om delegerad inloggningsidentitet används kanske värdet inte är unikt för alla domäner eller skogar i din organisation. Du kan undvika det här problemet genom att publicera dessa program två gånger med hjälp av två olika anslutningsgrupper. Eftersom varje program har en annan användargrupp kan du ansluta dess anslutningsappar till en annan domän.
Om det lokala SAM-kontonamnet används för inloggningsidentiteten måste datorn som är värd för anslutningsappen läggas till i domänen där användarkontot finns.
Konfigurera enkel inloggning för olika identiteter
Konfigurera Microsoft Entra Connect-inställningar så att huvudidentiteten är e-postadressen (e-postadressen). Detta görs som en del av anpassningsprocessen genom att ändra fältet Användarens huvudnamn i synkroniseringsinställningarna. De här inställningarna avgör också hur användare loggar in på Microsoft 365, Windows-datorer och andra program som använder Microsoft Entra-ID som identitetsarkiv.
I programkonfigurationsinställningarna för det program som du vill ändra väljer du den delegerade inloggningsidentitet som ska användas:
- Användarens huvudnamn (till exempel
joe@contoso.com
) - Alternativt namn på användarens huvudnamn (till exempel
joed@contoso.local
) - Användarnamnsdel i användarens huvudnamn (till exempel
joe
) - Användarnamnsdel i alternativt huvudnamn för användaren (till exempel
joed
) - Lokalt SAM-kontonamn (beror på domänkontrollantkonfigurationen)
- Användarens huvudnamn (till exempel
Felsöka enkel inloggning för olika identiteter
Om det finns ett fel i SSO-processen visas det i händelseloggen för anslutningsdatorn enligt beskrivningen i Felsökning. Men i vissa fall skickas begäran till serverdelsprogrammet medan programmet svarar i olika andra HTTP-svar. Felsökning av dessa fall bör börja med att undersöka händelsenummer 24029 på anslutningsdatorn i händelseloggen för programproxysessionen. Användaridentiteten som användes för delegering visas i fältet "användare" i händelseinformationen. Om du vill aktivera sessionsloggen väljer du Visa analys- och felsökningsloggar på visningsmenyn för loggboken.