Konfigurera registrering och inloggning med SAML-identitetsprovidern med hjälp av Azure Active Directory B2C

Viktigt!

Från och med den 1 maj 2025 är Azure AD B2C inte längre tillgängligt att köpa för nya kunder. Läs mer i våra vanliga frågor och svar.

Azure Active Directory B2C (Azure AD B2C) stöder federation med SAML 2.0-identitetsprovidrar. Den här artikeln visar hur du aktiverar inloggning med ett användarkonto för en SAML-identitetsprovider, så att användarna kan logga in med sina befintliga sociala identiteter eller företagsidentiteter, till exempel ADFS och Salesforce.

Innan du börjar använder du väljaren Välj en principtyp överst på den här sidan för att välja den typ av princip som du konfigurerar. Azure Active Directory B2C erbjuder två metoder för att definiera hur användare interagerar med dina program: via fördefinierade användarflöden eller genom fullständigt konfigurerbara anpassade principer. De steg som krävs i den här artikeln skiljer sig åt för varje metod.

Den här funktionen är endast tillgänglig för anpassade principer. För installationsinstruktioner väljer du Anpassad princip i ovanstående väljare.

Scenarioöversikt

Du kan konfigurera Azure AD B2C så att användare kan logga in på ditt program med autentiseringsuppgifter från externa sociala eller företags-SAML-identitetsproviders (IdP). När Azure AD B2C federeras med en SAML-identitetsprovider fungerar den som en tjänstleverantör som initierar en SAML-begäran till SAML-identitetsprovidern och väntar på ett SAML-svar. I följande diagram:

  1. Programmet initierar en auktoriseringsbegäran till Azure AD B2C. Programmet kan vara ett OAuth 2.0 - eller OpenId Connect-program eller en SAML-tjänstleverantör.
  2. På inloggningssidan för Azure AD B2C väljer användaren att logga in med ett SAML-identitetsproviderkonto (till exempel Contoso). Azure AD B2C initierar en SAML-auktoriseringsbegäran och tar användaren till SAML-identitetsprovidern för att slutföra inloggningen.
  3. SAML-identitetsprovidern returnerar ett SAML-svar.
  4. Azure AD B2C verifierar SAML-token, extraherar anspråk, utfärdar sin egen token och tar användaren tillbaka till programmet.

Logga in med SAML-identitetsproviderflöde

Förutsättningar

Komponenter i lösningen

Följande komponenter som krävs är för det här scenariot:

  • En SAML-identitetsprovider med möjlighet att ta emot, avkoda och svara på SAML-begäranden från Azure AD B2C.
  • En offentligt tillgänglig slutpunkt för SAML-metadata för din identitetsleverantör.
  • En Azure AD B2C-klientorganisation.

Viktigt!

Dina slutpunkter måste uppfylla säkerhetskraven för Azure AD B2C. Äldre TLS-versioner och chiffer är inaktuella. Mer information finns i Azure AD B2C TLS- och chiffersvitskrav.

Skapa en principnyckel

För att upprätta förtroende mellan Azure AD B2C och din SAML-identitetsprovider måste du ange ett giltigt X509-certifikat med den privata nyckeln. Azure AD B2C signerar SAML-begäranden med hjälp av certifikatets privata nyckel. Identitetsprovidern verifierar begäran med hjälp av certifikatets offentliga nyckel. Den offentliga nyckeln är tillgänglig via metadata för tekniska profiler. Alternativt kan du manuellt ladda upp den .cer filen till din SAML-identitetsleverantör.

Ett självsignerat certifikat är acceptabelt i de flesta scenarier. För produktionsmiljöer rekommenderar vi att du använder ett X509-certifikat som utfärdas av en certifikatutfärdare. Som beskrivs senare i det här dokumentet kan du också inaktivera SAML-signering på båda sidor för en icke-produktionsmiljö.

Skaffa ett certifikat

Om du inte redan har ett certifikat kan du använda ett självsignerat certifikat. Ett självsignerat certifikat är ett säkerhetscertifikat som inte är signerat av en certifikatutfärdare (CA) och som inte tillhandahåller säkerhetsgarantierna för ett certifikat som signerats av en certifikatutfärdare.

I Windows använder du cmdleten New-SelfSignedCertificate i PowerShell för att generera ett certifikat.

  1. Kör följande PowerShell-kommando för att generera ett självsignerat certifikat. -Subject Ändra argumentet efter behov för ditt program och Azure AD B2C-klientnamn, till exempel contosowebapp.contoso.onmicrosoft.com. Du kan också justera -NotAfter datumet för att ange ett annat förfallodatum för certifikatet.

    New-SelfSignedCertificate `
        -KeyExportPolicy Exportable `
        -Subject "CN=yourappname.yourtenant.onmicrosoft.com" `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -KeyUsage DigitalSignature `
        -NotAfter (Get-Date).AddMonths(12) `
        -CertStoreLocation "Cert:\CurrentUser\My"
    
  2. På Windows-datorn söker du efter och väljer Hantera användarcertifikat

  3. Under Certifikat – aktuell användare väljer du Personliga>Certifikat>yourappname.yourtenant.onmicrosoft.com.

  4. Välj certifikatet och välj sedan Åtgärd>alla uppgifter>Exportera.

  5. Välj Nästa>Ja, exportera den privata nyckeln>Nästa.

  6. Acceptera standardinställningarna för Exportera filformat och välj sedan Nästa.

  7. Aktivera alternativet Lösenord , ange ett lösenord för certifikatet och välj sedan Nästa.

  8. Om du vill ange en plats för att spara certifikatet väljer du Bläddra och navigerar till valfri katalog.

  9. I fönstret Spara som anger du ett filnamn och väljer sedan Spara.

  10. Välj Nästa>Slutför.

För att Azure AD B2C ska acceptera .pfx-fillösenordet måste lösenordet krypteras med alternativet TripleDES-SHA1 i exportverktyget för Windows Certificate Store, till skillnad från AES256-SHA256.

Ladda upp certifikatet

Du måste lagra ditt certifikat i din Azure AD B2C-miljö.

  1. Logga in på Azure-portalen.
  2. Om du har åtkomst till flera klientorganisationer väljer du ikonen Inställningar på den översta menyn för att växla till din Azure AD B2C-klientorganisation från menyn Kataloger + prenumerationer.
  3. Välj Alla tjänster i det övre vänstra hörnet i Azure-portalen och sök sedan efter och välj Azure AD B2C.
  4. På sidan Översikt väljer du Identity Experience Framework.
  5. Välj Principnycklar och välj sedan Lägg till.
  6. För Alternativ väljer du Upload.
  7. Ange ett Namn för principnyckeln. Till exempel SAMLSigningCert. Prefixet B2C_1A_ läggs automatiskt till i namnet på din nyckel.
  8. Bläddra till och välj din .pfx-certifikatfil med den privata nyckeln.
  9. Klicka på Skapa.

Konfigurera den tekniska profilen för SAML

Definiera SAML-identitetsleverantören genom att lägga till den i ClaimsProviders-elementet i principens tilläggsfil. Anspråksleverantörer innehåller en SAML-teknisk profil som bestämmer slutpunkterna och protokollen som behövs för att kommunicera med SAML-identitetsleverantören. Så här lägger du till en anspråksprovider med en teknisk SAML-profil:

  1. Öppna TrustFrameworkExtensions.xml.

  2. Hitta elementet ClaimsProviders . Om den inte finns lägger du till den under rotelementet.

  3. Lägg till en ny ClaimsProvider på följande sätt:

    <ClaimsProvider>
      <Domain>Contoso.com</Domain>
      <DisplayName>Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Contoso-SAML2">
          <DisplayName>Contoso</DisplayName>
          <Description>Login with your SAML identity provider account</Description>
          <Protocol Name="SAML2"/>
          <Metadata>
            <Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="assertionSubjectName" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="first_name" />
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="last_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="http://schemas.microsoft.com/identity/claims/displayname" />
            <OutputClaim ClaimTypeReferenceId="email"  />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    

Uppdatera följande XML-element med relevant värde:

XML-element Värde
ClaimsProvider\Domän Domännamnet som används för direkt inloggning. Ange det domännamn som du vill använda i direktinloggningen. Till exempel Contoso.com.
TekniskProfil\VisningsNamn Det här värdet visas på inloggningsknappen på inloggningsskärmen. Till exempel Contoso.
Metadata\PartnerEntity URL för metadata för SAML-identitetsprovidern. Eller så kan du kopiera identitetsproviderns metadata och lägga till dem i CDATA-elementet <![CDATA[Your IDP metadata]]>.

Mappa anspråken

Elementet OutputClaims innehåller en lista över anspråk som returneras av SAML-identitetsprovidern. Mappa namnet på anspråket som definierats i principen till det påståendenamn som definierats i identitetsprovidern. Kontrollera din identitetsleverantör för listan över påståenden. Mer information finns i anspråksmappning.

I exemplet ovan innehåller Contoso-SAML2 de anspråk som returneras av en SAML-identitetsprovider:

  • Anspråket assertionSubjectName mappas till issuerUserId-anspråket .
  • Det first_name attributet mappas till givenName attributet.
  • last_name-anspråket mappas till efternamn-anspråket.
  • Anspråket http://schemas.microsoft.com/identity/claims/displayname mappas till displayName anspråket.
  • E-postanspråket utan namnmappning.

Den tekniska profilen returnerar även anspråk som inte returneras av identitetsprovidern:

  • Anspråket identityProvider som innehåller namnet på identitetsprovidern.
  • Anspråket authenticationSource med standardvärdet socialIdpAuthentication.

Lägga till den tekniska profilen för SAML-sessionen

Om du inte redan har SAML-sessionens tekniska profil SM-Saml-idp, lägg till en i din förlängningsprincip. Leta upp <ClaimsProviders> avsnittet och lägg till följande XML-kodfragment. Om policyn redan innehåller den tekniska profilen SM-Saml-idp, går du vidare till nästa steg. Mer information finns i sessionshantering med enkel inloggning.

<ClaimsProvider>
  <DisplayName>Session Management</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="SM-Saml-idp">
      <DisplayName>Session Management Provider</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="IncludeSessionIndex">false</Item>
        <Item Key="RegisterServiceProviders">false</Item>
      </Metadata>
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Lägg till en användarresa

I det här läget har identitetsprovidern konfigurerats, men den är ännu inte tillgänglig på någon av inloggningssidorna. Om du inte har en egen anpassad användarresa skapar du en dubblett av en befintlig mallanvändarresa, annars fortsätter du till nästa steg.

  1. Öppna filenTrustFrameworkBase.xml från startpaketet.
  2. Hitta och kopiera hela innehållet i elementet UserJourney som innehåller Id="SignUpOrSignIn".
  3. Öppna TrustFrameworkExtensions.xml och leta upp elementet UserJourneys . Om elementet inte finns lägger du till ett.
  4. Klistra in hela innehållet i elementet UserJourney som du kopierade som ett underordnat element till UserJourneys.
  5. Byt namn på ID:t för användarens resa. Till exempel Id="CustomSignUpSignIn".

Lägg till identitetsleverantören i en användarupplevelse

Nu när du har en användarresa lägger du till den nya identitetsprovidern i användarresan. Du lägger först till en inloggningsknapp och länkar sedan knappen till en åtgärd. Åtgärden är den tekniska profil som du skapade tidigare.

  1. Leta reda på orkestreringsstegelementet som innehåller Type="CombinedSignInAndSignUp", eller Type="ClaimsProviderSelection" i användarresan. Det är vanligtvis det första orkestreringssteget. Elementet ClaimsProviderSelections innehåller en lista över identitetsprovidrar som en användare kan logga in med. Ordningen på elementen styr ordningen på de inloggningsknappar som visas för användaren. Lägg till ett ClaimsProviderSelection XML-element. Ange värdet TargetClaimsExchangeId till ett lämpligt namn.

  2. I nästa orkestreringssteg lägger du till ett ClaimsExchange-element . Ange ID:t till värdet för målanspråksutbytes-ID:t. Uppdatera TechnicalProfileReferenceId till ID:t för den tekniska profil som du skapade tidigare.

Följande XML visar de två första orkestreringsstegen för en användarresa med identitetsprovidern:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-SAML2" />
  </ClaimsExchanges>
</OrchestrationStep>

Konfigurera policyn för den förlitande parten

Principen för förlitande part, till exempel SignUpSignIn.xml, anger den användarresa som Azure AD B2C ska köra. Hitta elementet DefaultUserJourney under den förlitande parten. Uppdatera ReferenceId så att det matchar användarens rese-ID, där du lade till identitetsprovidern.

I följande exempel, för användarupplevelsen, är CustomSignUpSignIn inställt på :

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Ladda upp den anpassade policyn

  1. Logga in på Azure-portalen.
  2. Välj ikonen Katalog + prenumeration i portalens verktygsfält och välj sedan den katalog som innehåller din Azure AD B2C-klientorganisation.
  3. I Azure Portal söker du efter och väljer Azure AD B2C.
  4. Under kategorin Principer väljer du Identity Experience Framework.
  5. Välj Överför anpassad princip och ladda sedan upp de två principfilerna som du ändrade i följande ordning: tilläggsprincipen, till exempel TrustFrameworkExtensions.xml, och sedan den förlitande partprincipen, till exempel SignUpSignIn.xml.

Konfigurera din SAML-identitetsleverantör

När din policy har konfigurerats måste du konfigurera din SAML-identitetsleverantör med Azure AD B2C SAML-metadata. SAML-metadata är information som används i SAML-protokollet för att visa konfigurationen av din policy, tjänstleverantören. Den definierar platsen för tjänsterna, till exempel in- och utloggning, certifikat, inloggningsmetod med mera.

Varje SAML-identitetsprovider har olika steg för att ange en tjänsteleverantör. Vissa SAML-identitetsproviders ber om Azure AD B2C-metadata, medan andra kräver att du går igenom metadatafilen manuellt och anger informationen. Mer information finns i din identitetsproviders dokumentation.

I följande exempel visas en URL-adress för SAML-metadata för en teknisk Azure AD B2C-profil:

https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>

När du använder en anpassad domän använder du följande format:

https://your-domain-name/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>

Ersätt följande värden:

  • your-tenant-name med ditt klientnamn, till exempel your-tenant.onmicrosoft.com.
  • ditt-domännamn med ditt anpassade domännamn, till exempel login.contoso.com.
  • your-policy med ditt principnamn. Till exempel B2C_1A_signup_signin_adfs.
  • your-technical-profile med namnet på din tekniska profil för SAML-identitetsprovidern. Till exempel Contoso-SAML2.

Öppna en webbläsare och navigera till URL:en. Kontrollera att du anger rätt URL och att du har åtkomst till XML-metadatafilen.

Testa din anpassade policy

  1. Logga in på Azure-portalen.
  2. Om du har åtkomst till flera klientorganisationer väljer du ikonen Inställningar på den översta menyn för att växla till din Azure AD B2C-klientorganisation från menyn Kataloger + prenumerationer.
  3. I Azure Portal söker du efter och väljer Azure AD B2C.
  4. Under Principer väljer du Ramverk för identitetsupplevelse
  5. Välj din policy för förlitande part, till exempel B2C_1A_signup_signin.
  6. För Program väljer du ett webbprogram som du registrerade tidigare. Svar-URL ska visa https://jwt.ms.
  7. Välj knappen Kör nu .
  8. På registrerings- eller inloggningssidan väljer du Contoso för att logga in med Contoso-kontot.

Om inloggningsprocessen lyckas omdirigeras webbläsaren till https://jwt.ms, som visar innehållet i token som returneras av Azure AD B2C.

Nästa steg