Partager via


DéfinitionsDeContenu

Important

À compter du 1er mai 2025, Azure AD B2C ne sera plus disponible pour les nouveaux clients. Pour plus d’informations, consultez notre FAQ.

Remarque

Dans Active Directory B2C, les stratégies personnalisées sont principalement conçues pour gérer des scénarios complexes. Pour la plupart des scénarios, nous vous recommandons de recourir à des flux d’utilisateurs intégrés. Si vous ne l’avez pas fait, découvrez le Pack de démarrage de stratégie personnalisée dans Prise en main des stratégies personnalisées dans Active Directory B2C.

Vous pouvez personnaliser l’apparence de n’importe quel profil technique autodéclaré. Azure Active Directory B2C (Azure AD B2C) exécute du code dans le navigateur de votre client et utilise une approche moderne appelée partage de ressources cross-origin (CORS).

Pour personnaliser l’interface utilisateur, vous spécifiez une URL dans l’élément ContentDefinition avec du contenu HTML personnalisé. Dans le profil technique autodéclaré ou OrchestrationStep, vous pointez vers cet identificateur de définition de contenu. La définition de contenu peut contenir un élément LocalizedResourcesReferences qui spécifie une liste de ressources localisées à charger. Azure AD B2C fusionne les éléments d’interface utilisateur avec le contenu HTML chargé à partir de votre URL, puis affiche la page à l’utilisateur.

L’élément ContentDefinitions contient des URL vers des modèles HTML5 qui peuvent être utilisés dans un parcours utilisateur. L’URI de page HTML5 est utilisé pour une étape d’interface utilisateur spécifiée. Par exemple, les pages de connexion ou d’inscription, de réinitialisation de mot de passe ou d’erreur. Vous pouvez modifier l’apparence en remplaçant LoadUri pour le fichier HTML5. Vous pouvez créer de nouvelles définitions de contenu en fonction de vos besoins. Cet élément peut contenir une référence de ressources localisées, à l’identificateur de localisation spécifié dans l’élément Localisation .

L’exemple suivant montre l’identificateur de définition de contenu et la définition des ressources localisées :

<ContentDefinition Id="api.localaccountsignup">
  <LoadUri>~/tenant/default/selfAsserted.cshtml</LoadUri>
  <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
  <DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:1.1.0</DataUri>
  <Metadata>
    <Item Key="DisplayName">Local account sign up page</Item>
  </Metadata>
  <LocalizedResourcesReferences MergeBehavior="Prepend">
    <LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.localaccountsignup.en" />
    <LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.localaccountsignup.es" />
    ...

Les métadonnées du profil technique autodéclaré LocalAccountSignUpWithLogonEmail contiennent l’identificateur de définition de contenu ContentDefinitionReferenceId défini sur api.localaccountsignup

<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
  <DisplayName>Email signup</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
    ...
  </Metadata>
  ...

ContentDefinition

L’élément ContentDefinition contient l’attribut suivant :

Caractéristique Obligatoire Descriptif
Id Oui Identificateur d’une définition de contenu. La valeur est une spécifiée dans la section ID de définition de contenu plus loin dans cette page.

L’élément ContentDefinition contient les éléments suivants :

Élément Occurrences Descriptif
LoadUri Un-à-un (1:1) Chaîne qui contient l’URL de la page HTML5 pour la définition de contenu.
RécupérationUri Un-à-un (1:1) Chaîne qui contient l’URL de la page HTML pour afficher une erreur relative à la définition de contenu. Non utilisé actuellement, la valeur doit être ~/common/default_page_error.html.
DataUri Un-à-un (1:1) Chaîne qui contient l’URL relative d’un fichier HTML qui fournit l’expérience utilisateur à appeler pour l’étape.
Métadonnées 0:1 Collection de paires clé/valeur qui contient les métadonnées utilisées par la définition de contenu.
LocalizedResourcesRéférences 0:1 Collection de références de ressources localisées. Utilisez cet élément pour personnaliser la localisation d’une interface utilisateur et d’un attribut de revendications.

LoadUri

L’élément LoadUri est utilisé pour spécifier l’URL de la page HTML5 pour la définition de contenu. Les packs de démarrage de stratégie personnalisée Azure AD B2C sont fournis avec des définitions de contenu qui utilisent des pages HTML Azure AD B2C. LoadUri commence par ~, qui est un chemin relatif vers votre locataire Azure AD B2C.

<ContentDefinition Id="api.signuporsignin">
  <LoadUri>~/tenant/templates/AzureBlue/unified.cshtml</LoadUri>
  ...
</ContentDefinition>

Vous pouvez personnaliser l’interface utilisateur avec des modèles HTML. Lorsque vous utilisez des modèles HTML, fournissez une URL absolue. L’exemple suivant illustre une définition de contenu avec un modèle HTML :

<ContentDefinition Id="api.signuporsignin">
  <LoadUri>https://your-storage-account.blob.core.windows.net/your-container/customize-ui.html</LoadUri>
  ...
</ContentDefinition>

DataUri

L’élément DataUri est utilisé pour spécifier l’identificateur de page. Azure AD B2C utilise l’identificateur de page pour charger et lancer des éléments d’interface utilisateur et javaScript côté client. Le format de la valeur est urn:com:microsoft:aad:b2c:elements:page-name:version. Le tableau suivant répertorie les identificateurs de page que vous pouvez utiliser.

Identificateur de page Descriptif
globalexception Affiche une page d’erreur lorsqu’une exception ou une erreur est rencontrée.
providerselection, idpselection Répertorie les fournisseurs d’identité que les utilisateurs peuvent choisir pendant la connexion.
unifiedssp Affiche un formulaire pour la connexion avec un compte local basé sur une adresse e-mail ou un nom d’utilisateur. Cette valeur fournit également le lien « Conserver la fonctionnalité de connexion » et « Oublié votre mot de passe ? ».
unifiedssd Affiche un formulaire pour la connexion avec un compte local basé sur une adresse e-mail ou un nom d’utilisateur. Cet identificateur de page est déconseillé. Utilisez plutôt l’identificateur de unifiedssp page.
multifactor Vérifie les numéros de téléphone à l’aide de texte ou de voix pendant l’inscription ou la connexion.
selfasserted Affiche un formulaire pour collecter des données d’un utilisateur. Par exemple, permet aux utilisateurs de créer ou de mettre à jour leur profil.

Sélectionner une mise en page

Vous pouvez activer le code côté client JavaScript en insérant contract entre elements et le type de page. Par exemple : urn:com:microsoft:aad:b2c:elements:contract:page-name:version.

La partie version du package spécifie le package de contenu contenant html, CSS et JavaScript pour les éléments d’interface DataUri utilisateur de votre stratégie. Si vous envisagez d’activer le code côté client JavaScript, les éléments sur lesquels vous basez votre Code JavaScript doivent être immuables. S’ils ne sont pas immuables, toutes les modifications peuvent entraîner un comportement inattendu sur vos pages utilisateur. Pour éviter ces problèmes, appliquez l’utilisation d’une mise en page et spécifiez une version de mise en page. Cela garantit que toutes les définitions de contenu sur lesquelles vous avez basé votre Code JavaScript sont immuables. Même si vous n’avez pas l’intention d’activer JavaScript, vous devez toujours spécifier la version de mise en page de vos pages.

L’exemple suivant montre DataUri de selfasserted version 1.2.0:

<!-- 
<BuildingBlocks> 
  <ContentDefinitions>-->
    <ContentDefinition Id="api.localaccountpasswordreset">
      <LoadUri>~/tenant/templates/AzureBlue/selfAsserted.cshtml</LoadUri>
      <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
      <Metadata>
        <Item Key="DisplayName">Local account change password page</Item>
      </Metadata>
    </ContentDefinition>
  <!-- 
  </ContentDefinitions> 
</BuildingBlocks> -->

Migration vers la mise en page

Pour migrer de l’ancienne valeur DataUri (sans contrat de page) vers la version de mise en page, ajoutez le mot contract suivi par une version de page. Utilisez le tableau suivant pour migrer de l’ancienne valeur DataUri vers la version de mise en page.

Ancienne valeur DataUri Nouvelle valeur DataUri
urn:com:microsoft:aad:b2c:elements:globalexception:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1
urn:com:microsoft:aad:b2c:elements:globalexception:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1
urn:com:microsoft:aad:b2c:elements:idpselection:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1
urn:com:microsoft:aad:b2c:elements:selfasserted:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.7
urn:com:microsoft:aad:b2c:elements:selfasserted:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.7
urn:com:microsoft:aad:b2c:elements:unifiedssd:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:unifiedssd:1.2.1
urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.5
urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.5
urn:com:microsoft:aad:b2c:elements:multifactor:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.5
urn:com:microsoft:aad:b2c:elements:multifactor:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.5

L’exemple suivant montre les identificateurs de définition de contenu et le DataUri correspondant avec la dernière version de page :

<!-- 
<BuildingBlocks> -->
  <ContentDefinitions>
    <ContentDefinition Id="api.error">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.idpselections">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.idpselections.signup">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.signuporsignin">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.7</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.selfasserted">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.selfasserted.profileupdate">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.localaccountsignup">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.localaccountpasswordreset">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.phonefactor">
      <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.5</DataUri>
    </ContentDefinition>
  </ContentDefinitions>
<!-- 
</BuildingBlocks> -->

Métadonnées

Un élément Metadata contient les éléments suivants :

Élément Occurrences Descriptif
Élément 0 :n Métadonnées relatives à la définition de contenu.

L’élément Item de l’élément Metadata contient les attributs suivants :

Caractéristique Obligatoire Descriptif
Clé Oui Clé de métadonnées.

Clés de métadonnées

La définition de contenu prend en charge les éléments de métadonnées suivants :

Clé Obligatoire Descriptif
Nom affiché Non Chaîne qui contient le nom de la définition de contenu.

LocalizedResourcesRéférences

L’élément LocalizedResourcesReferences contient les éléments suivants :

Élément Occurrences Descriptif
LocalizedResourcesReference 1 :n Liste des références de ressources localisées pour la définition de contenu.

L’élément LocalizedResourcesReference contient les attributs suivants :

Caractéristique Obligatoire Descriptif
Langue Oui Chaîne qui contient une langue prise en charge pour la stratégie par RFC 5646 - Balises pour identifier les langues.
LocalizedResourcesReferenceId Oui Identificateur de l’élément LocalizedResources .

L’exemple suivant montre une définition de contenu d’inscription ou de connexion avec une référence à la localisation pour l’anglais, le français et l’espagnol :

<ContentDefinition Id="api.signuporsignin">
  <LoadUri>~/tenant/default/unified.cshtml</LoadUri>
  <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
  <DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0</DataUri>
  <Metadata>
    <Item Key="DisplayName">Signin and Signup</Item>
  </Metadata>
  <LocalizedResourcesReferences MergeBehavior="Prepend">
    <LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.signuporsignin.en" />
    <LocalizedResourcesReference Language="fr" LocalizedResourcesReferenceId="api.signuporsignin.rf" />
    <LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.signuporsignin.es" />
</LocalizedResourcesReferences>
</ContentDefinition>

Pour savoir comment ajouter la prise en charge de la localisation à vos définitions de contenu, consultez Localisation.

ID de définition de contenu

L’attribut ID de l’élément ContentDefinition spécifie le type de page qui se rapporte à la définition de contenu. L’élément définit le contexte qu’un modèle HTML5/CSS personnalisé va appliquer. Le tableau suivant décrit l’ensemble des ID de définition de contenu reconnus par identity Experience Framework et les types de pages qui les concernent. Vous pouvez créer vos propres définitions de contenu avec un ID arbitraire.

ID Modèle par défaut Descriptif
api.error exception.cshtml Page d’erreur : affiche une page d’erreur lorsqu’une exception ou une erreur est rencontrée.
api.idpselections idpSelector.cshtml Page de sélection du fournisseur d’identité : répertorie les fournisseurs d’identité parmi lesquels les utilisateurs peuvent choisir pendant la connexion. Les options sont généralement des fournisseurs d’identité d’entreprise, des fournisseurs d’identité sociale tels que Facebook et Google+, ou des comptes locaux.
api.idpselections.signup idpSelector.cshtml Sélection du fournisseur d’identité pour l’inscription : répertorie les fournisseurs d’identité parmi lesquels les utilisateurs peuvent choisir pendant l’inscription. Les options sont généralement des fournisseurs d’identité d’entreprise, des fournisseurs d’identité sociale tels que Facebook et Google+, ou des comptes locaux.
api.localaccountpasswordreset selfasserted.cshtml Page mot de passe oubliée : affiche un formulaire que les utilisateurs doivent remplir pour lancer une réinitialisation de mot de passe.
api.localaccountsignin selfasserted.cshtml Page de connexion au compte local : affiche un formulaire pour la connexion avec un compte local basé sur une adresse e-mail ou un nom d’utilisateur. Le formulaire peut contenir une zone de saisie de texte et une zone d’entrée de mot de passe.
api.localaccountssignup selfasserted.cshtml Page d’inscription de compte local : affiche un formulaire pour l’inscription à un compte local basé sur une adresse e-mail ou un nom d’utilisateur. Le formulaire peut contenir différents contrôles d’entrée, tels que : une zone d’entrée de texte, une zone d’entrée de mot de passe, une case d’option, des cases de liste déroulante à sélection unique et des cases à cocher à cocher multiples.
api.phonefactor multifactor-1.0.0.cshtml Page d’authentification multifacteur : vérifie les numéros de téléphone, à l’aide de texte ou de voix, lors de l’inscription ou de la connexion.
api.selfasserted selfasserted.cshtml Page d’inscription au compte social : affiche un formulaire que les utilisateurs doivent remplir lorsqu’ils s’inscrivent à l’aide d’un compte existant à partir d’un fournisseur d’identité sociale. Cette page est similaire à la page d’inscription au compte social précédent, à l’exception des champs d’entrée de mot de passe.
api.selfasserted.profileupdate updateprofile.cshtml Page Mise à jour de profil : affiche un formulaire auquel les utilisateurs peuvent accéder pour mettre à jour leur profil. Cette page est similaire à la page d’inscription au compte social, à l’exception des champs d’entrée de mot de passe.
api.signuporsignin unifié.cshtml Page d’inscription ou de connexion unifiée : gère le processus d’inscription et de connexion de l’utilisateur. Les utilisateurs peuvent utiliser des fournisseurs d’identité d’entreprise, des fournisseurs d’identité sociale tels que Facebook ou Google+, ou des comptes locaux.

Étapes suivantes

Pour obtenir un exemple de personnalisation de l’interface utilisateur à l’aide de définitions de contenu, consultez :

Personnaliser l’interface utilisateur de votre application à l’aide d’une stratégie personnalisée