Een SAML-toepassing registreren in Azure AD B2C
In dit artikel leert u hoe u uw SAML-toepassingen (Security Assertion Markup Language) verbindt met Azure Active Directory B2C (Azure AD B2C) voor verificatie.
Voordat u begint, gebruikt u de selector Een beleidstype kiezen om het type beleid te kiezen dat u instelt. U kunt in Azure Active Directory B2C op twee manieren definiëren hoe gebruikers met uw toepassingen communiceren: via vooraf gedefinieerde gebruikersstromen of via volledig configureerbaar aangepast beleid. De stappen die in dit artikel zijn vereist, verschillen voor elke methode.
Deze functie is alleen beschikbaar voor aangepast beleid. Voor configuratiestappen selecteert u Aangepast beleid in de voorgaande selector.
Overzicht
Organisaties die Azure AD B2C gebruiken als hun oplossing voor klantidentiteit en toegangsbeheer, vereisen mogelijk integratie met toepassingen die worden geverifieerd met behulp van het SAML-protocol. In het volgende diagram ziet u hoe Azure AD B2C fungeert als id-provider (IdP) voor eenmalige aanmelding (SSO) met op SAML gebaseerde toepassingen.
- De toepassing maakt een SAML AuthN-aanvraag die wordt verzonden naar het SAML-aanmeldingseindpunt voor Azure AD B2C.
- De gebruiker kan een lokaal Azure AD B2C-account of een andere federatieve id-provider (indien geconfigureerd) gebruiken om te verifiëren.
- Als de gebruiker zich aanmeldt met behulp van een federatieve id-provider, wordt er een tokenantwoord verzonden naar Azure AD B2C.
- Azure AD B2C genereert een SAML-assertie en verzendt deze naar de toepassing.
Bekijk deze video voor meer informatie over het integreren van SAML-toepassingen met Azure AD B2C.
Vereisten
Voor het scenario in dit artikel hebt u het volgende nodig:
- Het aangepaste beleid SocialAndLocalAccounts van een aangepast starterspakket voor beleid. Voer de stappen in Aan de slag met aangepaste beleidsregels in Azure AD B2C uit.
- Basiskennis van het SAML-protocol en bekendheid met de SAML-implementatie van de toepassing.
- Een webtoepassing die is geconfigureerd als een SAML-toepassing. Het moet de mogelijkheid hebben om SAML AuthN-aanvragen te verzenden en SAML-antwoorden te ontvangen, decoderen en verifiëren vanuit Azure AD B2C. De SAML-toepassing wordt ook wel de relying party-toepassing of serviceprovider genoemd.
- Het openbaar beschikbare SAML-metagegevenseindpunt of XML-document van de SAML-toepassing.
- Een Azure AD B2C-tenant.
Als u nog geen SAML-toepassing en een gekoppeld metagegevenseindpunt hebt, kunt u de SAML-testtoepassing gebruiken die we beschikbaar hebben gesteld voor testen.
Belangrijk
Uw eindpunten moeten voldoen aan de Azure AD B2C-beveiligingsvereisten. Oudere TLS-versies en -coderingen zijn afgeschaft. Zie Vereisten voor Azure AD B2C TLS en suites met coderingsmethoden voor meer informatie.
Certificaten instellen
Als u een vertrouwensrelatie tussen uw toepassing en Azure AD B2C wilt bouwen, moeten beide services elkaars handtekeningen kunnen maken en valideren. Configureer X509-certificaten in uw toepassing en in Azure AD B2C.
Toepassingscertificaten
Gebruik | Vereist | Beschrijving |
---|---|---|
SAML-aanvraagondertekening | Nee | Een certificaat met een persoonlijke sleutel die is opgeslagen in uw web-app. Uw toepassing gebruikt het certificaat om SAML-aanvragen te ondertekenen die naar Azure AD B2C worden verzonden. De web-app moet de openbare sleutel beschikbaar maken via het SAML-metagegevenseindpunt. Azure AD B2C valideert de SAML-aanvraaghandtekening met behulp van de openbare sleutel uit de metagegevens van de toepassing. |
SAML-assertieversleuteling | Nee | Een certificaat met een persoonlijke sleutel die is opgeslagen in uw web-app. De web-app moet de openbare sleutel beschikbaar maken via het SAML-metagegevenseindpunt. Azure AD B2C kan asserties versleutelen naar uw toepassing met behulp van de openbare sleutel. De toepassing gebruikt de persoonlijke sleutel om de assertie te ontsleutelen. |
Azure AD B2C-certificaten
Gebruik | Vereist | Beschrijving |
---|---|---|
SAML-antwoordondertekening | Ja | Een certificaat met een persoonlijke sleutel die is opgeslagen in Azure AD B2C. Azure AD B2C gebruikt dit certificaat om het SAML-antwoord te ondertekenen dat naar uw toepassing is verzonden. Uw toepassing leest de openbare metagegevenssleutel in Azure AD B2C om de handtekening van het SAML-antwoord te valideren. |
SAML-assertieondertekening | Ja | Een certificaat met een persoonlijke sleutel die is opgeslagen in Azure AD B2C. Azure AD B2C gebruikt dit certificaat om het <saml:Assertion> deel van het SAML-antwoord te ondertekenen. |
In een productieomgeving raden we u aan certificaten te gebruiken die een openbare certificeringsinstantie heeft uitgegeven. U kunt deze procedure echter ook uitvoeren met zelfondertekende certificaten.
Een beleidssleutel maken
Als u een vertrouwensrelatie tussen uw toepassing en Azure AD B2C wilt hebben, maakt u een handtekeningcertificaat voor het SAML-antwoord. Azure AD B2C gebruikt dit certificaat om het SAML-antwoord te ondertekenen dat naar uw toepassing is verzonden. Uw toepassing leest de openbare metagegevenssleutel voor Azure AD B2C om de handtekening van het SAML-antwoord te valideren.
Fooi
U kunt deze beleidssleutel gebruiken voor andere doeleinden, zoals het ondertekenen van de SAML-assertie.
Een certificaat verkrijgen
Als u nog geen certificaat hebt, kunt u een zelfondertekend certificaat gebruiken. Een zelfondertekend certificaat is een beveiligingscertificaat dat niet is ondertekend door een certificeringsinstantie (CA) en geen beveiligingsgaranties biedt van een certificaat dat is ondertekend door een CA.
Gebruik in Windows de cmdlet New-SelfSignedCertificate in PowerShell om een certificaat te genereren.
Voer de volgende PowerShell-opdracht uit om een zelfondertekend certificaat te genereren. Wijzig indien van toepassing het argument
-Subject
voor uw toepassing en de Azure AD B2C-tenantnaam, zoalscontosowebapp.contoso.onmicrosoft.com
. U kunt ook de-NotAfter
-datum aanpassen om een andere vervaldatum voor het certificaat op te geven.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"
Ga op een Windows-computer naar Gebruikerscertificaten beheren en selecteer dit
Selecteer onder Certificaten - huidige gebruiker de optie Persoonlijk>Certificaten>yourappname.yourtenant.onmicrosoft.com.
Selecteer het certificaat en vervolgens Actie>Alle taken>Exporteren.
Selecteer Volgende>Ja, exporteer de persoonlijke sleutel>Volgende.
Accepteer de standaardwaarden voor Exportbestandsindeling en selecteer vervolgens Volgende.
Schakel de optie Wachtwoord in, voer een wachtwoord in voor het certificaat en selecteer vervolgens Volgende.
Als u een locatie wilt opgeven om uw certificaat in op te slaan, selecteert u Bladeren en navigeert u naar de gewenste map.
Voer in het venster Opslaan als een bestandsnaam in en selecteer vervolgens Opslaan.
Selecteer Volgende>voltooien.
Azure AD B2C accepteert alleen het PFX-bestandswachtwoord als het wachtwoord is versleuteld met de TripleDES-SHA1-optie in het hulpprogramma voor het exporteren vanuit het Windows-certificaatarchief, in plaats van AES256-SHA256.
Het certificaat uploaden
U moet uw certificaat opslaan in uw Azure AD B2C-tenant.
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
- Selecteer Alle services in de linkerbovenhoek van Azure Portal en zoek en selecteer Vervolgens Azure AD B2C.
- Selecteer Identity Experience Framework op de pagina Overzicht.
- Selecteer Beleidssleutels en vervolgens Toevoegen.
- Selecteer Uploaden voor Opties.
- Voer bij Naam een naam in voor de beleidssleutel. Voer bijvoorbeeld SamlIdpCert in. Het voorvoegsel B2C_1A_ wordt automatisch toegevoegd aan de naam van uw sleutel.
- Blader naar het PFX-certificaatbestand en selecteer het bestand met de persoonlijke sleutel.
- Selecteer Maken.
Uw beleid inschakelen om verbinding te maken met een SAML-toepassing
Als u verbinding wilt maken met uw SAML-toepassing, moet Azure AD B2C SAML-antwoorden kunnen maken.
Open SocialAndLocalAccounts\TrustFrameworkExtensions.xml in het aangepaste starterspakket voor beleid.
Zoek de <ClaimsProviders>
sectie en voeg het volgende XML-fragment toe om uw SAML-antwoordgenerator te implementeren:
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<!-- SAML Token Issuer technical profile -->
<TechnicalProfile Id="Saml2AssertionIssuer">
<DisplayName>Token Issuer</DisplayName>
<Protocol Name="SAML2"/>
<OutputTokenFormat>SAML2</OutputTokenFormat>
<Metadata>
<Item Key="IssuerUri">https://issuerUriMyAppExpects</Item>
</Metadata>
<CryptographicKeys>
<Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_SamlIdpCert"/>
<Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SamlIdpCert"/>
</CryptographicKeys>
<InputClaims/>
<OutputClaims/>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer"/>
</TechnicalProfile>
<!-- Session management technical profile for SAML-based tokens -->
<TechnicalProfile Id="SM-Saml-issuer">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
De URI van de verlener van het SAML-antwoord configureren
U kunt de waarde van het IssuerUri
metagegevensitem in het technische profiel samL-tokenverlener wijzigen. Deze wijziging wordt doorgevoerd in het issuerUri
kenmerk dat wordt geretourneerd in het SAML-antwoord van Azure AD B2C. Configureer uw toepassing om dezelfde IssuerUri
waarde te accepteren tijdens validatie van SAML-antwoorden.
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<!-- SAML Token Issuer technical profile -->
<TechnicalProfile Id="Saml2AssertionIssuer">
<DisplayName>Token Issuer</DisplayName>
<Protocol Name="SAML2"/>
<OutputTokenFormat>SAML2</OutputTokenFormat>
<Metadata>
<Item Key="IssuerUri">https://issuerUriMyAppExpects</Item>
</Metadata>
...
</TechnicalProfile>
Uw beleid configureren om een SAML-antwoord uit te geven
Nu uw beleid SAML-antwoorden kan maken, moet u het beleid configureren om een SAML-antwoord uit te geven in plaats van het standaard-JWT-antwoord op uw toepassing.
Een registratie- of aanmeldingsbeleid maken dat is geconfigureerd voor SAML
Maak een kopie van het SignUpOrSignin.xml-bestand in de werkmap van uw starterspakket en sla het op met een nieuwe naam. In dit artikel wordt SignUpOrSigninSAML.xml als voorbeeld gebruikt. Dit bestand is uw beleidsbestand voor de relying party. Deze is geconfigureerd om standaard een JWT-antwoord uit te geven.
Open het bestand SignUpOrSigninSAML.xml in de gewenste editor.
Wijzig de waarde van:
PolicyId
tot en metB2C_1A_signup_signin_saml
PublicPolicyUri
aanhttp://<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin_saml
. Vervang<tenant-name>
de tijdelijke aanduiding door het subdomein van de domeinnaam van uw Azure AD B2C-tenant. Als uw primaire tenantdomein bijvoorbeeld iscontoso.onmicrosoft.com
, gebruikt ucontoso
. Als u uw tenantnaam niet hebt, leest u de details van uw tenant.
<TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0" TenantId="<tenant-name>.onmicrosoft.com" PolicyId="B2C_1A_signup_signin_saml" PublicPolicyUri="http://<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin_saml">
Aan het einde van het gebruikerstraject bevat Azure AD B2C een
SendClaims
stap. Deze stap verwijst naar het technische profiel tokenverlener. Als u een SAML-antwoord wilt uitgeven in plaats van het standaard-JWT-antwoord, wijzigt u deSendClaims
stap om te verwijzen naar het nieuwe technische profiel samL-tokenverlener,Saml2AssertionIssuer
.
Voeg het volgende XML-fragment toe vlak voor het <RelyingParty>
element. Met deze XML wordt indelingsstap 7 in het gebruikerstraject SignUpOrSignIn overschreven.
Als u bent begonnen vanuit een andere map in het starterspakket of als u het gebruikerstraject hebt aangepast door indelingsstappen toe te voegen of te verwijderen, moet u ervoor zorgen dat het nummer in het order
element overeenkomt met het nummer dat is opgegeven in het gebruikerstraject voor de stap van de tokenverlener. In de andere mappen met starterspakketten is het bijbehorende stapnummer bijvoorbeeld 4 voor LocalAccounts
, 6 voor SocialAccounts
en 9 voor SocialAndLocalAccountsWithMfa
.
<UserJourneys>
<UserJourney Id="SignUpOrSignIn">
<OrchestrationSteps>
<OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="Saml2AssertionIssuer"/>
</OrchestrationSteps>
</UserJourney>
</UserJourneys>
Het relying party-element bepaalt welk protocol uw toepassing gebruikt. De standaardwaarde is OpenId
. Het Protocol
element moet worden gewijzigd in SAML
. Met de uitvoerclaims wordt de claimtoewijzing gemaakt aan de SAML-assertie.
Vervang het hele <TechnicalProfile>
element in het element door de volgende XML van het <RelyingParty>
technische profiel.
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="SAML2"/>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" DefaultValue="" />
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="objectId"/>
</OutputClaims>
<SubjectNamingInfo ClaimType="objectId" ExcludeAsClaim="true"/>
</TechnicalProfile>
Het uiteindelijke beleidsbestand voor de relying party moet eruitzien als de volgende XML-code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TrustFrameworkPolicy
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
PolicySchemaVersion="0.3.0.0"
TenantId="contoso.onmicrosoft.com"
PolicyId="B2C_1A_signup_signin_saml"
PublicPolicyUri="http://contoso.onmicrosoft.com/B2C_1A_signup_signin_saml">
<BasePolicy>
<TenantId>contoso.onmicrosoft.com</TenantId>
<PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
</BasePolicy>
<UserJourneys>
<UserJourney Id="SignUpOrSignIn">
<OrchestrationSteps>
<OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="Saml2AssertionIssuer"/>
</OrchestrationSteps>
</UserJourney>
</UserJourneys>
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="SAML2"/>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" DefaultValue="" />
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="objectId"/>
</OutputClaims>
<SubjectNamingInfo ClaimType="objectId" ExcludeAsClaim="true"/>
</TechnicalProfile>
</RelyingParty>
</TrustFrameworkPolicy>
Notitie
U kunt hetzelfde proces volgen om andere typen gebruikersstromen te implementeren (bijvoorbeeld: aanmelding, wachtwoordherstel of profielbewerkingsstromen).
Uw beleid uploaden
Sla uw wijzigingen op en upload de nieuwe TrustFrameworkExtensions.xml - en SignUpOrSigninSAML.xml-beleidsbestanden naar Azure Portal.
De SAML-metagegevens van Azure AD B2C IdP testen
Nadat de beleidsbestanden zijn geüpload, gebruikt Azure AD B2C de configuratiegegevens om het SAML-metagegevensdocument van de id-provider te genereren dat door de toepassing wordt gebruikt. Het SAML-metagegevensdocument bevat de locaties van services, zoals aanmeldingsmethoden, afmeldingsmethoden en certificaten.
De metagegevens van het Azure AD B2C-beleid zijn beschikbaar op de volgende URL:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/samlp/metadata
Vervang <tenant-name>
door de naam van uw Azure AD B2C-tenant. Vervang <policy-name>
door de naam (ID) van het beleid. Hier volgt een voorbeeld:
https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/metadata
Uw SAML-toepassing registreren in Azure AD B2C
Voor Azure AD B2C om uw toepassing te vertrouwen, maakt u een Azure AD B2C-toepassingsregistratie. De registratie bevat configuratiegegevens, zoals het metagegevenseindpunt van de toepassing.
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
- Selecteer Azure AD B2C in het linkermenu. Of selecteer Alle services en zoek en selecteer Azure AD B2C.
- Selecteer App-registraties en selecteer vervolgens Nieuwe registratie.
- Voer een naam in voor de toepassing. Voer bijvoorbeeld SAMLApp1 in.
- Onder Ondersteunde accounttypen selecteert u Enkel accounts in deze organisatieadreslijst.
- Selecteer onder Omleidings-URI de optie Web en voer vervolgens in
https://localhost
. U wijzigt deze waarde later in het manifest van de toepassingsregistratie. - Selecteer Registreren.
Uw toepassing configureren in Azure AD B2C
Voor SAML-apps moet u verschillende eigenschappen configureren in het manifest van de toepassingsregistratie.
- Ga in Azure Portal naar de toepassingsregistratie die u in de vorige sectie hebt gemaakt.
- Selecteer onder Beheren manifest om de manifesteditor te openen. Wijzig vervolgens de eigenschappen die in de volgende secties worden beschreven.
De id toevoegen
Wanneer uw SAML-toepassing een aanvraag indient bij Azure AD B2C, bevat de SAML-verificatieaanvraag een Issuer
kenmerk. De waarde van dit kenmerk is doorgaans hetzelfde als de metagegevenswaarde entityID
van de toepassing. Azure AD B2C gebruikt deze waarde om de toepassingsregistratie in de directory op te zoeken en de configuratie te lezen. Als u deze zoekopdracht wilt voltooien, identifierUri
moet de registratie van de toepassing worden ingevuld met een waarde die overeenkomt met het Issuer
kenmerk.
Zoek in het registratiemanifest de identifierURIs
parameter en voeg de juiste waarde toe. Deze waarde is dezelfde waarde die is geconfigureerd in de SAML-verificatieaanvragen voor EntityId
de toepassing en de entityID
waarde in de metagegevens van de toepassing. U moet ook de accessTokenAcceptedVersion
parameter zoeken en de waarde instellen op 2
.
Belangrijk
Als u het accessTokenAcceptedVersion
bestand niet bijwerkt, 2
ontvangt u een foutbericht waarin een geverifieerd domein is vereist.
In het volgende voorbeeld ziet u de entityID
waarde in de SAML-metagegevens:
<EntityDescriptor ID="id123456789" entityID="https://samltestapp2.azurewebsites.net" validUntil="2099-12-31T23:59:59Z" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
De identifierUris
eigenschap accepteert alleen URL's in het domein tenant-name.onmicrosoft.com
.
"identifierUris":"https://tenant-name.onmicrosoft.com/app-name",
De metagegevens van de toepassing delen met Azure AD B2C
Nadat de toepassingsregistratie door de waarde is geladen identifierUri
, gebruikt Azure AD B2C de metagegevens van de toepassing om de SAML-verificatieaanvraag te valideren en te bepalen hoe moet worden gereageerd.
Het is raadzaam dat uw toepassing een openbaar toegankelijk metagegevenseindpunt beschikbaar maakt.
Als er eigenschappen zijn opgegeven in zowel de SAML-metagegevens-URL als het manifest van de toepassingsregistratie, worden deze samengevoegd. De eigenschappen die zijn opgegeven in de metagegevens-URL worden eerst verwerkt en hebben voorrang.
Als u de SAML-testtoepassing als voorbeeld gebruikt, gebruikt u de volgende waarde in samlMetadataUrl
het toepassingsmanifest:
"samlMetadataUrl":"https://samltestapp2.azurewebsites.net/Metadata",
De URL van de assertieconsumer overschrijven of instellen (optioneel)
U kunt de antwoord-URL configureren waarnaar Azure AD B2C SAML-antwoorden verzendt. Antwoord-URL's kunnen worden geconfigureerd in het toepassingsmanifest. Deze configuratie is handig wanneer uw toepassing geen openbaar toegankelijk metagegevenseindpunt beschikbaar maakt.
De antwoord-URL voor een SAML-toepassing is het eindpunt waarop de toepassing SAML-antwoorden verwacht te ontvangen. De toepassing levert deze URL meestal in het metagegevensdocument als het Location
kenmerk van het AssertionConsumerService
element, zoals wordt weergegeven in dit voorbeeld:
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
...
<AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://samltestapp2.azurewebsites.net/SP/AssertionConsumer" />
</SPSSODescriptor>
Als het metagegevenselement AssertionConsumerService
van de toepassing ontbreekt of als u dit wilt overschrijven, configureert u de eigenschap registratiemanifest replyUrlsWithType
van de toepassing. Azure AD B2C gebruikt de replyUrlsWithType
omleiding van gebruikers nadat ze zijn aangemeld met het HTTP-POST
bindingstype.
Als u de SAML-testtoepassing als voorbeeld gebruikt, stelt u de url
eigenschap in op replyUrlsWithType
de waarde die wordt weergegeven in het volgende JSON-fragment:
"replyUrlsWithType":[
{
"url":"https://samltestapp2.azurewebsites.net/SP/AssertionConsumer",
"type":"Web"
}
],
De afmeldings-URL overschrijven of instellen (optioneel)
De afmeldings-URL definieert waar de gebruiker moet worden omgeleid na een afmeldingsaanvraag. De toepassing levert deze URL meestal in het metagegevensdocument als het Location
kenmerk van het SingleLogoutService
element, zoals wordt weergegeven in het volgende voorbeeld:
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://samltestapp2.azurewebsites.net/logout" ResponseLocation="https://samltestapp2.azurewebsites.net/logout" />
</SPSSODescriptor>
Als het metagegevenselement SingleLogoutService
van de toepassing ontbreekt, configureert u de eigenschap registratiemanifest logoutUrl
van de toepassing. Azure AD B2C gebruikt de logoutURL
omleiding van gebruikers nadat ze zijn afgemeld met het HTTP-Redirect
bindingstype.
Als u de SAML-testtoepassing als voorbeeld gebruikt, stelt u de logoutUrl
eigenschap https://samltestapp2.azurewebsites.net/logout
in op:
"logoutUrl": "https://samltestapp2.azurewebsites.net/logout",
Notitie
Als u ervoor kiest om de antwoord-URL en afmeldings-URL in het toepassingsmanifest te configureren zonder het metagegevenseindpunt van de toepassing via de samlMetadataUrl
eigenschap in te vullen, valideert Azure AD B2C de HANDTEKENING van de SAML-aanvraag niet. Het SAML-antwoord wordt ook niet versleuteld.
Azure AD B2C configureren als EEN SAML IdP in uw SAML-toepassing
De laatste stap is het inschakelen van Azure AD B2C als SAML IdP in uw SAML-toepassing. Elke toepassing is anders en de stappen variëren. Raadpleeg de documentatie van uw app voor meer informatie.
De metagegevens kunnen in uw toepassing worden geconfigureerd als statische metagegevens of dynamische metagegevens. Kopieer in de statische modus alle of een deel van de metagegevens uit de azure AD B2C-beleidsmetagegevens. Geef in de dynamische modus de URL op naar de metagegevens en laat uw toepassing de metagegevens dynamisch lezen.
Sommige of alle volgende zijn doorgaans vereist:
Metagegevens: gebruik de notatie
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/Samlp/metadata
.Uitgever: de waarde van
issuer
de SAML-aanvraag moet overeenkomen met een van de URI's die zijn geconfigureerd in hetidentifierUris
element van het toepassingsregistratiemanifest. Als de naam vanissuer
de SAML-aanvraag niet in hetidentifierUris
element bestaat, voegt u deze toe aan het registratiemanifest van de toepassing. Bijvoorbeeld:https://contoso.onmicrosoft.com/app-name
.Aanmeldings-URL, SAML-eindpunt, SAML-URL: Controleer de waarde in het metagegevensbestand van het Azure AD B2C SAML-beleid voor het
<SingleSignOnService>
XML-element.Certificaat: dit certificaat is B2C_1A_SamlIdpCert, maar zonder de persoonlijke sleutel. De openbare sleutel van het certificaat ophalen:
- Ga naar de metagegevens-URL die u eerder hebt opgegeven.
- Kopieer de waarde in het
<X509Certificate>
element. - Plak deze in een tekstbestand.
- Sla het tekstbestand op als een CER-bestand .
Testen met de SAML-test-app
U kunt onze SAML-testtoepassing gebruiken om uw configuratie te testen:
- Werk de naam van de tenant bij.
- Werk de beleidsnaam bij. Gebruik bijvoorbeeld B2C_1A_signup_signin_saml.
- Geef de URI van de verlener op. Gebruik een van de URI's in het
identifierUris
element in het registratiemanifest van de toepassing. Gebruik bijvoorbeeldhttps://contoso.onmicrosoft.com/app-name
.
Selecteer Aanmelden en er moet een aanmeldingsscherm van de gebruiker worden weergegeven. Nadat u zich hebt aangemeld, wordt een SAML-antwoord teruggestuurd naar de voorbeeldtoepassing.
Ondersteunde en niet-ondersteunde SAML-modaliteiten
De volgende SAML-toepassingsscenario's worden ondersteund via uw eigen metagegevenseindpunt:
- Geef meerdere afmeldings-URL's of POST-binding op voor de afmeldings-URL in het toepassings- of service-principalobject.
- Geef een ondertekeningssleutel op voor het verifiëren van relying party-aanvragen in het toepassings- of service-principal-object.
- Geef een tokenversleutelingssleutel op in het toepassings- of service-principalobject.
- Geef door IdP geïnitieerde aanmelding op, waarbij de id-provider Azure AD B2C is.
Volgende stappen
- Haal de SAML-testweb-app op uit de Azure AD B2C GitHub-communityopslagplaats.
- Zie de opties voor het registreren van een SAML-toepassing in Azure AD B2C.
- Meer informatie over het bouwen van tolerantie via best practices voor ontwikkelaars.