Federation med en kunds AD FS
Den här artikeln beskriver hur ett SaaS-program för flera klientmedlemmar kan stödja autentisering via Active Directory Federation Services (AD FS) (AD FS) för att kunna federera med en kunds AD FS.
Federationsscenario
Azure Active Directory (Azure AD) gör det enkelt att logga in användare från Azure AD-klienter, inklusive Office365- och Dynamics CRM Online-kunder. Men vad gäller för kunder som använder lokal Active Directory på ett företags intranät?
Ett alternativ är att dessa kunder synkroniserar sin lokala AD med Azure AD med hjälp av Azure AD Anslut. Vissa kunder kan dock inte använda den här metoden på grund av företagets IT-policy eller andra orsaker. I så fall är ett annat alternativ att federera via Active Directory Federation Services (AD FS) (AD FS).
Så här aktiverar du det här scenariot:
- Kunden måste ha en Internetuppkoppling AD FS servergrupp.
- SaaS-providern distribuerar sin egen AD FS servergrupp.
- Kunden och SaaS-providern måste konfigurera federationsförtroende. Det här är en manuell process.
Det finns tre huvudroller i förtroenderelationen:
Kundens kontopartner AD FS, ansvarar för att autentisera användare från kundens AD och skapa säkerhetstoken med användaranspråk.
SaaS-providerns AD FS är resurspartnern, som litar på kontopartnern och tar emot användaranspråken.
Programmet konfigureras som en förlitande part (RP) i SaaS-providerns AD FS.

Anteckning
I den här artikeln förutsätter vi att programmet använder OpenID Anslut som autentiseringsprotokoll. Ett annat alternativ är att använda WS-Federation.
För OpenID Anslut måste SaaS-providern använda AD FS 2016 som körs i Windows Server 2016. AD FS 3.0 stöder inte OpenID-Anslut.
Ett exempel på hur du använder WS-Federation med ASP.NET 4 finns i exemplet active-directory-dotnet-webapp-wsfederation.
Autentiseringsflöde
- När användaren klickar på "logga in" omdirigeras programmet till en OpenID Anslut-slutpunkt på SaaS-providerns AD FS.
- Användaren anger sitt organisationsanvändarnamn ("
alice@corp.contoso.com"). AD FS använder identifiering av hemsfär för att omdirigera till kundens AD FS, där användaren anger sina autentiseringsuppgifter. - Kundens kunds AD FS användaranspråk till SaaS-providerns AD FS med hjälp av WF-Federation (eller SAML).
- Anspråk flödar från AD FS till appen med hjälp av OpenID-Anslut. Detta kräver en protokollövergång från WS-Federation.
Begränsningar
Som standard tar det förlitande partprogrammet bara emot en fast uppsättning anspråk som är tillgängliga i id_token, som visas i följande tabell. Med AD FS 2016 kan du anpassa id_token i OpenID-Anslut scenarier. Mer information finns i Anpassade ID-token i AD FS.
| Begär | Description |
|---|---|
| aud | Publik. Programmet som anspråken utfärdades för. |
| authenticationinstant | Direktautentisering. Den tid då autentiseringen skedde. |
| c_hash | Kodhashvärde. Det här är en hash för tokeninnehållet. |
| exp | Förfallotid. Efter vilken tid token inte längre kommer att godkännas. |
| Iat | Utfärdat på. Tiden då token utfärdades. |
| Iss | Emittenten. Värdet för det här anspråket är alltid resurspartnerns AD FS. |
| name | Användarnamn. Exempel: john@corp.fabrikam.com |
| nameidentifier | Namnidentifierare. Identifieraren för namnet på den entitet som token utfärdades för. |
| Nonce | Sessions-nonce. Ett unikt värde som genereras av AD FS för att förhindra återuppspelningsattacker. |
| Upn | UPN (User Principal Name). Exempel: john@corp.fabrikam.com |
| pwd_exp | Lösenordets giltighetstid. Antal sekunder tills användarens lösenord eller en liknande autentiseringshemlighet, till exempel en PIN-kod. Upphör. |
Anteckning
"iss"-anspråket innehåller AD FS partnerns (vanligtvis identifierar det här anspråket SaaS-providern som utfärdare). Den identifierar inte kundens AD FS. Du hittar kundens domän som en del av UPN.
Resten av den här artikeln beskriver hur du ställer in förtroenderelationen mellan RP (appen) och kontopartnern (kunden).
AD FS distribution
SaaS-providern kan AD FS antingen lokalt eller på virtuella Azure-datorer. För säkerhet och tillgänglighet är följande riktlinjer viktiga:
- Distribuera minst två AD FS och två AD FS proxyservrar för att uppnå bästa tillgänglighet för AD FS tjänsten.
- Domänkontrollanter och AD FS bör aldrig exponeras direkt mot Internet och bör finnas i ett virtuellt nätverk med direkt åtkomst till dem.
- Proxyservrar för webbprogram (tidigare AD FS proxyservrar) måste användas för att publicera AD FS-servrar på Internet.
Om du vill konfigurera en liknande topologi i Azure måste du använda virtuella nätverk, nätverkssäkerhetsgrupper, virtuella datorer och tillgänglighetsuppsättningar. Mer information finns i Riktlinjer för att distribuera Windows Server Active Directory på Azure Virtual Machines.
Konfigurera OpenID Anslut autentisering med AD FS
SaaS-providern måste aktivera OpenID-Anslut mellan programmet och AD FS. Det gör du genom att lägga till en programgrupp i AD FS. Du hittar detaljerade anvisningar i det här blogginläggetunder "Konfigurera en webbapp för OpenId Anslut logga in AD FS".
Konfigurera sedan OpenID-Anslut mellanprogram. Metadataslutpunkten är https://domain/adfs/.well-known/openid-configuration , där domänen är SaaS-providerns AD FS domän.
Vanligtvis kan du kombinera detta med andra OpenID Anslut slutpunkter (till exempel Azure AD). Du behöver två olika inloggningsknappar eller något annat sätt att särskilja dem så att användaren skickas till rätt autentiseringsslutpunkt.
Konfigurera AD FS resurspartner
SaaS-providern måste göra följande för varje kund som vill ansluta via AD FS:
- Lägg till ett anspråksleverantörsförtroende.
- Lägg till anspråksregler.
- Aktivera identifiering av hemsfär.
Här är stegen i detalj.
Lägga till anspråksleverantörsförtroende
- I Serverhanteraren klickar du på Verktyg, och välj sedan AD FS Management.
- I konsolträdet, under AD FS,högerklickar du på Anspråksleverantörsförtroende. Välj Lägg till anspråksleverantörsförtroende.
- Klicka på Starta för att starta guiden.
- Välj alternativet "Importera data om anspråksprovidern som publicerats online eller i ett lokalt nätverk". Ange URI för kundens federationsmetadataslutpunkt. (Exempel:
https://contoso.com/FederationMetadata/2007-06/FederationMetadata.xml.) Du måste hämta detta från kunden. - Slutför guiden med standardalternativen.
Redigera anspråksregler
- Högerklicka på det nyligen tillagda anspråksleverantörsförtroendet och välj Redigera anspråksregler.
- Klicka på Lägg till regel.
- Välj "Pass Through or Filter an Incoming Claim" (Skicka vidare eller filtrera ett inkommande anspråk) och klicka på Nästa.

- Ange ett namn för regeln.
- Under "Inkommande anspråkstyp" väljer du UPN.
- Välj "Skicka igenom alla anspråksvärden".

- Klicka på Finish.
- Upprepa steg 2–7 och ange Anspråkstyp för fästpunkt för den inkommande anspråkstypen.
- Slutför guiden genom att klicka på OK.
Aktivera identifiering av hemsfär
Kör följande PowerShell-skript:
Set-AdfsClaimsProviderTrust -TargetName "name" -OrganizationalAccountSuffix @("suffix")
där "name" är det egna namnet på anspråksleverantörsförtroende och "suffix" är UPN-suffixet för kundens AD (till exempel "corp.fabrikam.com").
Med den här konfigurationen kan slutanvändarna ange sitt organisationskonto och AD FS automatiskt välja motsvarande anspråksprovider. Se Anpassa inloggningssidorna AD FSunder avsnittet "Konfigurera identitetsprovider för att använda vissa e-postsuffix".
Konfigurera AD FS kontopartner
Kunden måste göra följande:
- Lägg till ett förtroende för förlitande part (RP).
- Lägger till anspråksregler.
Lägga till RP-förtroende
- I Serverhanteraren klickar du på Verktyg, och välj sedan AD FS Management.
- I konsolträdet, under AD FS,högerklickar du på Förlitande partsförtroende. Välj Lägg till förlitande partsförtroende.
- Välj Anspråksmedveten och klicka på Starta.
- På sidan Välj datakälla väljer du alternativet "Importera data om anspråksprovidern som publicerats online eller i ett lokalt nätverk". Ange URI för SaaS-providerns federationsmetadataslutpunkt.

- På sidan Ange visningsnamn anger du ett namn.
- På sidan Välj Access Control princip väljer du en princip. Du kan tillåta alla i organisationen eller välja en viss säkerhetsgrupp.

- Ange de parametrar som krävs i rutan Princip.
- Slutför guiden genom att klicka på Nästa.
Lägga till anspråksregler
Högerklicka på det nyligen tillagda förtroende för förlitande part och välj Redigera princip för anspråksutfärdande.
Klicka på Lägg till regel.
Välj "Skicka LDAP-attribut som anspråk" och klicka på Nästa.
Ange ett namn för regeln, till exempel "UPN".
Under Attributarkivväljer du Active Directory.

I avsnittet Mappning av LDAP-attribut:
- Under LDAP-attributväljer du User-Principal-Name.
- Under Utgående anspråkstypväljer du UPN.

Klicka på Finish.
Klicka på Lägg till regel igen.
Välj "Skicka anspråk med hjälp av en anpassad regel" och klicka på Nästa.
Ange ett namn för regeln, till exempel "Typ av fästpunktsanspråk".
Under Anpassad regelanger du följande:
EXISTS([Type == "http://schemas.microsoft.com/ws/2014/01/identity/claims/anchorclaimtype"])=> issue (Type = "http://schemas.microsoft.com/ws/2014/01/identity/claims/anchorclaimtype", Value = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn");Den här regeln utfärdar ett anspråk av typen
anchorclaimtype. Anspråket talar om för den förlitande parten att använda UPN som användarens oföränderliga ID.Klicka på Finish.
Slutför guiden genom att klicka på OK.