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.
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.
Dans Azure Active Directory B2C (Azure AD B2C), vous pouvez envoyer des données d’événement directement à Application Insights à l’aide de la chaîne de connexion fournie à Azure AD B2C. Avec un profil technique Application Insights, vous pouvez obtenir des journaux d’événements détaillés et personnalisés pour vos parcours utilisateur vers :
- Obtenez des insights sur le comportement de l’utilisateur.
- Résoudre les problèmes de vos propres stratégies en développement ou en production
- Mesurez les performances.
- Créez des notifications à partir d’Application Insights.
Remarque
Cette fonctionnalité est en préversion publique.
Aperçu
Pour activer les journaux d’événements personnalisés, ajoutez un profil technique Application Insights. Dans le profil technique, vous définissez la chaîne de connexion Application Insights, le nom de l’événement et les revendications à enregistrer. Pour publier un événement, ajoutez le profil technique en tant qu’étape d’orchestration dans un parcours utilisateur.
Lorsque vous utilisez Application Insights, tenez compte des éléments suivants :
- Il y a un léger délai, généralement inférieur à cinq minutes, avant que les nouveaux logs ne soient disponibles dans Application Insights.
- Azure AD B2C vous permet de choisir les revendications à enregistrer. N’incluez pas de revendications avec des données personnelles.
- Pour enregistrer une session utilisateur, vous pouvez utiliser un ID de corrélation pour unifier les événements.
- Appelez le profil technique Application Insights directement à partir d’un parcours utilisateur ou d’unsous-parcours. N’utilisez pas de profil technique Application Insights comme profil technique de validation.
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.
Créer une ressource Application Insights
Lorsque vous utilisez Application Insights avec Azure AD B2C, il vous suffit de créer une ressource et d’obtenir la chaîne de connexion. Pour plus d’informations, consultez Créer une ressource Application Insights.
- Connectez-vous au portail Azure.
- Si vous avez accès à plusieurs locataires, sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre locataire Microsoft Entra ID à partir du menu Répertoires + abonnements .
- Choisissez Créer une ressource dans le coin supérieur gauche du portail Azure, puis recherchez et sélectionnez Application Insights.
- Cliquez sur Créer.
- Pour Nom, entrez un nom pour la ressource.
- Pour Le type d’application, sélectionnez ASP.NET application web.
- Pour le groupe de ressources, sélectionnez un groupe existant ou entrez un nom pour un nouveau groupe.
- Cliquez sur Créer.
- Ouvrez la nouvelle ressource Application Insights, développez Éléments principaux, puis copiez la chaîne de connexion.
Définir des revendications
Une revendication fournit un stockage temporaire de données lors d’une exécution de stratégie Azure AD B2C. Vous déclarez vos revendications dans l’élément ClaimsSchema.
Ouvrez le fichier d’extensions de votre stratégie. Le fichier peut ressembler à
SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
.Recherchez l’élément BuildingBlocks . Si vous ne voyez pas l’élément, ajoutez-le.
Recherchez l’élément ClaimsSchema . Si vous ne voyez pas l’élément, ajoutez-le.
Ajoutez les revendications suivantes à l’élément ClaimsSchema :
<ClaimType Id="EventType"> <DisplayName>Event type</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="EventTimestamp"> <DisplayName>Event timestamp</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="PolicyId"> <DisplayName>Policy Id</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="Culture"> <DisplayName>Culture ID</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="CorrelationId"> <DisplayName>Correlation Id</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="federatedUser"> <DisplayName>Federated user</DisplayName> <DataType>boolean</DataType> </ClaimType> <ClaimType Id="parsedDomain"> <DisplayName>Domain name</DisplayName> <DataType>string</DataType> <UserHelpText>The domain portion of the email address.</UserHelpText> </ClaimType> <ClaimType Id="userInLocalDirectory"> <DisplayName>userInLocalDirectory</DisplayName> <DataType>boolean</DataType> </ClaimType>
Ajouter de nouveaux profils techniques
Les profils techniques peuvent être considérés comme des fonctions dans la stratégie personnalisée. Ces fonctions utilisent l’approche d’inclusion de profil technique, où un profil technique inclut un autre profil technique et modifie des paramètres ou ajoute de nouvelles fonctionnalités. Le tableau suivant définit les profils techniques utilisés pour ouvrir une session et publier des événements.
Profil technique | Tâche |
---|---|
AppInsights-Common | Profil technique courant avec configuration classique. Il inclut la chaîne de connexion Application Insights, une collection de revendications à enregistrer et en mode développeur. Les autres profils techniques incluent le profil technique commun et ajoutent d’autres revendications, telles que le nom de l’événement. |
AppInsights-SignInRequest | Enregistre un événement SignInRequest avec un ensemble de revendications lorsqu’une demande de connexion a été reçue. |
AppInsights-UserSignUp | Enregistre un événement UserSignUp lorsque l’utilisateur déclenche l’option d’inscription dans un parcours d’inscription ou de connexion. |
AppInsights-SignInComplete | Enregistre un événement SignInComplete suite à une authentification réussie, lorsqu'un jeton a été envoyé à l'application de partie réceptrice. |
Ouvrez le fichier TrustFrameworkExtensions.xml à partir du pack de démarrage. Ajoutez les profils techniques à l’élément ClaimsProvider :
<ClaimsProvider>
<DisplayName>Application Insights</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AppInsights-Common">
<DisplayName>Application Insights</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.Insights.AzureApplicationInsightsProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<!-- The ApplicationInsights connection string, which you use for logging the events -->
<Item Key="ConnectionString">xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</Item>
<Item Key="DeveloperMode">false</Item>
<Item Key="DisableTelemetry ">false</Item>
</Metadata>
<InputClaims>
<!-- Properties of an event are added through the syntax {property:NAME}, where NAME is the property being added to the event. DefaultValue can be either a static value or a value that's resolved by one of the supported DefaultClaimResolvers. -->
<InputClaim ClaimTypeReferenceId="EventTimestamp" PartnerClaimType="{property:EventTimestamp}" DefaultValue="{Context:DateTimeInUtc}" />
<InputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="{property:TenantId}" DefaultValue="{Policy:TrustFrameworkTenantId}" />
<InputClaim ClaimTypeReferenceId="PolicyId" PartnerClaimType="{property:Policy}" DefaultValue="{Policy:PolicyId}" />
<InputClaim ClaimTypeReferenceId="CorrelationId" PartnerClaimType="{property:CorrelationId}" DefaultValue="{Context:CorrelationId}" />
<InputClaim ClaimTypeReferenceId="Culture" PartnerClaimType="{property:Culture}" DefaultValue="{Culture:RFC5646}" />
</InputClaims>
</TechnicalProfile>
<TechnicalProfile Id="AppInsights-SignInRequest">
<InputClaims>
<!-- An input claim with a PartnerClaimType="eventName" is required. This is used by the AzureApplicationInsightsProvider to create an event with the specified value. -->
<InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="SignInRequest" />
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
<TechnicalProfile Id="AppInsights-UserSignUp">
<InputClaims>
<InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="UserSignUp" />
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
<TechnicalProfile Id="AppInsights-SignInComplete">
<InputClaims>
<InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="SignInComplete" />
<InputClaim ClaimTypeReferenceId="federatedUser" PartnerClaimType="{property:FederatedUser}" DefaultValue="false" />
<InputClaim ClaimTypeReferenceId="parsedDomain" PartnerClaimType="{property:FederationPartner}" DefaultValue="Not Applicable" />
<InputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="{property:IDP}" DefaultValue="Local" />
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Important
Remplacez la chaîne de connexion dans le AppInsights-Common
profil technique par le GUID fourni par votre ressource Application Insights.
Ajouter les profils techniques en tant que étapes d’orchestration
Ajoutez de nouvelles étapes d’orchestration qui font référence aux profils techniques.
Important
Après avoir ajouté les nouvelles étapes d’orchestration, renumérotez les étapes dans l'ordre sans sauter aucun nombre entier de 1 à N.
Identifiez le fichier de stratégie qui contient votre parcours utilisateur, tel que
SocialAndLocalAccounts/SignUpOrSignin.xml
, puis ouvrez-le.Appelez
AppInsights-SignInRequest
comme deuxième étape d’orchestration. Cette étape effectue le suivi de la réception d’une demande d’inscription ou de connexion.<!-- Track that we have received a sign in request --> <OrchestrationStep Order="2" Type="ClaimsExchange"> <ClaimsExchanges> <ClaimsExchange Id="TrackSignInRequest" TechnicalProfileReferenceId="AppInsights-SignInRequest" /> </ClaimsExchanges> </OrchestrationStep>
Avant l’étape d’orchestration
SendClaims
, ajoutez une nouvelle étape qui appelleAppInsights-UserSignup
. Il est déclenché lorsque l’utilisateur sélectionne le bouton d’inscription dans un parcours d’inscription ou de connexion. Vous devrez peut-être mettre à jour l’étape d’orchestration,Order="8"
, afin de ne sauter aucun entier de la première à la dernière étape d’orchestration.<!-- Handles the user selecting the sign-up link in the local account sign-in page The `SendClaims` orchestration step comes after this one, --> <OrchestrationStep Order="8" Type="ClaimsExchange"> <Preconditions> <Precondition Type="ClaimsExist" ExecuteActionsIf="false"> <Value>newUser</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> <Precondition Type="ClaimEquals" ExecuteActionsIf="true"> <Value>newUser</Value> <Value>false</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> </Preconditions> <ClaimsExchanges> <ClaimsExchange Id="TrackUserSignUp" TechnicalProfileReferenceId="AppInsights-UserSignup" /> </ClaimsExchanges> </OrchestrationStep>
Après l’étape d’orchestration
SendClaims
, appelezAppInsights-SignInComplete
. Cette étape montre un parcours terminé avec succès. Vous devrez peut-être mettre à jour l’étape d’orchestration,Order="10"
pour vous assurer de ne manquer aucun entier de la première à la dernière étape d’orchestration.<!-- Track that we have successfully sent a token The `SendClaims` orchestration step come before this one, --> <OrchestrationStep Order="10" Type="ClaimsExchange"> <ClaimsExchanges> <ClaimsExchange Id="TrackSignInComplete" TechnicalProfileReferenceId="AppInsights-SignInComplete" /> </ClaimsExchanges> </OrchestrationStep>
Charger votre fichier, exécuter la stratégie et afficher les événements
Enregistrez et chargez le fichier TrustFrameworkExtensions.xml . Ensuite, appelez la stratégie de partie de confiance à partir de votre application ou utilisez l’option Exécuter maintenant dans le portail Azure. Attendez que vos événements soient disponibles dans Application Insights.
- Ouvrez la ressource Application Insights dans votre locataire Microsoft Entra.
- Sélectionnez Utilisation, puis sélectionnez Événements.
- Définissez Pendant sur Dernière heure et Par sur 3 minutes. Vous devrez peut-être actualiser la fenêtre pour afficher les résultats.
Collecter plus de données
Pour répondre aux besoins de votre entreprise, vous souhaiterez peut-être enregistrer davantage de revendications. Pour ajouter une revendication, commencez par définir une revendication, puis ajoutez la revendication à la collection de revendications d’entrée. Les revendications que vous ajoutez au profil technique AppInsights-Common apparaissent dans tous les événements. Les réclamations que vous ajoutez à un profil technique spécifique n'apparaissent que pour cet événement spécifique. L’élément de revendication d’entrée contient les attributs suivants :
- ClaimTypeReferenceId est la référence à un type de revendication.
-
PartnerClaimType est le nom de la propriété qui apparaît dans Azure Insights. Utilisez la syntaxe de
{property:NAME}
, oùNAME
est une propriété ajoutée à l’événement. -
DefaultValue est une valeur prédéfinie à enregistrer, telle qu’un nom d’événement. Si une revendication utilisée dans le parcours utilisateur est vide, la valeur par défaut est utilisée. Par exemple, la revendication
identityProvider
est définie par les profils techniques de fédération, tels que Facebook. Si la revendication est vide, elle indique que l’utilisateur s’est connecté avec un compte local. Par conséquent, la valeur par défaut est définie sur Local. Vous pouvez également enregistrer un programme de résolution de revendications avec une valeur contextuelle, telle que l’ID d’application ou l’adresse IP de l’utilisateur.
Manipuler des revendications
Vous pouvez utiliser des transformations de revendications d’entrée pour modifier les revendications d’entrée ou en générer de nouvelles avant de les envoyer à Application Insights. Dans l’exemple suivant, le profil technique inclut la transformation des revendications d’entrée CheckIsAdmin
.
<TechnicalProfile Id="AppInsights-SignInComplete">
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CheckIsAdmin" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="isAdmin" PartnerClaimType="{property:IsAdmin}" />
...
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
Ajouter des événements
Pour ajouter un événement, créez un profil technique qui inclut le AppInsights-Common
profil technique. Ajoutez ensuite le nouveau profil technique en tant qu’étape d’orchestration au parcours utilisateur. Utilisez l’élément Condition préalable pour déclencher l’événement lorsque vous êtes prêt. Par exemple, signalez l’événement uniquement lorsque les utilisateurs passent par une authentification multifacteur.
<TechnicalProfile Id="AppInsights-MFA-Completed">
<InputClaims>
<InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="MFA-Completed" />
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
Important
Lorsque vous ajoutez un événement au parcours utilisateur, n’oubliez pas de renuméroter les étapes d’orchestration de manière séquentielle.
<OrchestrationStep Order="8" Type="ClaimsExchange">
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>isActiveMFASession</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="TrackUserMfaCompleted" TechnicalProfileReferenceId="AppInsights-MFA-Completed" />
</ClaimsExchanges>
</OrchestrationStep>
Activer le mode développeur
Lorsque vous utilisez Application Insights pour définir des événements, vous pouvez indiquer si le mode développeur est activé. Le mode développeur contrôle la façon dont les événements sont mis en mémoire tampon. Dans un environnement de développement avec un volume d’événements minimal, l’activation du mode développeur entraîne l’envoi immédiat d’événements à Application Insights. La valeur par défaut est false
. N’activez pas le mode développeur dans les environnements de production.
Pour activer le mode développeur, modifiez les métadonnées DeveloperMode
en true
dans le profil technique AppInsights-Common
:
<TechnicalProfile Id="AppInsights-Common">
<Metadata>
...
<Item Key="DeveloperMode">true</Item>
</Metadata>
</TechnicalProfile>
Désactiver la télémétrie
Pour désactiver les journaux Application Insights, affectez la valeur DisableTelemetry
à true
dans les métadonnées du profil technique AppInsights-Common
:
<TechnicalProfile Id="AppInsights-Common">
<Metadata>
...
<Item Key="DisableTelemetry">true</Item>
</Metadata>
</TechnicalProfile>
Étapes suivantes
Découvrez comment créer des tableaux de bord DPI personnalisés à l’aide d’Azure Application Insights.