Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
À compter du 1er mai 2025, Azure AD B2C ne sera plus disponible pour les nouveaux clients. Pour plus d’informations, consultez notre FAQ.
Azure Active Directory B2C (Azure AD B2C) prend en charge la fédération avec les fournisseurs d’identité SAML 2.0. Cet article explique comment activer la connexion avec un compte d’utilisateur du fournisseur d’identité SAML, ce qui permet aux utilisateurs de se connecter avec leurs identités sociales ou d’entreprise existantes, telles que ADFS et Salesforce.
Avant de commencer, utilisez le sélecteur Choisir un type de stratégie en haut de cette page pour choisir le type de stratégie que vous configurez. Azure Active Directory B2C offre deux possibilités pour définir la façon dont les utilisateurs interagissent avec vos applications : via des flux utilisateurs prédéfinis ou via des stratégies personnalisées entièrement configurables. La procédure donnée dans cet article est différente pour chaque méthode.
Cette fonctionnalité est disponible uniquement pour les stratégies personnalisées. Pour les étapes de configuration, sélectionnez Stratégie personnalisée dans le sélecteur précédent.
Vue d’ensemble du scénario
Vous pouvez configurer Azure AD B2C pour permettre aux utilisateurs de se connecter à votre application avec des informations d’identification provenant de fournisseurs d’identité SAML (IdP) sociaux ou d’entreprise externes. Lorsqu’Azure AD B2C se fédère avec un fournisseur d’identité SAML, il agit en tant que fournisseur de services initiant une demande SAML au fournisseur d’identité SAML et attendant une réponse SAML. Dans le schéma suivant :
- L’application lance une demande d’autorisation auprès d’Azure AD B2C. L’application peut être une application OAuth 2.0 ou OpenId Connect , ou un fournisseur de services SAML.
- Dans la page de connexion Azure AD B2C, l’utilisateur choisit de se connecter avec un compte de fournisseur d’identité SAML (par exemple , Contoso). Azure AD B2C lance une demande d’autorisation SAML et amène l’utilisateur au fournisseur d’identité SAML pour terminer la connexion.
- Le fournisseur d’identité SAML retourne une réponse SAML.
- Azure AD B2C valide le jeton SAML, extrait les revendications, émet son propre jeton et ramène l’utilisateur à l’application.
Conditions préalables
- Suivez les étapes de Prise en main des stratégies personnalisées dans Active Directory B2C. Ce tutoriel vous explique comment mettre à jour des fichiers de stratégie personnalisés pour utiliser votre configuration de locataire Azure AD B2C.
- Si vous n’avez pas inscrit d’application web, inscrivez-en une en suivant les étapes de l’inscription d’une application web.
Composants de la solution
Les composants suivants sont requis pour ce scénario :
- Un fournisseur d'identité SAML capable de recevoir, décoder et répondre aux requêtes SAML provenant de Azure AD B2C.
- Un point de terminaison de métadonnées SAML disponible publiquement pour votre fournisseur d’identité.
- Un locataire Azure AD B2C.
Important
Vos points de terminaison doivent respecter les exigences de sécurité Azure AD B2C. Les versions et les chiffrements TLS plus anciens sont déconseillés. Pour plus d’informations, consultez la configuration requise pour azure AD B2C TLS et la suite de chiffrement.
Créer une clé de stratégie
Pour établir l’approbation entre Azure AD B2C et votre fournisseur d’identité SAML, vous devez fournir un certificat X509 valide avec la clé privée. Azure AD B2C signe les requêtes SAML à l’aide de la clé privée du certificat. Le fournisseur d’identité valide la demande à l’aide de la clé publique du certificat. La clé publique est accessible via les métadonnées de profil technique. Vous pouvez également charger manuellement le fichier .cer sur votre fournisseur d’identité SAML.
Un certificat auto-signé est acceptable pour la plupart des scénarios. Pour les environnements de production, il est recommandé d’utiliser un certificat X509 émis par une autorité de certification. En outre, comme décrit plus loin dans ce document, pour un environnement hors production, vous pouvez désactiver la signature SAML des deux côtés.
Obtenir un certificat
Si vous n’avez pas encore de certificat, vous pouvez utiliser un certificat auto-signé. Un certificat auto-signé est un certificat de sécurité qui n’est pas signé par une autorité de certification et qui n’offre pas les garanties de sécurité d’un certificat signé par une autorité de certification.
Sur Windows, utilisez l’applet de commande New-SelfSignedCertificate dans PowerShell pour générer un certificat.
Exécutez la commande PowerShell suivante pour générer un certificat auto-signé. Modifiez l’argument
-Subject
comme il convient pour votre application et le nom de locataire Azure AD B2C, commecontosowebapp.contoso.onmicrosoft.com
. Vous pouvez également ajuster la date de-NotAfter
pour spécifier un délai d’expiration différent pour le certificat.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"
Sur l’ordinateur Windows, recherchez et sélectionnez Gérer les certificats utilisateur
Sous Certificats - Utilisateur actuel, sélectionnez Personnels>Certificats>yourappname.yourtenant.onmicrosoft.com.
Sélectionnez le certificat, puis Action>All Tasks>Export.
Sélectionnez Suivant>Oui, exportez la clé> privéeSuivant.
Acceptez les valeurs par défaut pour Exporter le format de fichier, puis sélectionnez Suivant.
Activez l’option Mot de passe , entrez un mot de passe pour le certificat, puis sélectionnez Suivant.
Pour spécifier un emplacement pour enregistrer votre certificat, sélectionnez Parcourir et accédez à un répertoire de votre choix.
Dans la fenêtre Enregistrer sous , entrez un nom de fichier, puis sélectionnez Enregistrer.
Sélectionnez Suivant>Terminer.
Pour qu’Azure AD B2C accepte le mot de passe du fichier .pfx, celui-ci doit être chiffré à l’aide de l’option TripleDES-SHA1 de l’utilitaire d’exportation du magasin de certificats Windows, par opposition à AES256-SHA256.
Téléchargement du certificat
Vous devez stocker votre certificat dans votre locataire Azure AD B2C.
- Connectez-vous au portail Azure.
- Si vous avez accès à plusieurs tenants (locataires), sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre tenant Azure AD B2C à partir du menu Annuaires + abonnements.
- Choisissez tous les services dans le coin supérieur gauche du portail Azure, puis recherchez et sélectionnez Azure AD B2C.
- Dans la page Vue d’ensemble, sélectionnez Identity Experience Framework.
- Sélectionnez Clés de stratégie , puis sélectionnez Ajouter.
- Pour options, choisissez
Upload
. - Entrez un nom pour la clé de stratégie. Par exemple :
SAMLSigningCert
. Le préfixeB2C_1A_
est ajouté automatiquement au nom de votre clé. - Accédez à votre fichier .pfx de certificat et sélectionnez-le avec la clé privée.
- Cliquez sur Créer.
Configurer le profil technique SAML
Définissez le fournisseur d’identité SAML en l’ajoutant à l’élément ClaimsProviders dans le fichier d’extension de votre stratégie. Les fournisseurs de revendications ont un profil technique SAML qui détermine les points de terminaison et les protocoles nécessaires pour communiquer avec le fournisseur d’identité SAML. Pour ajouter un fournisseur de revendications avec un profil technique SAML :
Ouvrez le fichier TrustFrameworkExtensions.xml.
Recherchez l’élément ClaimsProviders . S’il n’existe pas, ajoutez-le sous l’élément racine.
Ajoutez un nouveau ClaimsProvider comme suit :
<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>
Mettez à jour les éléments XML suivants avec la valeur appropriée :
Élément XML | Valeur |
---|---|
FournisseurDeRéclamations\Domaine | Nom de domaine utilisé pour la connexion directe. Entrez le nom de domaine que vous souhaitez utiliser dans la connexion directe. Par exemple, Contoso.com. |
TechnicalProfile\DisplayName | Cette valeur s’affiche sur le bouton de connexion sur l’écran de connexion. Par exemple, Contoso. |
Métadonnées\PartnerEntity | URL des métadonnées du fournisseur d’identité SAML. Vous pouvez également copier les métadonnées du fournisseur d’identité et l’ajouter à l’intérieur de l’élément <![CDATA[Your IDP metadata]]> CDATA. |
Cartographier les revendications
L’élément OutputClaims contient une liste de revendications renvoyées par le fournisseur d’identité SAML. Mappez le nom de la revendication qui est définie dans votre stratégie sur le nom d’assertion qui est défini dans le fournisseur d’identité. Vérifiez auprès de votre fournisseur d'identité la liste des déclarations (assertions). Pour plus d’informations, consultez le mappage des revendications.
Dans l’exemple ci-dessus, Contoso-SAML2 inclut les revendications retournées par un fournisseur d’identité SAML :
- La revendication assertionSubjectName est mappée à la revendication issuerUserId .
- La revendication first_name est mappée à la revendication givenName .
- La revendication last_name est mappée à la revendication de nom de famille .
- La
http://schemas.microsoft.com/identity/claims/displayname
revendication est associée à l'attribut displayName. - La revendication email sans mappage de nom.
Le profil technique retourne également des revendications qui ne sont pas retournées par le fournisseur d’identité :
- La déclaration identityProvider qui contient le nom du fournisseur d'identité.
- La revendication authenticationSource a comme valeur par défaut socialIdpAuthentication.
Ajouter le profil technique de session SAML
Si vous n’avez pas encore de profil technique de session SAML SM-Saml-idp
, ajoutez-en un à votre stratégie d’extension. Recherchez la <ClaimsProviders>
section et ajoutez l’extrait de code XML suivant. Si votre stratégie contient déjà le SM-Saml-idp
profil technique, passez à l’étape suivante. Pour plus d’informations, consultez la gestion des sessions d’authentification unique.
<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>
Ajouter un parcours utilisateur
À ce stade, le fournisseur d’identité a été configuré, mais il n’est pas encore accessible depuis aucune des pages de connexion. Si vous n’avez pas votre propre parcours utilisateur personnalisé, créez un doublon d’un parcours utilisateur de modèle existant, sinon passez à l’étape suivante.
- Ouvrez le fichier TrustFrameworkBase.xml à partir du pack de démarrage.
- Recherchez et copiez l’intégralité du contenu de l’élément UserJourney qui inclut
Id="SignUpOrSignIn"
. - Ouvrez le TrustFrameworkExtensions.xml et recherchez l’élément UserJourneys . Si l’élément n’existe pas, ajoutez-en un.
- Collez tout le contenu de l’élément UserJourney que vous avez copié en tant qu’enfant de l’élément UserJourneys .
- Renommez l’ID du parcours utilisateur. Par exemple :
Id="CustomSignUpSignIn"
.
Ajouter le fournisseur d’identité à un parcours utilisateur
Maintenant que vous disposez d’un parcours utilisateur, ajoutez le nouveau fournisseur d’identité au parcours utilisateur. Vous ajoutez d’abord un bouton de connexion, puis liez le bouton à une action. L’action correspond au profil technique que vous avez créé précédemment.
Recherchez l’élément d’étape d’orchestration qui inclut
Type="CombinedSignInAndSignUp"
ouType="ClaimsProviderSelection"
dans le parcours utilisateur. Il s’agit généralement de la première étape d’orchestration. L’élément ClaimsProviderSelections contient une liste de fournisseurs d’identité auxquels un utilisateur peut se connecter. L’ordre des éléments contrôle l’ordre des boutons de connexion présentés à l’utilisateur. Ajoutez un élément XML ClaimsProviderSelection . Définissez la valeur de TargetClaimsExchangeId sur un nom convivial.À l’étape d’orchestration suivante, ajoutez un élément ClaimsExchange . Définissez ID sur la valeur de l’ID d’échange des revendications cible. Mettez à jour la valeur de TechnicalProfileReferenceId sur l’ID du profil technique que vous avez créé.
Le code XML suivant illustre les deux premières étapes d’orchestration d’un parcours utilisateur avec le fournisseur d’identité :
<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>
Configurer la stratégie de partie de confiance
La stratégie du partenaire de confiance, par exemple SignUpSignIn.xml, spécifie le parcours utilisateur que Azure AD B2C mettra en œuvre. Recherchez l'élément DefaultUserJourney dans la partie requérante. Mettez à jour le ReferenceId pour qu'il corresponde à l'identifiant du parcours utilisateur dans lequel vous avez ajouté le fournisseur d'identité.
Dans l’exemple suivant, pour le CustomSignUpSignIn
parcours utilisateur, l’Id de référence est défini sur CustomSignUpSignIn
:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Charger la politique personnalisée
- Connectez-vous au portail Azure.
- Sélectionnez l’icône Répertoire + Abonnement dans la barre d’outils du portail, puis sélectionnez le répertoire qui contient votre locataire Azure AD B2C.
- Dans le portail Azure, recherchez et sélectionnez Azure AD B2C.
- Sous Stratégies, sélectionnez Identity Experience Framework.
- Sélectionnez Charger une stratégie personnalisée, puis chargez les deux fichiers de stratégie que vous avez modifiés, dans l’ordre suivant : la stratégie d’extension, par exemple
TrustFrameworkExtensions.xml
, la stratégie de partie de confiance, telle queSignUpSignIn.xml
.
Configurer votre fournisseur d’identité SAML
Une fois votre stratégie configurée, vous devez configurer votre fournisseur d’identité SAML avec les métadonnées SAML Azure AD B2C. Les métadonnées SAML sont des informations utilisées dans le protocole SAML pour exposer la configuration de votre stratégie, le fournisseur de services. Il définit l’emplacement des services, tels que la connexion et la déconnexion, les certificats, la méthode de connexion, etc.
Chaque fournisseur d’identité SAML a des étapes différentes pour définir un fournisseur de services. Certains fournisseurs d’identité SAML demandent les métadonnées Azure AD B2C, tandis que d’autres nécessitent que vous accédiez manuellement au fichier de métadonnées et fournissez les informations. Reportez-vous à la documentation de votre fournisseur d’identité pour obtenir des conseils.
L’exemple suivant montre une adresse URL pour les métadonnées SAML d’un profil technique Azure AD B2C :
https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
Lorsque vous utilisez un domaine personnalisé, utilisez le format suivant :
https://your-domain-name/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
Remplacez les valeurs suivantes :
- nom de votre locataire avec le nom de votre locataire, tel que your-tenant.onmicrosoft.com.
- votre nom de domaine avec votre nom de domaine personnalisé, tel que login.contoso.com.
- votre stratégie avec le nom de votre stratégie. Par exemple, B2C_1A_signup_signin_adfs.
- votre profil technique avec le nom de votre profil technique du fournisseur d’identité SAML. Par exemple, Contoso-SAML2.
Ouvrez un navigateur et accédez à l’URL. Vérifiez que vous tapez l’URL correcte et que vous avez accès au fichier de métadonnées XML.
Tester votre stratégie personnalisée
- Connectez-vous au portail Azure.
- Si vous avez accès à plusieurs tenants (locataires), sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre tenant Azure AD B2C à partir du menu Annuaires + abonnements.
- Dans le portail Azure, recherchez et sélectionnez Azure AD B2C.
- Sous Stratégies, sélectionnez Identity Experience Framework
- Sélectionnez votre stratégie de partie de confiance, par exemple
B2C_1A_signup_signin
. - Pour l’application, sélectionnez une application web que vous avez inscrite précédemment. L’URL de réponse doit être
https://jwt.ms
. - Sélectionnez le bouton Exécuter maintenant .
- Dans la page d’inscription ou de connexion, sélectionnez Contoso pour vous connecter avec le compte Contoso.
Si le processus de connexion réussit, votre navigateur est redirigé vers https://jwt.ms
, qui affiche le contenu du jeton retourné par Azure AD B2C.