Dela via


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.

Flödesdiagram för Microsoft Entra-autentisering

  1. Användaren anger URL:en för att komma åt det lokala programmet via programproxyn.
  2. 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.
  3. Användaren skickar token till programproxyn.
  4. Programproxy validerar token och hämtar upn (User Principal Name) från den, och sedan hämtar Anslut eller UPN och TJÄNSTENs huvudnamn (SPN) via en vederbörligen autentiserad säker kanal.
  5. 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.
  6. Active Directory skickar programmets Kerberos-token till anslutningsprogrammet.
  7. Anslutningsprogrammet skickar den ursprungliga begäran till programservern med den Kerberos-token som erhölls från AD.
  8. Programmet skickar svaret till Anslut eller, 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:

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

  1. I Active Directory går du till Verktyg>Användare och datorer.

  2. Välj den server som kör anslutningsappen.

  3. Högerklicka och välj Egenskaper>delegering.

  4. Välj Lita på den här datorn för delegering till endast angivna tjänster.

  5. Välj Använd valfritt autentiseringsprotokoll.

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

    skärmbild av Anslut or-SVR Fönstret Egenskaper

Anslutningsprogram och programserver i olika domäner

  1. En lista över förutsättningar för att arbeta med KCD mellan domäner finns i Kerberos-begränsad delegering mellan domäner.

  2. 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 kontexten webserviceaccount för och den delegerande servern är connectorcomputeraccount. Kör kommandona nedan på en domänkontrollant (kör Windows Server 2012 R2 eller senare) i domänen webserviceaccountfö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

  1. Publicera programmet enligt anvisningarna i Publicera program med programproxy. Se till att välja Microsoft Entra-ID som förautentiseringsmetod.

  2. När programmet visas i listan över företagsprogram väljer du det och klickar på Enkel inloggning.

  3. Ange läget för enkel inloggning till Integrerad Windows-autentisering.

  4. Ange det interna program-SPN:et för programservern. I det här exemplet är http/www.contoso.comSPN 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.

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

    Avancerad programkonfiguration

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 Anslut eller-gruppen 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:

  1. Öppna en kommandotolk som körs som administratör.

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

Skärmbild av parametern Delegerad inloggningsidentitet

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 Anslut eller-grupper. Eftersom varje program har en annan användargrupp kan du ansluta dess Anslut orer 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

  1. Konfigurera Microsoft Entra-Anslut 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.
    Skärmbild av att identifiera användare – listrutan Användarnamn för användarens huvudnamn

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

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.

Nästa steg