Dela via


Konfigurera alternativ för SAML-identitetsprovider med Azure Active Directory B2C

Azure Active Directory B2C (Azure AD B2C) stöder federation med SAML 2.0-identitetsprovidrar. Den här artikeln beskriver hur du parsar säkerhetskontrollerna och de konfigurationsalternativ som är tillgängliga när du aktiverar inloggning med en SAML-identitetsprovider.

Innan du börjar använder du väljaren Välj en principtyp 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 via helt konfigurerbara anpassade principer. Stegen 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 installationssteg väljer du Anpassad princip i föregående väljare.

Anspråksmappning

Elementet OutputClaims innehåller en lista över anspråk som returneras av SAML-identitetsprovidern. Du måste mappa namnet på anspråket som definierats i principen till det namn som definierats i identitetsprovidern. Kontrollera identitetsprovidern för listan över anspråk (intyg). Du kan också kontrollera innehållet i DET SAML-svar som identitetsprovidern returnerar. Mer information finns i Felsöka SAML-meddelanden. Om du vill lägga till ett anspråk definierar du först ett anspråk och lägger sedan till anspråket i den utgående anspråkssamlingen.

Du kan också inkludera anspråk som inte returneras av identitetsprovidern, så länge du anger attributet DefaultValue . Standardvärdet kan vara statiskt eller dynamiskt med hjälp av kontextanspråk.

Anspråkselementet för utdata innehåller följande attribut:

  • ClaimTypeReferenceId är referensen till en anspråkstyp.
  • PartnerClaimType är namnet på egenskapen som visas saml-försäkran.
  • DefaultValue är ett fördefinierat standardvärde. Om anspråket är tomt används standardvärdet. Du kan också använda en anspråkslösare med ett kontextuellt värde, till exempel korrelations-ID eller användarens IP-adress.

Mottagarnamn

Om du vill läsa SAML-försäkran NameId i ämnesraden som ett normaliserat anspråk anger du anspråket PartnerClaimType till värdet för SPNameQualifier attributet. SPNameQualifierOm attributet inte visas anger du anspråket PartnerClaimType till värdet för attributetNameQualifier.

SAML-försäkran:

<saml:Subject>
  <saml:NameID SPNameQualifier="http://your-idp.com/unique-identifier" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">david@contoso.com</saml:NameID>
  <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
    <SubjectConfirmationData InResponseTo="_cd37c3f2-6875-4308-a9db-ce2cf187f4d1" NotOnOrAfter="2020-02-15T16:23:23.137Z" Recipient="https://<your-tenant>.b2clogin.com/<your-tenant>.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer" />
    </SubjectConfirmation>
  </saml:SubjectConfirmation>
</saml:Subject>

Utdataanspråk:

<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="http://your-idp.com/unique-identifier" />

Om båda SPNameQualifier attributen eller NameQualifier inte visas i SAML-försäkran anger du anspråket PartnerClaimType till assertionSubjectName. Kontrollera att NameId är det första värdet i xml-försäkran. När du definierar mer än en försäkran väljer Azure AD B2C ämnesvärdet från den senaste försäkran.

Konfigurera SAML-protokollbindningar

SAML-begäranden skickas till identitetsprovidern enligt vad som anges i identitetsproviderns metadataelement SingleSignOnService . De flesta av identitetsprovidrars auktoriseringsbegäranden utförs direkt i URL-frågesträngen för en HTTP GET-begäran (eftersom meddelandena är relativt korta). Information om hur du konfigurerar bindningar för båda SAML-begäranden finns i dokumentationen för identitetsprovidern.

Följande XML är ett exempel på en tjänst för enkel inloggning med Microsoft Entra metadata med två bindningar. HTTP-Redirect har företräde framför HTTP-POST eftersom den visas först i METADATA för SAML-identitetsprovidern.

<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
  ...
  <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/saml2"/>
  <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/saml2"/>
</IDPSSODescriptor>

Konsumenttjänst för försäkran

Assertion Consumer Service (eller ACS) är där SAML-svar från identitetsprovidern skickas och tas emot av Azure AD B2C. SAML-svar överförs till Azure AD B2C via HTTP POST-bindning. ACS-platsen pekar på den förlitande partens grundprincip. Om den förlitande principen till exempel är B2C_1A_signup_signin är ACS basprincipen för B2C_1A_signup_signin, till exempel B2C_1A_TrustFrameworkBase.

Följande XML är ett exempel på ett Azure AD B2C-principmetadata för konsumenttjänstelementet.

<SPSSODescriptor AuthnRequestsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
  ...
  <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://your-tenant.b2clogin.com/your-tenant/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer" index="0" isDefault="true"/>
</SPSSODescriptor>

Konfigurera SAML-begärandesignaturen

Azure AD B2C signerar alla utgående autentiseringsbegäranden med hjälp av kryptografinyckeln SamlMessageSigning. Om du vill inaktivera SAML-begärandesignaturen anger du WantsSignedRequests till false. Om metadata är inställda falsepå utelämnas parametrarna SigAlg och Signature (frågesträng eller postparameter) från begäran.

Dessa metadata styr också attributet AuthnRequestsSigned, som ingår i metadata för den tekniska Azure AD B2C-profil som delas med identitetsprovidern. Azure AD B2C signerar inte begäran om värdet för WantsSignedRequests i den tekniska profilens metadata har angetts till false och identitetsproviderns metadata WantAuthnRequestsSigned har angetts till false eller inte angetts.

I följande exempel tar bort signaturen från SAML-begäran.

<Metadata>
  ...
  <Item Key="WantsSignedRequests">false</Item>
</Metadata>

Signaturalgoritm

Azure AD B2C använder Sha1 för att signera SAML-begäran. Använd XmlSignatureAlgorithm-metadata för att konfigurera algoritmen som ska användas. Möjliga värden är Sha256, Sha384, Sha512eller Sha1 (standard). Dessa metadata styr värdet för Parametern SigAlg (frågesträng eller postparameter) i SAML-begäran. Se till att du konfigurerar signaturalgoritmen på båda sidor med samma värde. Använd bara den algoritm som certifikatet stöder.

Inkludera viktig information

När identitetsprovidern anger att Azure AD B2C-bindning har angetts till HTTP-POSTinnehåller Azure AD B2C signaturen och algoritmen i brödtexten i SAML-begäran. Du kan också konfigurera Microsoft Entra-ID så att det inkluderar certifikatets offentliga nyckel när bindningen är inställd på HTTP-POST. Använd IncludeKeyInfo-metadata till true, eller false. I följande exempel innehåller Microsoft Entra-ID inte certifikatets offentliga nyckel.

<Metadata>
  ...
  <Item Key="IncludeKeyInfo">false</Item>
</Metadata>

Konfigurera NAMN-ID för SAML-begäran

Elementet FÖR SAML-auktoriseringsbegäran <NameID> anger formatet för SAML-namnidentifierare. I det här avsnittet beskrivs standardkonfigurationen och hur du anpassar namn-ID-elementet.

Önskat användarnamn

Under en inloggningsanvändarresa kan ett förlitande partprogram rikta sig till en viss användare. Azure AD B2C kan du skicka ett önskat användarnamn till SAML-identitetsprovidern. Elementet InputClaims används för att skicka ett NameId i ämnet för SAML-auktoriseringsbegäran.

Om du vill inkludera ämnesnamnets ID i auktoriseringsbegäran lägger du till följande <InputClaims> element omedelbart efter <CryptographicKeys>. PartnerClaimType måste anges till subject.

<InputClaims>
  <InputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="subject" />
</InputClaims>

I det här exemplet skickar Azure AD B2C värdet för signInName-anspråket med NameId i ämnesraden för SAML-auktoriseringsbegäran.

<samlp:AuthnRequest ... >
  ...
  <saml:Subject>
    <saml:NameID>sam@contoso.com</saml:NameID>
  </saml:Subject>
</samlp:AuthnRequest>

Du kan använda kontextanspråk, till exempel {OIDC:LoginHint} för att fylla i anspråksvärdet.

<Metadata>
  ...
  <Item Key="IncludeClaimResolvingInClaimsHandling">true</Item>
</Metadata>
  ...
<InputClaims>
  <InputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="subject" DefaultValue="{OIDC:LoginHint}" AlwaysUseDefaultValue="true" />
</InputClaims>

Namn-ID-principformat

Som standard anger SAML-auktoriseringsbegäran urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified principen. Det här namn-ID:t anger att alla typer av identifierare som stöds av identitetsprovidern för det begärda ämnet kan användas.

Information om vilka namn-ID-principer som stöds finns i dokumentationen för din identitetsprovider om du vill ändra det här beteendet. Lägg sedan till NameIdPolicyFormat metadata i motsvarande principformat. Exempel:

<Metadata>
  ...
  <Item Key="NameIdPolicyFormat">urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</Item>
</Metadata>

Följande SAML-auktoriseringsbegäran innehåller namn-ID-principen.

<samlp:AuthnRequest ... >
  ...
  <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" />
</samlp:AuthnRequest>

Tillåt att nya konton skapas

Om du anger namn-ID-principformatet kan du också ange AllowCreate egenskapen för NameIDPolicy för att ange om identitetsprovidern får skapa ett nytt konto under inloggningsflödet. Mer information finns i din identitetsproviders dokumentation.

Azure AD B2C utelämnar AllowCreate egenskapen som standard. Du kan ändra det här beteendet med hjälp av NameIdPolicyAllowCreate metadata. Värdet för dessa metadata är true eller false.

I följande exempel visas hur du anger AllowCreate egenskapen NameIDPolicy för till true.

<Metadata>
  ...
  <Item Key="NameIdPolicyFormat">urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</Item>
  <Item Key="NameIdPolicyAllowCreate">true</Item>
</Metadata>

I följande exempel visas en auktoriseringsbegäran med AllowCreate för nameIDPolicy-elementet i auktoriseringsbegäran.

<samlp:AuthnRequest ... >
  ...
  <samlp:NameIDPolicy 
      Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" 
      AllowCreate="true" />
</samlp:AuthnRequest>

Framtvinga autentisering

Du kan tvinga den externa SAML IDP att fråga användaren om autentisering genom att skicka ForceAuthN egenskapen i SAML-autentiseringsbegäran. Din identitetsprovider måste också ha stöd för den här egenskapen.

Egenskapen ForceAuthN är ett booleskt true värde.false Som standard anger Azure AD B2C ForceAuthN-värdet till false. Om sessionen sedan återställs (till exempel med hjälp prompt=login av i OIDC) ForceAuthN anges värdet till true. Om du ställer in metadata för ForceAuthN att true framtvinga värdet för alla begäranden till den externa IDP:en.

I följande exempel visas egenskapen inställd på ForceAuthNtrue:

<Metadata>
  ...
  <Item Key="ForceAuthN">true</Item>
  ...
</Metadata>

I följande exempel visas egenskapen ForceAuthN i en auktoriseringsbegäran:

<samlp:AuthnRequest AssertionConsumerServiceURL="https://..."  ...
                    ForceAuthN="true">
  ...
</samlp:AuthnRequest>

Providernamn

Du kan också inkludera ProviderName attributet i SAML-auktoriseringsbegäran. Ange att metadata ska ProviderName innehålla providernamnet för alla begäranden till den externa SAML-IDP:en. I följande exempel visas egenskapen inställd på ProviderNameContoso app:

<Metadata>
  ...
  <Item Key="ProviderName">Contoso app</Item>
  ...
</Metadata>

I följande exempel visas egenskapen ProviderName i en auktoriseringsbegäran:

<samlp:AuthnRequest AssertionConsumerServiceURL="https://..."  ...
                    ProviderName="Contoso app">
  ...
</samlp:AuthnRequest>

Inkludera klassreferenser för autentiseringskontext

En SAML-auktoriseringsbegäran kan innehålla ett AuthnContext-element som anger kontexten för en auktoriseringsbegäran. Elementet kan innehålla en referens för autentiseringskontextklassen, som talar om för SAML-identitetsprovidern vilken autentiseringsmekanism som ska presenteras för användaren.

Om du vill konfigurera referenser för autentiseringskontextklass lägger du till IncludeAuthnContextClassReferences-metadata . I värdet anger du en eller flera URI-referenser som identifierar kontextklasser för autentisering. Ange flera URI:er som en kommaavgränsad lista. I din identitetsproviders dokumentation finns vägledning om de AuthnContextClassRef-URI :er som stöds.

I följande exempel kan användare logga in med både användarnamn och lösenord och logga in med användarnamn och lösenord över en skyddad session (SSL/TLS).

<Metadata>
  ...
  <Item Key="IncludeAuthnContextClassReferences">urn:oasis:names:tc:SAML:2.0:ac:classes:Password,urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</Item>
</Metadata>

Följande SAML-auktoriseringsbegäran innehåller referenserna för autentiseringskontextklassen.

<samlp:AuthnRequest ... >
  ...
  <samlp:RequestedAuthnContext>
    <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef>
    <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
  </samlp:RequestedAuthnContext>
</samlp:AuthnRequest>

Inkludera anpassade data i auktoriseringsbegäran

Du kan också inkludera protokollmeddelandetilläggselement som godkänns av både Azure AD B2C och din identitetsprovider. Tillägget visas i XML-format. Du inkluderar tilläggselement genom att lägga till XML-data i CDATA-elementet <![CDATA[Your Custom XML]]>. Kontrollera identitetsproviderns dokumentation för att se om tilläggselementet stöds.

I följande exempel visas användningen av tilläggsdata:

<Metadata>
  ...
  <Item Key="AuthenticationRequestExtensions"><![CDATA[
            <ext:MyCustom xmlns:ext="urn:ext:custom">
              <ext:AssuranceLevel>1</ext:AssuranceLevel>
              <ext:AssuranceDescription>Identity verified to level 1.</ext:AssuranceDescription>
            </ext:MyCustom>]]></Item>
</Metadata>

Anteckning

Enligt SAML-specifikationen måste tilläggsdata vara namnområdeskvalificerad XML (till exempel "urn:ext:custom" som visas i exemplet), och de får inte vara något av de SAML-specifika namnrymderna.

Med SAML-protokollmeddelandetillägget ser SAML-svaret ut som i följande exempel:

<samlp:AuthnRequest ... >
  ...
  <samlp:Extensions>
    <ext:MyCustom xmlns:ext="urn:ext:custom">
      <ext:AssuranceLevel>1</ext:AssuranceLevel>
      <ext:AssuranceDescription>Identity verified to level 1.</ext:AssuranceDescription>
    </ext:MyCustom>
  </samlp:Extensions>
</samlp:AuthnRequest>

Kräv signerade SAML-svar

Azure AD B2C kräver att alla inkommande intyg signeras. Du kan ta bort det här kravet genom att ange WantsSignedAssertions till false. Identitetsprovidern bör inte signera försäkran i det här fallet, men även om den gör det validerar Azure AD B2C inte signaturen.

Metadata för WantsSignedAssertions styr SAML-metadataflaggan WantAssertionsSigned, som ingår i metadata för den tekniska Azure AD B2C-profil som delas med identitetsprovidern.

<SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">

Om du inaktiverar verifieringen av försäkran kanske du också vill inaktivera verifieringen av svarsmeddelandesignaturen. Ange ResponsesSigned metadata till false. Identitetsprovidern bör inte signera SAML-svarsmeddelandet i det här fallet, men även om det gör det validerar Azure AD B2C inte signaturen.

I följande exempel tar både meddelandet och kontrollsignaturen bort:

<Metadata>
  ...
  <Item Key="WantsSignedAssertions">false</Item>
  <Item Key="ResponsesSigned">false</Item>
</Metadata>

Kräv krypterade SAML-svar

Ange metadata för WantsEncryptedAssertions för att kräva att alla inkommande intyg krypteras. När kryptering krävs använder identitetsprovidern en offentlig nyckel för ett krypteringscertifikat i en teknisk Azure AD B2C-profil. Azure AD B2C dekrypterar svarspåståendet med hjälp av den privata delen av krypteringscertifikatet.

Om du aktiverar kryptering av försäkran kan du också behöva inaktivera verifieringen av svarssignaturen (mer information finns i Kräv signerade SAML-svar.

När metadata för WantsEncryptedAssertions har angetts till trueinnehåller metadata för den tekniska Azure AD B2C-profilen krypteringsavsnittet. Identitetsprovidern läser metadata och krypterar SAML-svarspåståendet med den offentliga nyckeln som finns i metadata för den tekniska Azure AD B2C-profilen.

I följande exempel visas avsnittet Nyckelbeskrivning för SAML-metadata som används för kryptering:

<SPSSODescriptor AuthnRequestsSigned="true"  protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
  <KeyDescriptor use="encryption">
    <KeyInfo xmlns="https://www.w3.org/2000/09/xmldsig#">
      <X509Data>
        <X509Certificate>valid certificate</X509Certificate>
      </X509Data>
    </KeyInfo>
  </KeyDescriptor>
  ...
</SPSSODescriptor>

Så här krypterar du SAML-svarspåståendet:

  1. Skapa en principnyckel med en unik identifierare. Till exempel B2C_1A_SAMLEncryptionCert.

  2. I din TEKNISKA SAML-profil CryptographicKeys-samling . Ange StorageReferenceId till namnet på den principnyckel som du skapade i det första steget. ID SamlAssertionDecryption :t anger användningen av den kryptografiska nyckeln för att kryptera och dekryptera försäkran om SAML-svaret.

    <CryptographicKeys>
            ...
      <Key Id="SamlAssertionDecryption" StorageReferenceId="B2C_1A_SAMLEncryptionCert"/>
    </CryptographicKeys>
    
  3. Ange metadata för teknisk profil WantsEncryptedAssertions till true.

    <Metadata>
      ...
      <Item Key="WantsEncryptedAssertions">true</Item>
    </Metadata>
    
  4. Uppdatera din identitetsprovider med de nya Azure AD tekniska B2C-profilmetadata. Du bör se KeyDescriptor med egenskapen use inställd på som encryption innehåller certifikatets offentliga nyckel.

Aktivera användning av kontextanspråk

I insamlingen av indata- och utdataanspråk kan du inkludera anspråk som inte returneras av identitetsprovidern så länge du anger DefaultValue attributet. Du kan också använda kontextanspråk för att inkluderas i den tekniska profilen. Så här använder du ett kontextanspråk:

  1. Lägg till en anspråkstyp i elementet ClaimsSchema i BuildingBlocks.

  2. Lägg till ett utdataanspråk i indata- eller utdatasamlingen. I följande exempel anger det första anspråket värdet för identitetsprovidern. Det andra anspråket använder kontextanspråken för användarens IP-adress.

    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" AlwaysUseDefaultValue="true" />
      <OutputClaim ClaimTypeReferenceId="IpAddress" DefaultValue="{Context:IPAddress}" AlwaysUseDefaultValue="true" />
    </OutputClaims>
    

Inaktivera enkel utloggning

Vid en begäran om utloggning av program försöker Azure AD B2C logga ut från din SAML-identitetsprovider. Mer information finns i logga ut Azure AD B2C-session. Om du vill inaktivera beteendet för enkel utloggning anger du metadata för SingleLogoutEnabled till false.

<Metadata>
  ...
  <Item Key="SingleLogoutEnabled">false</Item>
</Metadata>

Felsöka SAML-protokoll

För att konfigurera och felsöka federation med en SAML-identitetsprovider kan du använda ett webbläsartillägg för SAML-protokollet, till exempel SAML DevTools-tillägget för Chrome, SAML-tracer för FireFox eller Microsoft Edge eller IE Utvecklarverktyg.

Med hjälp av dessa verktyg kan du kontrollera integreringen mellan Azure AD B2C och din SAML-identitetsprovider. Exempel:

  • Kontrollera om SAML-begäran innehåller en signatur och ta reda på vilken algoritm som används för att logga in auktoriseringsbegäran.
  • Hämta anspråken (försäkran) under avsnittet AttributeStatement .
  • Kontrollera om identitetsprovidern returnerar ett felmeddelande.
  • Kontrollera om kontrollavsnittet är krypterat.

SAML-begäran och svarsexempel

Security Assertion Markup Language (SAML) är en öppen standard för att utbyta autentiserings- och auktoriseringsdata mellan en identitetsprovider och en tjänstleverantör. 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.

Ett lyckat SAML-svar innehåller säkerhetskontroller som är instruktioner som görs av externa SAML-identitetsprovidrar. Azure AD B2C parsar och mappar försäkran till anspråk.

Auktoriseringsbegäran

Om du vill begära användarautentisering skickar Azure AD B2C ett AuthnRequest element till den externa SAML-identitetsprovidern. Ett SAML 2.0-exempel AuthnRequest kan se ut som i följande exempel:

<samlp:AuthnRequest 
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
    ID="_11111111-0000-0000-0000-000000000000" 
    Version="2.0" 
    IssueInstant="2023-03-20T07:10:00.0000000Z" 
    Destination="https://fabrikam.com/saml2" 
    ForceAuthn="false" 
    IsPassive="false" 
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" 
    AssertionConsumerServiceURL="https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer" 
    ProviderName="https://fabrikam.com" 
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
    <saml:Issuer 
        Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_TrustFrameworkBase
    </saml:Issuer>
</samlp:AuthnRequest>

Svarsåtgärder

När en begärd inloggning har slutförts skickar den externa SAML-identitetsprovidern ett svar på Azure AD slutpunkt för B2C-försäkran för konsumenttjänsten. Ett svar på ett lyckat inloggningsförsök ser ut som i följande exempel:

<samlp:Response 
    ID="_98765432-0000-0000-0000-000000000000" 
    Version="2.0" 
    IssueInstant="2023-03-20T07:11:30.0000000Z" 
    Destination="https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer" 
    InResponseTo="_11111111-0000-0000-0000-000000000000" 
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
    <Issuer 
        xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://fabrikam.com/
    </Issuer>
    <samlp:Status>
        <samlp:StatusCode 
            Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <Assertion 
        ID="_55555555-0000-0000-0000-000000000000" 
        IssueInstant="2023-03-20T07:40:45.505Z" 
        Version="2.0" 
        xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
        <Issuer>https://fabrikam.com/</Issuer>
        <Signature 
            xmlns="http://www.w3.org/2000/09/xmldsig#">
            ...
        </Signature>
        <Subject>
            <NameID 
                Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">ABCDEFG
            </NameID>
            ...
        </Subject>
        <AttributeStatement>
            <Attribute Name="uid">
                <AttributeValue>12345</AttributeValue>
            </Attribute>
            <Attribute Name="displayname">
                <AttributeValue>David</AttributeValue>
            </Attribute>
            <Attribute Name="email">
                <AttributeValue>david@contoso.com</AttributeValue>
            </Attribute>
            ....
        </AttributeStatement>
        <AuthnStatement 
            AuthnInstant="2023-03-20T07:40:45.505Z" 
            SessionIndex="_55555555-0000-0000-0000-000000000000">
            <AuthnContext>
                <AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef>
            </AuthnContext>
        </AuthnStatement>
    </Assertion>
</samlp:Response>

Begäran om utloggning

Vid en begäran om utloggning av program försöker Azure AD B2C logga ut från din SAML-identitetsprovider. Azure AD B2C skickar ett LogoutRequest meddelande till den externa IDP:n för att ange att en session har avslutats. Följande utdrag visar ett exempelelement LogoutRequest .

Värdet för elementet NameID matchar den NameID användare som loggas ut. Elementet SessionIndex matchar SessionIndex attributet AuthnStatement för i saml-svaret för inloggning.

<samlp:LogoutRequest 
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    ID="_22222222-0000-0000-0000-000000000000" 
    Version="2.0" 
    IssueInstant="2023-03-20T08:21:07.3679354Z" 
    Destination="https://fabrikam.com/saml2/logout" 
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
    <saml:Issuer 
        Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_TrustFrameworkBase
    </saml:Issuer>
    <saml:NameID>ABCDEFG</saml:NameID>
    <samlp:SessionIndex>_55555555-0000-0000-0000-000000000000</samlp:SessionIndex>
</samlp:LogoutRequest>

Nästa steg