Azure Active Directory B2C: BenutzermigrationAzure Active Directory B2C: User migration

Beim Migrieren Ihres Identitätsanbieters zu Azure Active Directory B2C (Azure AD B2C) müssen Sie unter Umständen auch die Benutzerkonten migrieren.When you migrate your identity provider to Azure Active Directory B2C (Azure AD B2C), you might also need to migrate the user accounts. In diesem Artikel wird erläutert, wie vorhandene Benutzerkonten von einem beliebigen Identitätsanbieter zu Azure AD B2C migriert werden.This article explains how to migrate existing user accounts from any identity provider to Azure AD B2C. Der Artikel enthält keine verbindliche Anleitung, sondern beschreibt lediglich einige Szenarien.The article is not meant to be prescriptive, but rather, it describes a few scenarios. Der Entwickler ist jeweils dafür verantwortlich, dass ein Ansatz geeignet ist.The developer is responsible for the suitability of each approach.

BenutzermigrationsmethodenUser migration flows

Mit Azure AD B2C können Sie Benutzer über die Azure AD Graph-API migrieren.With Azure AD B2C, you can migrate users through the Azure AD Graph API. Für den Benutzermigrationsprozess stehen zwei Methoden zur Verfügung:The user migration process falls into two flows:

  • Prämigration: Diese Methode trifft zu, wenn Sie entweder eindeutigen Zugriff auf die Anmeldeinformationen eines Benutzers haben (Benutzername und Kennwort) oder wenn die Anmeldeinformationen verschlüsselt sind und von Ihnen entschlüsselt werden können.Pre-migration: This flow applies when you either have clear access to a user's credentials (user name and password) or the credentials are encrypted, but you can decrypt them. Der Prozess der Prämigration umfasst das Lesen der Benutzer im alten Identitätsanbieter und das Erstellen neuer Konten im Azure AD B2C-Verzeichnis.The pre-migration process involves reading the users from the old identity provider and creating new accounts in the Azure AD B2C directory.

  • Prämigration und Kennwortzurücksetzung: Diese Methode ist geeignet, wenn auf das Kennwort eines Benutzers nicht zugegriffen werden kann.Pre-migration and password reset: This flow applies when a user's password is not accessible. Beispiel:For example:

    • Das Kennwort wird im HASH-Format gespeichert.The password is stored in HASH format.
    • Das Kennwort wird in einem Identitätsanbieter gespeichert, auf den Sie nicht zugreifen können.The password is stored in an identity provider that you can't access. Der alte Identitätsanbieter überprüft die Benutzeranmeldeinformationen durch das Aufrufen eines Webdiensts.Your old identity provider validates the user credential by calling a web service.

Bei beiden Methoden führen Sie zunächst den Prozess für die Prämigration aus: Sie lesen die Benutzer im alten Identitätsanbieter und erstellen neue Konten im Azure AD B2C-Verzeichnis.In both flows, you first run the pre-migration process, read the users from your old identity provider, and create new accounts in the Azure AD B2C directory. Wenn Sie nicht über das Kennwort verfügen, erstellen Sie das Konto mit einem zufällig generierten Kennwort.If you don't have the password, you create the account by using a password that's generated randomly. Anschließend fordern Sie den Benutzer auf, das Kennwort zu ändern. Wenn sich der Benutzer zum ersten Mal anmeldet, wird der Benutzer von Azure AD B2C zum Zurücksetzen aufgefordert.You then ask the user to change the password or, when the user signs in for the first time, Azure AD B2C asks the user to reset it.

KennwortrichtliniePassword policy

Die Kennwortrichtlinie von Azure AD B2C (für lokale Konten) basiert auf der Azure AD-Kennwortrichtlinie.The Azure AD B2C password policy (for local accounts) is based on Azure AD policy. Die Azure AD B2C-Richtlinien zur Registrierung, Anmeldung und Kennwortzurücksetzung verwenden sichere Kennwörter, und die Kennwörter laufen nicht ab.The Azure AD B2C sign-up or sign-in and password reset policies use the "strong" password strength and don't expire any passwords. Weitere Informationen finden Sie unter Kennwortrichtlinie in Azure AD.For more information, see Azure AD password policy.

Wenn die Konten, die Sie migrieren möchten, über eine geringere Kennwortsicherheit als die hohe Kennwortsicherheit unter Azure AD B2C verfügen, können Sie die Erzwingung sicherer Kennwörter deaktivieren.If the accounts that you want to migrate use a weaker password strength than the strong password strength enforced by Azure AD B2C, you can disable the strong password requirement. Legen Sie zum Ändern der standardmäßigen Kennwortrichtlinie die Eigenschaft passwordPolicies auf DisableStrongPassword fest.To change the default password policy, set the passwordPolicies property to DisableStrongPassword. Beispielsweise können Sie die Anforderung zum Erstellen eines Benutzers wie folgt ändern:For example, you can modify the create user request as follows:

"passwordPolicies": "DisablePasswordExpiration, DisableStrongPassword"

Schritt 1: Migrieren von Benutzern mithilfe der Azure AD Graph-APIStep 1: Use Azure AD Graph API to migrate users

Sie erstellen das Azure AD B2C-Benutzerkonto mithilfe der Graph-API (mit dem bekannten oder einem zufällig generierten Kennwort).You create the Azure AD B2C user account via Graph API (with the password or with a random password). In diesem Abschnitt wird die Vorgehensweise zum Erstellen von Benutzerkonten im Azure AD B2C-Verzeichnis mit der Graph-API beschrieben.This section describes the process of creating user accounts in the Azure AD B2C directory by using Graph API.

Schritt 1.1: Registrieren Ihrer Anwendung in Ihrem MandantenStep 1.1: Register your application in your tenant

Um mit der Graph-API zu kommunizieren, benötigen Sie zuerst ein Dienstkonto mit Administratorberechtigungen.To communicate with the Graph API, you first must have a service account with administrative privileges. In Azure AD registrieren Sie eine Anwendung und aktivieren Schreibzugriff auf das Verzeichnis.In Azure AD, you register an application and enable write access to the directory. Die Anwendungsanmeldeinformationen bestehen aus der Anwendungs-ID und dem Anwendungsgeheimnis.The application credentials are the Application ID and Application Secret. Die Anwendung verhält sich beim Aufrufen der Graph-API wie sie selbst und nicht wie ein Benutzer.The application acts as itself, not as a user, to call the Graph API.

Registrieren Sie zunächst eine Anwendung, die Sie für Verwaltungsaufgaben wie die Benutzermigration verwenden können.First, register an application that you can use for management tasks like user migration.

Zum Registrieren einer Anwendung in Ihrem Azure AD B2C-Mandanten können Sie die aktuelle Benutzeroberfläche für Anwendungen oder unsere neue einheitliche Benutzeroberfläche App-Registrierungen (Vorschau) verwenden.To register an application in your Azure AD B2C tenant, you can use the current Applications experience, or our new unified App registrations (Preview) experience. Weitere Informationen zu der neuen Oberfläche finden Sie hier.Learn more about the new experience.

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.
  2. Wählen Sie im oberen Menü den Filter Verzeichnis und Abonnement aus, und wählen Sie dann das Verzeichnis aus, das Ihren Azure AD B2C-Mandanten enthält.Select the Directory + subscription filter in the top menu, and then select the directory that contains your Azure AD B2C tenant.
  3. Wählen Sie im linken Menü die Option Azure Active Directory (nicht „Azure AD B2C“) aus.In the left menu, select Azure Active Directory (not Azure AD B2C). Oder wählen Sie Alle Dienste aus, suchen Sie nach Azure Active Directory, und wählen Sie dann diese Option aus.Or, select All services and then search for and select Azure Active Directory.
  4. Wählen Sie unter Verwalten die Option App-Registrierungen (Legacy) aus.Under Manage, select App registrations (Legacy).
  5. Wählen Sie Registrierung einer neuen Anwendung aus.Select New application registration.
  6. Geben Sie einen Namen für die Anwendung ein.Enter a name for the application. Zum Beispiel managementapp1.For example, managementapp1.
  7. Wählen Sie für Anwendungstyp die Option Web-App/API aus.For Application type, select Web app / API.
  8. Geben Sie im Feld Anmelde-URL eine gültige URL ein.Enter any valid URL in Sign-on URL. Beispiel: https://localhost.For example, https://localhost. Der Endpunkt muss nicht erreichbar sein, aber es muss sich dabei um eine gültige URL handeln.The endpoint doesn't need to be reachable, but must be a valid URL.
  9. Klicken Sie auf Erstellen.Select Create.
  10. Notieren Sie sich die Anwendungs-ID, die auf der Übersichtsseite Registrierte App angezeigt wird.Record the Application ID that appears on the Registered app overview page. Sie verwenden diesen Wert in einem späteren Schritt.You use this value in a later step.

Schritt 1.2: Gewähren von Administratorberechtigungen für die AnwendungStep 1.2: Grant administrative permission to your application

Gewähren Sie der Anwendung als Nächstes die Berechtigungen für die Azure AD-Graph-API, die zum Schreiben in das Verzeichnis erforderlich sind.Next, grant the application the Azure AD Graph API permissions required for writing to the directory.

  1. Wählen Sie auf der Übersichtsseite Registrierte App die Option Einstellungen aus.On the Registered app overview page, select Settings.
  2. Wählen Sie unter API-ZUGRIFF die Option Erforderliche Berechtigungen aus.Under API ACCESS, select Required permissions.
  3. Wählen Sie die Option Windows Azure Active Directory.Select Windows Azure Active Directory.
  4. Wählen Sie unter ANWENDUNGSBERECHTIGUNGEN die Option Verzeichnisdaten lesen und schreiben aus.Under APPLICATION PERMISSIONS, select Read and write directory data.
  5. Wählen Sie Speichern aus.Select Save.
  6. Wählen Sie Berechtigungen erteilen und dann Ja aus.Select Grant permissions, and then select Yes. Es kann einige Minuten dauern, bis die Berechtigungen vollständig verteilt sind.It might take a few minutes to for the permissions to fully propagate.

Schritt 1.3: Erstellen des AnwendungsgeheimnissesStep 1.3: Create the application secret

Erstellen Sie einen geheimen Clientschlüssel (Geheimnis) für die Verwendung durch die Anwendung zur Benutzermigration, die Sie in einem späteren Schritt konfigurieren.Create a client secret (key) for use by the user migration application that you configure in a later step.

  1. Wählen Sie unter API-ZUGRIFF die Option Schlüssel aus.Under API ACCESS, select Keys.
  2. Geben Sie im Feld Schlüsselbeschreibung eine Beschreibung für den Schlüssel ein.Enter a description for the key in the Key description box. Beispielsweise clientsecret1.For example, clientsecret1.
  3. Wählen Sie eine Gültigkeitsdauer aus, und wählen Sie dann Speichern aus.Select a validity Duration and then select Save.
  4. Notieren Sie sich den WERT des Schlüssels.Record the key's VALUE. Dieser Wert wird in einem späteren Schritt für die Konfiguration verwendet.You use this value for configuration in a later step.

Sie verfügen jetzt über eine Anwendung mit Berechtigungen zum Erstellen, Lesen und Aktualisieren von Benutzern in Ihrem Azure AD B2C-Mandanten.Now you have an application with permissions to create, read, and update users in your Azure AD B2C tenant.

Schritt 1.4: Bereinigen der Umgebung (optional)Step 1.4: (Optional) Environment cleanup

Die Berechtigung Lese- und Schreibzugriff auf Verzeichnisdaten schließt nicht die Berechtigung ein, Benutzer zu löschen.The Read and write directory data permission does not include the right to delete users. Damit Ihre Anwendung die Möglichkeit zum Löschen von Benutzern erhält (zum Bereinigen Ihrer Umgebung), müssen Sie einen zusätzlichen Schritt ausführen. Dies umfasst auch die Ausführung von PowerShell zum Festlegen von Benutzerkonto-Administratorberechtigungen.To give your application the ability to delete users (to clean up your environment), you must perform an extra step, which involves running PowerShell to set User Account Administrator permissions. Andernfalls können Sie mit dem nächsten Abschnitt fortfahren.Otherwise, you can skip to the next section.

Wichtig

Sie müssen ein B2C-Mandantenadministratorkonto verwenden, das für den B2C-Mandanten lokal angeordnet ist.You must use a B2C tenant administrator account that is local to the B2C tenant. Die Syntax für den Kontonamen lautet: admin@contosob2c.onmicrosoft.com.The account name syntax is admin@contosob2c.onmicrosoft.com.

In diesem PowerShell-Skript, für das das Azure AD PowerShell V2-Modul benötigt wird, gehen Sie folgendermaßen vor:In this PowerShell script, which requires the Azure AD PowerShell V2 module, do the following:

  1. Sie stellen eine Verbindung mit dem Onlinedienst her.Connect to your online service. Führen Sie hierzu an der Windows PowerShell-Eingabeaufforderung das Connect-AzureAD-Cmdlet aus, und geben Sie Ihre Anmeldeinformationen an.To do so, run the Connect-AzureAD cmdlet at the Windows PowerShell command prompt, and provide your credentials.

  2. Weisen Sie mithilfe der Anwendungs-ID der Anwendung die Rolle „Benutzerkontoadministrator“ zu.Use the Application ID to assign the application the user account administrator role. Da diese Rollen allgemein bekannte Bezeichner haben, müssen Sie lediglich Ihre Anwendungs-ID in das Skript eingeben.These roles have well-known identifiers, so all you need to do is enter your Application ID in the script.

# NOTE: This script REQUIRES the Azure AD PowerShell V2 module
#       https://docs.microsoft.com/powershell/azure/active-directory/install-adv2

Connect-AzureAD

$AppId = "<Your application ID>"

# Fetch Azure AD application to assign to role
$roleMember = Get-AzureADServicePrincipal -Filter "AppId eq '$AppId'"

# Fetch User Account Administrator role instance
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq 'User Account Administrator'}

# If role instance does not exist, instantiate it based on the role template
if ($role -eq $null) {
    # Instantiate an instance of the role template
    $roleTemplate = Get-AzureADDirectoryRoleTemplate | Where-Object {$_.displayName -eq 'User Account Administrator'}
    Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId

    # Fetch User Account Administrator role instance again
    $role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq 'User Account Administrator'}
}

# Add application to role
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId $roleMember.ObjectId

# Fetch role membership for role to confirm
Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId

Ersetzen Sie den Wert $AppId durch Ihre Anwendungs-ID in Azure AD.Change the $AppId value with your Azure AD Application ID.

Schritt 2: Anwendungsbeispiel für die PrämigrationStep 2: Pre-migration application sample

Das Codebeispiel für die Prämigration finden Sie in dem von der Community verwalteten GitHub-Repository azure-ad-b2c/user-migration:You can find the pre-migration code sample in the community-maintained azure-ad-b2c/user-migration GitHub repository:

azure-ad-b2c/user-migration/pre-migration (GitHub)azure-ad-b2c/user-migration/pre-migration (GitHub)

Schritt 2.1: Bearbeiten der MigrationsdatendateiStep 2.1: Edit the migration data file

Die Beispiel-App verwendet eine JSON-Datei mit Dummybenutzerdaten.The sample app uses a JSON file that contains dummy user data. Nach der erfolgreichen Ausführung des Beispiels können Sie den Code ändern, um die Daten aus Ihrer eigenen Datenbank zu nutzen.After you successfully run the sample, you can change the code to consume the data from your own database. Oder Sie können das Benutzerprofil in eine JSON-Datei exportieren und die App dann so festlegen, dass diese Datei verwendet wird.Or you can export the user profile to a JSON file, and then set the app to use that file.

Öffnen Sie zum Bearbeiten der JSON-Datei die Visual Studio-Projektmappe AADB2C.UserMigration.sln.To edit the JSON file, open the AADB2C.UserMigration.sln Visual Studio solution. Öffnen Sie im Projekt AADB2C.UserMigration die Datei UsersData.json.In the AADB2C.UserMigration project, open the UsersData.json file.

Teil der Datei „UsersData.json“ mit JSON-Blöcken von zwei Benutzern

Wie Sie sehen, enthält die Datei eine Liste mit den Benutzerentitäten.As you can see, the file contains a list of user entities. Jede Benutzerentität weist die folgenden Eigenschaften auf:Each user entity has the following properties:

  • emailemail
  • displayNamedisplayName
  • firstNamefirstName
  • lastNamelastName
  • password (kann leer sein)password (can be empty)

Hinweis

Zur Kompilierzeit kopiert Visual Studio die Datei in das Verzeichnis bin.At compile time, Visual Studio copies the file to the bin directory.

Schritt 2.2: Konfigurieren der AnwendungseinstellungenStep 2.2: Configure the application settings

Öffnen Sie unter dem Projekt AADB2C.UserMigration die Datei App.config.Under the AADB2C.UserMigration project, open the App.config file. Ersetzen Sie die folgenden App-Einstellungen durch Ihre eigenen Werte:Replace the following app settings with your own values:

<appSettings>
    <add key="b2c:Tenant" value="{Your Tenant Name}" />
    <add key="b2c:ClientId" value="{The ApplicationID from above}" />
    <add key="b2c:ClientSecret" value="{The Client Secret Key from above}" />
    <add key="MigrationFile" value="{Name of a JSON file containing the users' data; for example, UsersData.json}" />
    <add key="BlobStorageConnectionString" value="{Your connection Azure table string}" />
</appSettings>

Hinweis

  • Die Verwendung der Azure-Tabellenverbindungszeichenfolge wird in den nächsten Abschnitten beschrieben.The use of an Azure table connection string is described in the next sections.
  • Der Name des B2C-Mandanten ist die Domäne, die Sie bei der Erstellung des Mandanten eingegeben haben, und wird im Azure-Portal angezeigt.Your B2C tenant name is the domain that you entered during tenant creation, and it is displayed in the Azure portal. Der Mandantenname endet normalerweise auf das Suffix .onmicrosoft.com (z.B. contosob2c.onmicrosoft.com).The tenant name usually ends with the suffix .onmicrosoft.com (for example, contosob2c.onmicrosoft.com).

Schritt 2.3: Ausführen des PrämigrationsprozessesStep 2.3: Run the pre-migration process

Klicken Sie mit der rechten Maustaste auf die Projektmappe AADB2C.UserMigration, und erstellen Sie das Beispiel dann neu.Right-click the AADB2C.UserMigration solution, and then rebuild the sample. War der Vorgang erfolgreich, sollte sich nun die ausführbare Datei UserMigration.exe unter AADB2C.UserMigration\bin\Debug\net461 befinden.If you are successful, you should now have a UserMigration.exe executable file located in AADB2C.UserMigration\bin\Debug\net461. Verwenden Sie zum Ausführen des Migrationsprozesses einen der folgenden Befehlszeilenparameter:To run the migration process, use one of the following command-line parameters:

  • Um Benutzer mit Kennwort zu migrieren, verwenden Sie den Befehl UserMigration.exe 1.To migrate users with password, use the UserMigration.exe 1 command.

  • Um Benutzer mit zufälligem Kennwort zu migrieren, verwenden Sie den Befehl UserMigration.exe 2.To migrate users with random password, use the UserMigration.exe 2 command. Bei diesem Vorgang wird zudem eine Azure-Tabellenentität erstellt.This operation also creates an Azure table entity. Später konfigurieren Sie die Richtlinie zum Aufrufen des REST-API-Diensts.Later, you configure the policy to call the REST API service. Der Dienst nutzt eine Azure-Tabelle zum Nachverfolgen und Verwalten des Migrationsprozesses.The service uses an Azure table to track and manage the migration process.

Eingabeaufforderungsfenster mit Ausgabe des Befehls „UserMigration.exe“

Schritt 2.4: Überprüfen des PrämigrationsprozessesStep 2.4: Check the pre-migration process

Verwenden Sie zum Überprüfen der Migration eine der beiden folgenden Methoden:To validate the migration, use one of the following two methods:

  • Verwenden Sie das Azure-Portal, um anhand des Anzeigenamens nach einem Benutzer zu suchen:To search for a user by display name, use the Azure portal:

    1. Öffnen Sie Azure AD B2C, und wählen Sie die Option Benutzer aus.Open Azure AD B2C, and then select Users.
    2. Geben Sie in das Suchfeld den Anzeigenamen des Benutzers ein, und zeigen Sie dann das Profil des Benutzers an.In the search box, type the user's display name, and then view the user's profile.
  • Verwenden Sie diese Beispielanwendung, um einen Benutzer anhand der E-Mail-Adresse für die Anmeldung abzurufen:To retrieve a user by sign-in email address, use the sample application:

    1. Führen Sie den folgenden Befehl aus:Run the following command:

          UserMigration.exe 3 {email address} > UserProfile.json
      

      Tipp

      Sie können einen Benutzer anhand des Anzeigenamens abrufen, indem Sie den folgenden Befehl verwenden: UserMigration.exe 4 "<Display name>".You can also retrieve a user by display name by using the following command: UserMigration.exe 4 "<Display name>".

    2. Öffnen Sie die Datei „UserProfile.json“ in einem JSON-Editor, um die Informationen des Benutzers anzuzeigen.Open the UserProfile.json file in a JSON editor to see user's information.

      Datei „UserProfile.json“ im Visual Studio Code-Editor geöffnet

Schritt 2.5: Bereinigen der Umgebung (optional)Step 2.5: (Optional) Environment cleanup

Wenn Sie den Azure AD-Mandanten bereinigen und die Benutzer aus dem Azure AD-Verzeichnis entfernen möchten, führen Sie den Befehl UserMigration.exe 5 aus.If you want to clean up your Azure AD tenant and remove users from the Azure AD directory, run the UserMigration.exe 5 command.

Hinweis

  • Konfigurieren Sie zum Bereinigen des Mandanten Benutzerkontoadministrator-Berechtigungen für Ihre Anwendung.To clean up your tenant, configure User Account Administrator permissions for your application.
  • Die Beispielmigrations-App bereinigt alle in der JSON-Datei aufgelisteten Benutzer.The sample migration app cleans up all users who are listed in the JSON file.

Schritt 2.6: Anmelden mit migrierten Benutzern (mit Kennwort)Step 2.6: Sign in with migrated users (with password)

Nach dem Ausführen des Prämigrationsprozesses mit Benutzerkennwörtern können die Konten verwendet werden, und Benutzer können sich mit Azure AD B2C an Ihrer Anwendung anmelden.After you run the pre-migration process with user passwords, the accounts are ready to use, and users can sign in to your application by using Azure AD B2C. Wenn Sie keinen Zugriff auf die Benutzerkennwörter haben, können Sie mit dem nächsten Abschnitt fortfahren.If you don't have access to user passwords, continue to the next section.

Schritt 3: Unterstützen von Benutzern beim Zurücksetzen ihrer KennwörterStep 3: Help users reset their password

Wenn Sie Benutzer mit einem zufällig generierten Kennwort migrieren, müssen diese ihr Kennwort zurücksetzen.If you migrate users with a random password, they must reset their password. Senden Sie ihnen als Hilfe zum Zurücksetzen des Kennworts eine Begrüßungs-E-Mail mit einem Link, über den das Kennwort zurückgesetzt werden kann.To help them reset the password, send a welcome email with a link to reset the password.

Führen Sie die folgenden Schritte aus, um den Link zu Ihrer Richtlinie für die Kennwortzurücksetzung abzurufen.To get the link to your password reset policy, follow these steps. Bei diesem Verfahren wird vorausgesetzt, dass Sie zuvor eine benutzerdefinierte Richtlinie für die Kennwortzurücksetzung erstellt haben.This procedure assumes you've previously created a password reset custom policy.

  1. Wählen Sie das Verzeichnis aus, das Ihren Azure AD B2C-Mandanten enthält, indem Sie den Filter Verzeichnis + Abonnement im oberen rechten Abschnitt des Azure-Portals verwenden.Select the directory containing your Azure AD B2C tenant by using the Directory + subscription filter in the upper-right section of the Azure portal.

  2. Wählen Sie im Menü links (oder über Alle Dienste) Azure AD B2C aus.Select Azure AD B2C in the left-hand menu (or from within All services).

  3. Wählen Sie unter Richtlinien die Option Identity Experience Framework aus.Under Policies, select Identity Experience Framework.

  4. Wählen Sie Ihre Richtlinien für die Kennwortzurücksetzung aus,Select your password reset policy. beispielsweise B2C_1A_PasswordReset.For example, B2C_1A_PasswordReset.

  5. Wählen Sie im Dropdown Anwendung auswählen Ihre Anwendung aus.Select your application in the Select application drop-down.

    Hinweis

    Für Jetzt ausführen ist es erforderlich, dass vorab mindestens eine Anwendung für den Mandanten registriert wird.Run now requires at least one application to be registered in your tenant. Informationen zum Registrieren von Anwendungen finden Sie hier: Tutorial: Registrieren einer Anwendung in Azure Active Directory B2C.To learn how to register applications, see Tutorial: Register an application in Azure Active Directory B2C.

  6. Kopieren Sie die im Textfeld Endpunkt für sofortige Ausführung angezeigte URL, und senden Sie sie anschließend an Ihre Benutzer.Copy the URL shown in the Run now endpoint text box, and then send it to your users.

    Seite „Richtlinie für die Kennwortzurücksetzung“ mit „Endpunkt für sofortige Ausführung“ hervorgehoben

Schritt 4: Ändern der Richtlinie zum Überprüfen und Festlegen des Benutzermigrationsstatus (optional)Step 4: (Optional) Change your policy to check and set the user migration status

Hinweis

Sie müssen eine benutzerdefinierte Richtlinie verwenden, um den Benutzermigrationsstatus zu überprüfen und zu ändern.To check and change the user migration status, you must use a custom policy. Dazu müssen die unter Erste Schritte mit benutzerdefinierten Richtlinien aufgeführten Setupanweisungen befolgt werden.The set-up instructions from Get started with custom policies must be completed.

Wenn sich Benutzer anmelden, ohne zuerst das Kennwort zu ändern, sollte von der Richtlinie eine Fehlermeldung angezeigt werden.When users try to sign in without resetting the password first, your policy should return a friendly error message. Beispiel:For example:

Ihr Kennwort ist abgelaufen. Wählen Sie den Link „Kennwort zurücksetzen“, um es zurückzusetzen.Your password has expired. To reset it, select the Reset Password link.

Für diesen optionalen Schritt ist die Verwendung von benutzerdefinierten Azure AD B2C-Richtlinien erforderlich. Informationen hierzu finden Sie im Artikel Azure Active Directory B2C: Erste Schritte mit benutzerdefinierten Richtlinien.This optional step requires the use of Azure AD B2C custom policies, as described in the Getting started with custom policies article.

In diesem Abschnitt ändern Sie die Richtlinie, um den Benutzermigrationsstatus bei der Anmeldung zu überprüfen.In this section, you change the policy to check the user migration status on sign-in. Wenn der Benutzer das Kennwort nicht geändert hat, sollte eine HTTP 409-Fehlermeldung mit der Aufforderung zurückgegeben werden, dass der Benutzer den Link Kennwort vergessen? wählen soll.If the user didn't change the password, return an HTTP 409 error message that asks the user to select the Forgot your password? link.

Verwenden Sie eine Azure-Tabelle, um die Kennwortänderung nachzuverfolgen.To track the password change, you use an Azure table. Wenn Sie den Prozess für die Prämigration mit dem Befehlszeilenparameter 2 ausführen, erstellen Sie eine Benutzerentität in einer Azure-Tabelle.When you run the pre-migration process with the command-line parameter 2, you create a user entity in an Azure table. Ihr Dienst führt Folgendes durch:Your service does the following:

  • Bei der Anmeldung ruft die Azure AD B2C-Richtlinie den RESTful-Migrationsdienst auf und sendet eine E-Mail als Eingabeanspruch.On sign-in, the Azure AD B2C policy invokes your migration RESTful service, sending an email message as an input claim. Der Dienst sucht in der Azure-Tabelle nach der E-Mail-Adresse.The service searches for the email address in the Azure table. Wenn die Adresse vorhanden ist, löst der Dienst eine Fehlermeldung aus: Ihr Kennwort muss geändert werden.If the address exists, the service throws an error message: You must change password.

  • Nachdem der Benutzer das Kennwort geändert hat, wird die Entität aus der Azure-Tabelle entfernt.After the user successfully changes the password, remove the entity from the Azure table.

Hinweis

Zur Vereinfachung des Beispiels wird eine Azure-Tabelle verwendet.We use an Azure table to simplify the sample. Sie können den Migrationsstatus in einer beliebigen Datenbank oder als benutzerdefinierte Eigenschaft im Azure AD B2C-Konto speichern.You can store the migration status in any database or as a custom property in the Azure AD B2C account.

4.1: Aktualisieren Ihrer Anwendungseinstellung4.1: Update your application setting

  1. Öffnen Sie zum Testen des RESTful-API-Demos die Datei AADB2C.UserMigration.sln in Visual Studio.To test the RESTful API demo, open AADB2C.UserMigration.sln in Visual Studio.

  2. Öffnen Sie im Projekt AADB2C.UserMigration.API die Datei Web.config.In the AADB2C.UserMigration.API project, open the Web.config file. Ersetzen Sie die Einstellung durch die in Schritt 2.2 konfigurierte Einstellung:Replace the setting with the one configured in Step 2.2:

    {
        "BlobStorageConnectionString": "{The Azure Blob storage connection string}",
        ...
    }
    

Schritt 4.2: Bereitstellen der Webanwendung in Azure App ServiceStep 4.2: Deploy your web application to Azure App Service

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf AADB2C.UserMigration.API, und wählen Sie „Veröffentlichen“ aus.In Solution Explorer, right-click on the AADB2C.UserMigration.API, select "Publish...". Befolgen Sie die Anweisungen für die Veröffentlichung in Azure App Service.Follow the instructions to publish to Azure App Service. Weitere Informationen finden Sie unter Lokale Git-Bereitstellung in Azure App Service.For more information, see Deploy your app to Azure App Service.

Schritt 4.3: Hinzufügen eines technischen Profils und der Überprüfung technischer Profile zur RichtlinieStep 4.3: Add a technical profile and technical profile validation to your policy

  1. Erweitern Sie „Projektmappenelemente“ im Projektmappen-Explorer, und öffnen Sie die Richtliniendatei TrustFrameworkExtensions.xml.In Solution Explorer, expand "Solution Items", and open the TrustFrameworkExtensions.xml policy file.

  2. Ändern Sie yourtenant.onmicrosoft.com in den Feldern TenantId, PublicPolicyUri und <TenantId> in den Namen Ihres Mandanten.Change TenantId, PublicPolicyUri and <TenantId> fields from yourtenant.onmicrosoft.com to the name of your tenant.

  3. Ersetzen Sie unter dem Element <TechnicalProfile Id="login-NonInteractive"> alle Instanzen von ProxyIdentityExperienceFrameworkAppId und IdentityExperienceFrameworkAppId durch die in Erste Schritte mit benutzerdefinierten Richtlinien konfigurierten Anwendungs-IDs.Under the <TechnicalProfile Id="login-NonInteractive"> element, replace all instances of ProxyIdentityExperienceFrameworkAppId and IdentityExperienceFrameworkAppId with the Application IDs configured in Getting started with custom policies.

  4. Suchen Sie den folgenden XML-Codeausschnitt unter dem Knoten <ClaimsProviders>.Under the <ClaimsProviders> node, find the following XML snippet. Ändern Sie den Wert von ServiceUrl so, dass er auf Ihre Azure App Service-URL verweist.Change the value of ServiceUrl to point to your Azure App Service URL.

    <ClaimsProvider>
      <DisplayName>REST APIs</DisplayName>
      <TechnicalProfiles>
    
        <TechnicalProfile Id="LocalAccountSignIn">
          <DisplayName>Local account just in time migration</DisplayName>
          <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
          <Metadata>
            <Item Key="ServiceUrl">http://{your-app}.azurewebsites.net/api/PrePasswordReset/LoalAccountSignIn</Item>
            <Item Key="AuthenticationType">None</Item>
            <Item Key="SendClaimsIn">Body</Item>
          </Metadata>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="email" />
          </InputClaims>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
        </TechnicalProfile>
    
        <TechnicalProfile Id="LocalAccountPasswordReset">
          <DisplayName>Local account just in time migration</DisplayName>
          <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
          <Metadata>
            <Item Key="ServiceUrl">http://{your-app}.azurewebsites.net/api/PrePasswordReset/PasswordUpdated</Item>
            <Item Key="AuthenticationType">None</Item>
            <Item Key="SendClaimsIn">Body</Item>
          </Metadata>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
          </InputClaims>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    

Mit dem obigen technischen Profil wird ein Eingabeanspruch definiert: signInName (als E-Mail senden).The preceding technical profile defines one input claim: signInName (send as email). Bei der Anmeldung wird der Anspruch an Ihren RESTful-Endpunkt gesendet.On sign-in, the claim is sent to your RESTful endpoint.

Definieren Sie das technische Profil für die RESTful-API, und konfigurieren Sie anschließend die Azure AD B2C-Richtlinie für das Aufrufen des technischen Profils.After you define the technical profile for your RESTful API, tell your Azure AD B2C policy to call the technical profile. Der XML-Codeausschnitt setzt das in der Basisrichtlinie definierte Element SelfAsserted-LocalAccountSignin-Email außer Kraft.The XML snippet overrides SelfAsserted-LocalAccountSignin-Email, which is defined in the base policy. Darüber hinaus fügt der XML-Codeausschnitt ValidationTechnicalProfile mit einer Referenz-ID hinzu, die auf das technische Profil LocalAccountUserMigration verweist.The XML snippet also adds ValidationTechnicalProfile, with ReferenceId pointing to your technical profile LocalAccountUserMigration.

Schritt 4.4: Hochladen der Richtlinie in Ihren MandantenStep 4.4: Upload the policy to your tenant

  1. Wechseln Sie im Azure-Portal zum Kontext Ihres Azure AD B2C-Mandanten, und wählen Sie anschließend Azure AD B2C aus.In the Azure portal, switch to the context of your Azure AD B2C tenant, and then select Azure AD B2C.
  2. Wählen Sie Framework für die Identitätsfunktion aus.Select Identity Experience Framework.
  3. Wählen Sie die Option Alle Richtlinien aus.Select All Policies.
  4. Wählen Sie Richtlinie hochladen aus.Select Upload Policy.
  5. Aktivieren Sie das Kontrollkästchen Richtlinie überschreiben, sofern vorhanden.Select the Overwrite the policy if it exists check box.
  6. Laden Sie die Datei TrustFrameworkExtensions.xml hoch, und stellen Sie sicher, dass sie die Überprüfung besteht.Upload the TrustFrameworkExtensions.xml file, and ensure that it passes validation.

Schritt 4.5: Testen der benutzerdefinierten Richtlinie mit „Jetzt ausführen“Step 4.5: Test the custom policy by using Run Now

  1. Wählen Sie Azure AD B2C und dann Identity Experience Framework aus.Select Azure AD B2C, and then select Identity Experience Framework.

  2. Öffnen Sie B2C_1A_signup_signin. Dies ist die benutzerdefinierte Richtlinie der vertrauenden Seite (Relying Party, RP), die Sie hochgeladen haben. Wählen Sie anschließend Jetzt ausführen aus.Open B2C_1A_signup_signin, the relying party (RP) custom policy that you uploaded, and then select Run now.

  3. Geben Sie die Anmeldeinformationen eines migrierten Benutzers ein, und wählen Sie dann Anmelden aus.Enter the credentials of one of the migrated users, and then select Sign In. Ihre REST-API sollte die folgende Fehlermeldung auslösen:Your REST API should throw the following error message:

    Anmeldeseite für die Registrierung mit der Fehlermeldung zum Ändern des Kennworts

Schritt 4.6: Behandeln von Problemen mit der REST-API (optional)Step 4.6: (Optional) Troubleshoot your REST API

Sie können Protokollierungsinformationen nahezu in Echtzeit anzeigen und überwachen.You can view and monitor logging information in near-real time.

  1. Wählen Sie im Menü mit den Einstellungen für Ihre RESTful-Anwendung unter Überwachung die Option Diagnoseprotokolle.On your RESTful application's settings menu, under Monitoring, select Diagnostic logs.

  2. Legen Sie Anwendungsprotokollierung (Dateisystem) auf Ein fest.Set Application Logging (Filesystem) to On.

  3. Legen Sie die Ebene auf Ausführlich fest.Set the Level to Verbose.

  4. Wählen Sie Speichern aus.Select Save

    Konfigurationsseite „Diagnoseprotokolle“ im Azure-Portal

  5. Wählen Sie im Menü Einstellungen die Option Protokollstream.On the Settings menu, select Log stream.

  6. Überprüfen Sie die Ausgabe der RESTful-API.Check the output of the RESTful API.

Wichtig

Verwenden Sie die Diagnoseprotokolle nur während der Entwicklung und bei Tests.Use the diagnostics logs only during development and testing. Die RESTful-API-Ausgabe enthält unter Umständen vertrauliche Informationen, die während der Produktion nicht verfügbar gemacht werden dürfen.The RESTful API output might contain confidential information that should not be exposed in production.

(Optional:) Herunterladen der vollständigen Richtliniendateien(Optional) Download the complete policy files

Nachdem Sie die exemplarische Vorgehensweise unter Erste Schritte mit benutzerdefinierten Richtlinien abgeschlossen haben, empfiehlt es sich, ein Szenario mit Ihren eigenen Dateien für benutzerdefinierte Richtlinien zu erstellen.After you complete the Get started with custom policies walk-through, we recommend that you build your scenario by using your own custom policy files. Zu Referenzzwecken haben wir Beispiele für Richtliniendateien bereitgestellt.For your reference, we have provided sample policy files.