Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.
Bevor Sie beginnen, verwenden Sie die Auswahl eines Richtlinientyps oben auf dieser Seite, um den Typ der Richtlinie auszuwählen, die Sie einrichten. Azure Active Directory B2C bietet zwei Methoden zum Definieren der Benutzerinteraktion mit Ihren Anwendungen: vordefinierte Benutzerflows oder vollständig konfigurierbare benutzerdefinierte Richtlinien. Die Schritte, die in diesem Artikel erforderlich sind, unterscheiden sich für jede Methode.
Dieses Feature ist nur für benutzerdefinierte Richtlinien verfügbar. Wählen Sie für Setupschritte im vorherigen Selektor die Option "Benutzerdefinierte Richtlinie " aus.
In Azure Active Directory B2C (Azure AD B2C) können Sie Ereignisdaten direkt an Application Insights senden, indem Sie die für Azure AD B2C bereitgestellte Verbindungszeichenfolge verwenden. Mit einem technischen Profil von Application Insights erhalten Sie detaillierte und angepasste Ereignisprotokolle für Ihre Benutzerreisen:
- Gewinnen Sie Einblicke in das Benutzerverhalten.
- Beheben von Problemen mit eigenen Richtlinien in der Entwicklung oder in der Produktion.
- Messen sie die Leistung.
- Erstellen Sie Benachrichtigungen aus Application Insights.
Hinweis
Dieses Feature befindet sich in der öffentlichen Vorschau.
Überblick
Um benutzerdefinierte Ereignisprotokolle zu aktivieren, fügen Sie ein technisches Profil für Application Insights hinzu. Im technischen Profil definieren Sie die Application Insights-Verbindungszeichenfolge, den Ereignisnamen und die zu aufzeichnenden Ansprüche. Um ein Ereignis zu posten, fügen Sie das technische Profil als Orchestrierungsschritt in einer Benutzerreise hinzu.
Berücksichtigen Sie bei der Verwendung von Application Insights Folgendes:
- Es gibt eine kurze Verzögerung, in der Regel weniger als fünf Minuten, bevor neue Protokolle in Application Insights verfügbar sind.
- Mit Azure AD B2C können Sie auswählen, welche Ansprüche erfasst werden sollen. Schließen Sie keine Ansprüche mit personenbezogenen Daten ein.
- Zum Aufzeichnen einer Benutzersitzung können Sie eine Korrelations-ID verwenden, um Ereignisse zu vereinheitlichen.
- Rufen Sie das technische Profil von Application Insights direkt von einer Benutzerreise oder einer Unterreise auf. Verwenden Sie kein technisches Application Insights-Profil als technisches Validierungsprofil.
Voraussetzungen
- Führen Sie die Schritte in "Erste Schritte mit benutzerdefinierten Richtlinien in Active Directory B2C" aus. In diesem Lernprogramm erfahren Sie, wie Sie benutzerdefinierte Richtliniendateien für die Verwendung Ihrer Azure AD B2C-Mandantenkonfiguration aktualisieren.
- Wenn Sie keine Web-App registriert haben, registrieren Sie sie mithilfe der Schritte zum Registrieren einer Webanwendung.
Eine Application Insights Ressource erstellen
Wenn Sie Application Insights mit Azure AD B2C verwenden, müssen Sie lediglich eine Ressource erstellen und die Verbindungszeichenfolge abrufen. Weitere Informationen finden Sie unter Erstellen einer Application Insights-Ressource.
- Melden Sie sich beim Azure-Portal an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie im oberen Menü das Symbol "Einstellungen " aus, um im Menü "Verzeichnisse + Abonnements " zu Ihrem Microsoft Entra ID-Mandanten zu wechseln.
- Wählen Sie " Ressource erstellen" in der oberen linken Ecke des Azure-Portals aus, und suchen Sie dann nach "Application Insights", und wählen Sie dann "Application Insights" aus.
- Wählen Sie "Erstellen" aus.
- Geben Sie unter "Name" einen Namen für die Ressource ein.
- Wählen Sie für den AnwendungstypASP.NET Webanwendung aus.
- Wählen Sie für "Ressourcengruppe" eine vorhandene Gruppe aus, oder geben Sie einen Namen für eine neue Gruppe ein.
- Wählen Sie "Erstellen" aus.
- Öffnen Sie die neue Application Insights-Ressource, erweitern Sie Essentials, und kopieren Sie die Verbindungszeichenfolge.
Definieren von Ansprüchen
Ein Anspruch bietet eine temporäre Speicherung von Daten während der Ausführung einer Azure AD B2C-Richtlinie. Sie deklarieren Ihre Ansprüche im ClaimsSchema-Element.
Öffnen Sie die Erweiterungsdatei Ihrer Richtlinie. Die Datei sieht möglicherweise ähnlich aus wie
SocialAndLocalAccounts/TrustFrameworkExtensions.xml.Suchen Sie nach dem BuildingBlocks-Element . Wenn das Element nicht angezeigt wird, fügen Sie es hinzu.
Suchen Sie das ClaimsSchema-Element . Wenn das Element nicht angezeigt wird, fügen Sie es hinzu.
Fügen Sie dem ClaimsSchema-Element die folgenden Ansprüche hinzu:
<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>
Hinzufügen neuer technischer Profile
Technische Profile können in der benutzerdefinierten Richtlinie als Funktionen betrachtet werden. Diese Funktionen verwenden den Technischen Profileinschlussansatz , bei dem ein technisches Profil ein weiteres technisches Profil enthält und Einstellungen ändert oder neue Funktionen hinzufügt. In der folgenden Tabelle sind die technischen Profile definiert, die zum Öffnen einer Sitzung und zum Posten von Ereignissen verwendet werden.
| Technisches Profil | Aufgabe |
|---|---|
| AppInsights-Common | Das allgemeine technische Profil mit typischer Konfiguration. Sie enthält die Application Insights-Verbindungszeichenfolge, eine Sammlung von Ansprüchen zum Aufzeichnen und den Entwicklermodus. Die anderen technischen Profile enthalten das allgemeine technische Profil und fügen weitere Ansprüche hinzu, z. B. den Ereignisnamen. |
| AppInsights-SignInRequest | Zeichnet ein SignInRequest-Ereignis mit einer Gruppe von Ansprüchen auf, wenn eine Anmeldeanforderung empfangen wurde. |
| AppInsights-UserSignUp | Zeichnet ein UserSignUp-Ereignis auf, wenn der Benutzer die Registrierungsoption in einem Registrierungs- oder Anmeldevorgang auslöst. |
| AppInsights-SignInComplete | Zeichnet bei erfolgreicher Authentifizierung ein SignInComplete-Ereignis auf, wenn ein Token an die Anwendung der vertrauenden Seite gesendet wurde. |
Öffnen Sie die TrustFrameworkExtensions.xml Datei aus dem Startpaket. Fügen Sie dem ClaimsProvider-Element die technischen Profile hinzu:
<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>
Von Bedeutung
Ändern Sie die Verbindungszeichenfolge im AppInsights-Common technischen Profil in die GUID, die Ihre Application Insights-Ressource bereitstellt.
Hinzufügen der technischen Profile als Orchestrierungsschritte
Fügen Sie neue Orchestrierungsschritte hinzu, die sich auf die technischen Profile beziehen.
Von Bedeutung
Nachdem Sie die neuen Orchestrierungsschritte hinzugefügt haben, berechnen Sie die Schritte sequenziell neu, ohne ganze Zahlen zwischen 1 und N zu überspringen.
Identifizieren Sie die Richtliniendatei, die Ihre User Journey enthält, wie z. B.
SocialAndLocalAccounts/SignUpOrSignin.xml, und öffnen Sie sie.Rufen Sie
AppInsights-SignInRequestals zweiten Orchestrierungsschritt auf. In diesem Schritt wird nachverfolgt, dass eine Registrierungs- oder Anmeldeanforderung empfangen wurde.<!-- Track that we have received a sign in request --> <OrchestrationStep Order="2" Type="ClaimsExchange"> <ClaimsExchanges> <ClaimsExchange Id="TrackSignInRequest" TechnicalProfileReferenceId="AppInsights-SignInRequest" /> </ClaimsExchanges> </OrchestrationStep>Fügen Sie vor dem Orchestrierungsschritt
SendClaimseinen neuen Schritt hinzu, derAppInsights-UserSignupaufruft. Er wird ausgelöst, wenn der Benutzer den Registrierungs-Button in einem Registrierungs- oder Anmeldeprozess auswählt. Möglicherweise müssen Sie den Orchestrierungsschritt aktualisieren, um sicherzustellen,Order="8"dass Sie keine ganze Zahl vom ersten bis zum letzten Orchestrierungsschritt überspringen.<!-- 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>Rufen Sie nach dem Orchestrierungsschritt
SendClaimsden SchrittAppInsights-SignInCompleteauf. Dieser Schritt zeigt eine erfolgreich abgeschlossene Reise. Möglicherweise müssen Sie den Orchestrierungsschritt aktualisieren, um sicherzustellen,Order="10"dass Sie keine ganze Zahl vom ersten bis zum letzten Orchestrierungsschritt überspringen.<!-- 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>
Laden Sie Ihre Datei hoch, führen Sie die Richtlinie aus und sehen Sie sich die Ereignisse an.
Speichern und hochladen Sie die TrustFrameworkExtensions.xml Datei. Rufen Sie dann die Richtlinie der vertrauenden Seite aus Ihrer Anwendung auf, oder verwenden Sie "Jetzt ausführen" im Azure-Portal. Warten Sie, bis Ihre Ereignisse in Application Insights verfügbar sind.
- Öffnen Sie die Application Insights-Ressource in Ihrem Microsoft Entra-Mandanten.
- Wählen Sie "Verwendung" und dann "Ereignisse" aus.
- Legen Sie Während auf letzte Stunde und Für auf 3 Minuten fest. Möglicherweise müssen Sie das Fenster aktualisieren, um die Ergebnisse anzuzeigen.
Sammeln weiterer Daten
Um Ihren geschäftlichen Anforderungen gerecht zu werden, möchten Sie möglicherweise weitere Ansprüche aufzeichnen. Um einen Anspruch hinzuzufügen, definieren Sie zuerst einen Anspruch, und fügen Sie dann den Anspruch der Eingabeanspruchsauflistung hinzu. Ansprüche, die Sie dem technischen AppInsights-Common-Profil hinzufügen, werden in allen Ereignissen angezeigt. Ansprüche, die Sie einem bestimmten technischen Profil hinzufügen, werden nur in diesem Kontext angezeigt. Das Eingabeanspruchselement enthält die folgenden Attribute:
- ClaimTypeReferenceId ist der Verweis auf einen Anspruchstyp.
-
PartnerClaimType ist der Name der Eigenschaft, die in Azure Insights angezeigt wird. Verwenden Sie die Syntax von
{property:NAME}, wobeiNAMEes sich um eine Eigenschaft handelt, die dem Ereignis hinzugefügt wird. -
DefaultValue ist ein vordefinierter Wert, der aufgezeichnet werden soll, z. B. ein Ereignisname. Wenn ein Anspruch, der in der Benutzerreise verwendet wird, leer ist, wird der Standardwert verwendet. Beispielsweise wird der Anspruch
identityProviderdurch die technischen Profile des Verbunds festgelegt, z. B. Facebook. Wenn der Anspruch leer ist, gibt er an, dass der Benutzer mit einem lokalen Konto angemeldet ist. Daher wird der Standardwert auf "Lokal" festgelegt. Sie können auch einen Anspruchslöser mit einem Kontextwert aufzeichnen, z. B. die Anwendungs-ID oder die Benutzer-IP-Adresse.
Manipulieren von Ansprüchen
Sie können Eingabeansprüchetransformationen verwenden, um die Eingabeansprüche zu ändern oder neue zu generieren, bevor Sie sie an Application Insights senden. Im folgenden Beispiel umfasst das technische Profil die CheckIsAdmin Transformation der Eingabeansprüche.
<TechnicalProfile Id="AppInsights-SignInComplete">
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CheckIsAdmin" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="isAdmin" PartnerClaimType="{property:IsAdmin}" />
...
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
Hinzufügen von Ereignissen
Um ein Ereignis hinzuzufügen, erstellen Sie ein neues technisches Profil, das das AppInsights-Common technische Profil enthält. Fügen Sie dann das neue technische Profil als Orchestrierungsschritt zur Benutzerreise hinzu. Verwenden Sie das Vorbedingungselement , um das Ereignis auszulösen, wenn Sie bereit sind. Melden Sie das Ereignis beispielsweise nur, wenn Benutzer die mehrstufige Authentifizierung durchlaufen.
<TechnicalProfile Id="AppInsights-MFA-Completed">
<InputClaims>
<InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="MFA-Completed" />
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
Von Bedeutung
Wenn Sie der Benutzerreise ein Ereignis hinzufügen, denken Sie daran, die Orchestrierungsschritte sequenziell neu zu berechnen.
<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>
Aktivieren des Entwicklermodus
Wenn Sie Application Insights zum Definieren von Ereignissen verwenden, können Sie angeben, ob der Entwicklermodus aktiviert ist. Der Entwicklermodus steuert, wie Ereignisse gepuffert werden. In einer Entwicklungsumgebung mit minimalem Ereignisvolumen führt die Aktivierung des Entwicklermodus dazu, dass Ereignisse sofort an Application Insights gesendet werden. Der Standardwert ist false. Aktivieren Sie den Entwicklermodus in Produktionsumgebungen nicht.
Um den Entwicklermodus zu aktivieren, ändern Sie die DeveloperMode Metadaten in true im AppInsights-Common technischen Profil.
<TechnicalProfile Id="AppInsights-Common">
<Metadata>
...
<Item Key="DeveloperMode">true</Item>
</Metadata>
</TechnicalProfile>
Telemetrie deaktivieren
Um die Application Insights-Protokolle zu deaktivieren, ändern Sie im technischen DisableTelemetry-Profil die true-Metadaten in AppInsights-Common:
<TechnicalProfile Id="AppInsights-Common">
<Metadata>
...
<Item Key="DisableTelemetry">true</Item>
</Metadata>
</TechnicalProfile>
Nächste Schritte
Erfahren Sie, wie Sie benutzerdefinierte KPI-Dashboards mit Azure Application Insights erstellen.