Verwalten von Azure AD B2C mit Microsoft Graph
Mit Microsoft Graph können Sie Ressourcen in Ihrem Azure AD B2C-Verzeichnis verwalten. In der Microsoft Graph-API werden die folgenden Vorgänge für die Verwaltung von Azure AD B2C-Ressourcen unterstützt (einschließlich Benutzern, Identitätsanbietern, Benutzerflows, benutzerdefinierten Richtlinien und Richtlinienschlüsseln). Jeder Link in den folgenden Abschnitten bezieht sich auf die entsprechende Seite in der Referenz zur Microsoft Graph-API für diesen Vorgang.
Hinweis
Sie können auch programmgesteuert ein Azure AD B2C-Verzeichnis selbst erstellen, zusammen mit der entsprechenden Azure-Ressource, die mit einem Azure-Abonnement verknüpft ist. Diese Funktionalität wird nicht über die Microsoft Graph-API bereitgestellt, sondern über die Azure-REST-API. Weitere Informationen finden Sie unter B2C-Mandanten: Erstellen.
Sehen Sie sich dieses Video an, um mehr über die Migration von Azure AD B2C-Benutzern mithilfe der Microsoft Graph API zu erfahren.
Voraussetzungen
- Zum Verwenden der MS Graph-API und Interagieren mit Ressourcen auf Ihrem Azure AD B2C-Mandanten benötigen Sie eine Anwendungsregistrierung, bei der die erforderlichen Berechtigungen gewährt werden. Führen Sie die im Artikel Registrieren einer Microsoft Graph-Anwendung aufgeführten Schritte aus, um eine Anwendungsregistrierung zu erstellen, die von Ihrer Verwaltungsanwendung verwendet werden kann.
Benutzerverwaltung
Hinweis
Azure AD B2C unterstützt derzeit keine erweiterten Abfragefunktionen für Verzeichnisobjekte. Dies bedeutet, dass keine Unterstützung für $count
, $search
Abfrageparameter und Not (not
), Not equals (ne
) und Ends with (endsWith
) im Abfrageparameter $filter
gibt. Weitere Informationen finden Sie unter Abfrageparameter in Microsoft Graph und erweiterte Abfragefunktionen in Microsoft Graph.
- Auflisten von Benutzern
- Erstellen eines Consumerbenutzers
- Abrufen eines Benutzers
- Aktualisieren eines Benutzers
- Löschen eines Benutzers
Verwaltung der Telefonnummer des Benutzers
Eine Telefonnummer, mit der sich ein Benutzer per SMS oder Sprachanruf oder per mehrstufiger Authentifizierung anmelden kann. Weitere Informationen finden Sie unter Authentifizierungsmethoden-API von Microsoft Entra.
Hinweis: Durch den Auflistungsvorgang werden nur aktivierte Telefonnummern zurückgegeben. Die folgende Telefonnummer muss aktiviert werden, um mit den Auflistungsvorgängen verwendet werden zu können.
Hinweis
Eine ordnungsgemäß dargestellte Telefonnummer wird mit einem Leerzeichen zwischen Landeskennzahl und Telefonnummer gespeichert. Der Azure AD B2C-Dienst fügt dieses Leerzeichen derzeit nicht standardmäßig hinzu.
E-Mail-Adresse für Self-Service-Kennwortzurücksetzung
Eine E-Mail-Adresse, die von einem Konto mit benutzernamenbasierter Anmeldung verwendet werden kann, um das Kennwort zurückzusetzen. Weitere Informationen finden Sie unter Authentifizierungsmethoden-API von Microsoft Entra.
Authentifizierungsmethode für OATH-Softwaretoken
Ein OATH-Softwaretoken ist ein softwarebasierter Zahlengenerator, der den OATH-Standard für zeitbasierte Einmalkennwörter (Time-Based One-Time Password, TOTP) für die mehrstufige Authentifizierung über eine Authentifikator-App verwendet. Verwenden Sie die Microsoft Graph-API, um ein OATH-Softwaretoken zu verwalten, das für einen Benutzer registriert ist:
Identitätsanbieter
Verwalten Sie die Identitätsanbieter, die für die Benutzerflows in Ihrem Azure AD B2C-Mandanten verfügbar sind.
- Auflisten von im Azure AD B2C-Mandanten verfügbaren Identitätsanbietern
- Auflisten von im Azure AD B2C-Mandanten konfigurierten Identitätsanbietern
- Erstellen eines Identitätsanbieters
- Abrufen eines Identitätsanbieters
- Aktualisieren eines Identitätsanbieters
- Löschen eines Identitätsanbieters
Benutzerflow (Beta)
Konfigurieren Sie vordefinierte Richtlinien für Registrierung, Anmeldung, kombinierte Registrierung und Anmeldung, Kennwortzurücksetzung und Profilaktualisierung.
- Auflisten von Benutzerflows
- Erstellen eines Benutzerflows
- Abrufen eines Benutzerflows
- Löschen eines Benutzerflows
Authentifizierungsmethoden mit Benutzerflow (Beta)
Wählen Sie einen Mechanismus, mit dem sich Benutzer über lokale Konten registrieren können. Lokale Konten sind die Konten, bei denen die Identitätsassertion von Azure AD B2C durchgeführt wird. Weitere Informationen finden Sie unter Ressourcentyp „b2cAuthenticationMethodsPolicy“.
Benutzerdefinierte Richtlinien (Beta)
Mit den folgenden Vorgängen können Sie Ihre Azure AD B2C-Vertrauensframeworkrichtlinien verwalten, die als benutzerdefinierte Richtlinien bezeichnet werden.
- Auflisten aller Vertrauensframeworkrichtlinien, die in einem Mandanten konfiguriert sind
- Erstellen einer Vertrauensframeworkrichtlinie
- Lesen der Eigenschaften einer vorhandenen Vertrauensframeworkrichtlinie
- Aktualisieren oder Erstellen einer Vertrauensframeworkrichtlinie
- Löschen einer vorhandenen Vertrauensframeworkrichtlinie
Richtlinienschlüssel (Beta)
Das Identity Experience Framework speichert die Geheimnisse, auf die in einer benutzerdefinierten Richtlinie verwiesen wird, um Vertrauen zwischen den Komponenten herzustellen. Diese Geheimnisse können symmetrische oder asymmetrische Schlüssel/Werte sein. Im Azure-Portal werden diese Entitäten als Richtlinienschlüssel angezeigt.
Die vorrangige Ressource für Richtlinienschlüssel in der Microsoft Graph-API ist das Vertrauensframework-Keyset. Jedes Keyset enthält mindestens einen Schlüssel. Zum Erstellen eines Schlüssels müssen Sie zunächst ein leeres Keyset erstellen und anschließend darin einen Schlüssel generieren. Sie können ein manuelles Geheimnis erstellen, ein Zertifikat hochladen oder einen PKCS12-Schlüssel erstellen. Der Schlüssel kann ein generiertes Geheimnis, eine Zeichenfolge (z. B. der geheime Facebook-Anwendungsschlüssel) oder ein von Ihnen hochgeladenes Zertifikat sein. Wenn ein Keyset mehrere Schlüssel enthält, ist immer nur einer der Schlüssel aktiv.
Vertrauensframeworkrichtlinie – Keyset
- Auflisten der Vertrauensframework-Keysets
- Erstellen eines Vertrauensframework-Keysets
- Abrufen eines Keysets
- Aktualisieren eines Vertrauensframework-Keysets
- Löschen eines Vertrauensframework-Keysets
Vertrauensframeworkrichtlinie – Schlüssel
- Abrufen des derzeit aktiven Schlüssels im Keyset
- Erstellen eines Schlüssels im Keyset
- Hochladen eines zeichenfolgebasierten Geheimnisses
- Hochladen eines X.509-Zertifikats
- Hochladen eines Zertifikats im PKCS12-Format
Anwendungen
- Auflisten von Anwendungen
- Erstellen einer Anwendung
- Aktualisieren einer Anwendung
- Erstellen eines Dienstprinzipals
- Erstellen einer oauth2Permission-Genehmigung
- Löschen der Anwendung
Eigenschaften der Anwendungserweiterung (Verzeichniserweiterung)
Anwendungserweiterungseigenschaften werden auch als Verzeichnis- oder Microsoft Entra-Erweiterungen bezeichnet. Verwenden Sie zu ihrer Verwaltung in Azure AD B2C den Ressourcentyp „identityUserFlowAttribute“ und die zugehörigen Methoden.
- Erstellen eines Benutzerflowattributs
- Auflisten von Benutzerflowattributen
- Abrufen eines Benutzerflowattributs
- Aktualisieren eines Benutzerflowattributs
- Löschen eines Benutzerflowattributs
Sie können bis zu 100 Verzeichniserweiterungswerte pro Benutzer speichern. Um die Verzeichniserweiterungseigenschaften für Benutzer zu verwalten, verwenden Sie die folgenden Benutzer-APIs in Microsoft Graph.
- Aktualisieren eines Benutzers: Zum Schreiben oder Entfernen des Werts der Verzeichniserweiterungseigenschaft aus dem Benutzerobjekt.
- Abrufen eines Benutzers: Zum Abrufen des Werts der Verzeichniserweiterung für den Benutzer. Die Eigenschaft wird standardmäßig über den
beta
-Endpunkt zurückgegeben, jedoch nur bei$select
über denv1.0
-Endpunkt.
Bei Benutzerflows werden diese Erweiterungseigenschaften mit dem Azure-Portal verwaltet. Bei benutzerdefinierten Richtlinien erstellt Azure AD B2C die Eigenschaft für Sie, wenn die Richtlinie zum ersten Mal einen Wert in die Erweiterungseigenschaft schreibt.
Hinweis
In Microsoft Entra ID werden Verzeichniserweiterungen über den Ressourcentyp „extensionProperty“ und die zugehörigen Methoden verwaltet. Da sie jedoch in B2C über die App b2c-extensions-app
verwendet werden, die nicht aktualisiert werden soll, werden sie in Azure AD B2C mithilfe des Ressourcentyps „identityUserFlowAttribute“ und der zugehörigen Methoden verwaltet.
Mandantennutzung
Verwenden Sie die API zum Abrufen von Organisationsdetails, um Ihr Verzeichnisgrößenkontingent abzurufen. Sie müssen den Abfrageparameter $select
hinzufügen, wie in der folgenden HTTP-Anforderung gezeigt:
GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota
Ersetzen Sie organization-id
durch die ID Ihrer Organisation oder Ihres Mandanten.
Die Antwort auf die obige Anforderung sieht in etwa wie der folgende JSON-Ausschnitt aus:
{
"directorySizeQuota": {
"used": 156,
"total": 1250000
}
}
Überwachungsprotokolle
Weitere Informationen zum Zugriff auf Azure AD B2C-Überwachungsprotokolle finden Sie unter Zugriff auf Azure AD B2C-Überwachungsprotokolle.
Bedingter Zugriff
- Auflisten der integrierten Vorlagen für Szenarien mit Richtlinien für bedingten Zugriff
- Auflisten aller Richtlinien für bedingten Zugriff
- Lesezugriffeigenschaften und Beziehungen einer Richtlinie für bedingten Zugriff
- Erstellen einer neuen Richtlinie für bedingten Zugriff
- Aktualisieren einer Richtlinie für bedingten Zugriff
- Löschen einer Richtlinie für bedingten Zugriff
Abrufen oder Wiederherstellen gelöschter Benutzer und Anwendungen
Gelöschte Benutzer und Anwendungen können nur wiederhergestellt werden, wenn sie innerhalb der letzten 30 Tage gelöscht wurden.
- Auflisten gelöschter Elemente
- Abrufen eines gelöschten Elements
- Wiederherstellen eines gelöschten Elements
- Dauerhaftes Löschen eines gelöschten Elements
Gewusst wie: Programmgesteuertes Verwalten von Microsoft Graph
Wenn Sie Microsoft Graph verwalten möchten, können Sie dies entweder als Anwendung mit den Anwendungsberechtigungen oder mit den delegierten Berechtigungen ausführen. Bei den delegierten Berechtigungen stimmt entweder der Benutzer oder ein Administrator den von der App angeforderten Berechtigungen zu. An die App wird mit der Berechtigung delegiert, bei an die Zielressource gerichteten Aufrufen als angemeldeter Benutzer zu fungieren. Anwendungsberechtigungen werden von den Apps verwendet, für die kein angemeldeter Benutzer erforderlich ist und die daher Anwendungsberechtigungen erfordern. Aus diesem Grund können nur Administratoren den Anwendungsberechtigungen zustimmen.
Hinweis
Delegierte Berechtigungen für Benutzer*innen, die sich über Benutzerflows oder benutzerdefinierte Richtlinien anmelden, können nicht für delegierte Berechtigungen für die Microsoft Graph-API verwendet werden.
Codebeispiel: Programmgesteuertes Verwalten von Benutzerkonten
Dieses Codebeispiel ist eine .NET Core-Konsolenanwendung, die das Microsoft Graph SDK für die Interaktion mit der Microsoft Graph-API verwendet. Der Code veranschaulicht, wie die API aufgerufen wird, um Benutzer in einem Azure AD B2C-Mandanten programmgesteuert zu verwalten. Sie können das Beispielarchiv herunterladen (*.zip), das Repository auf GitHub durchsuchen oder das Repository klonen:
git clone https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management.git
Nachdem Sie das Codebeispiel abgerufen haben, konfigurieren Sie es für Ihre Umgebung, und erstellen Sie dann das Projekt:
Öffnen Sie das Projekt in Visual Studio oder Visual Studio Code.
Öffnen Sie
src/appsettings.json
.Ersetzen Sie im Abschnitt
appSettings
die Zeichenfolgeyour-b2c-tenant
durch den Namen Ihres Mandanten undApplication (client) ID
undClient secret
durch die Werte für Ihre Registrierung der Verwaltungsanwendung. Weitere Informationen finden Sie unter Registrieren einer Microsoft Graph-Anwendung.Öffnen Sie in Ihrem lokalen Klon des Repositorys ein Konsolenfenster, wechseln Sie in das Verzeichnis
src
, und erstellen Sie dann das Projekt:cd src dotnet build
Führen Sie die Anwendung mit Befehl
dotnet
aus:dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
Die Anwendung zeigt eine Liste der Befehle an, die Sie ausführen können. Beispielsweise können Sie alle Benutzer oder einen einzelnen Benutzer abrufen, einen Benutzer löschen, das Kennwort eines Benutzers aktualisieren und einen Massenimport ausführen.
Hinweis
Damit die Anwendung Benutzerkonten-Kennwörter aktualisiert, müssen Sie der Anwendung die Rolle des Benutzeradministrators erteilen.
Überlegungen zum Code
Der Beispielcode verwendet das Microsoft Graph SDK, das entwickelt wurde, um das Entwickeln hochwertiger, effizienter und robuster Anwendungen mit Zugriff auf Microsoft Graph zu vereinfachen.
Alle Anforderungen an die Microsoft Graph-API erfordern ein Zugriffstoken für die Authentifizierung. Die Lösung nutzt das NuGet-Paket Microsoft.Graph.Auth, das einen auf einem Authentifizierungsszenario basierenden Wrapper der Microsoft Authentication Library (MSAL) für die Verwendung mit dem Microsoft Graph SDK bereitstellt.
Die RunAsync
-Methode in der Datei Program.cs führt Folgendes aus:
- Sie liest Anwendungseinstellungen aus der Datei appsettings.json
- Sie initialisiert den Authentifizierungsanbieter unter Verwendung des Gewährungsflows für OAuth 2.0-Clientanmeldeinformationen. Mit dem Gewährungsflow für Clientanmeldeinformationen kann die App ein Zugriffstoken abrufen, um die Microsoft Graph-API aufzurufen.
- Sie richtet den Microsoft Graph-Dienstclient mit dem Authentifizierungsanbieter ein:
// Read application settings from appsettings.json (tenant ID, app ID, client secret, etc.)
AppSettings config = AppSettingsFile.ReadFromJsonFile();
// Initialize the client credential auth provider
var scopes = new[] { "https://graph.microsoft.com/.default" };
var clientSecretCredential = new ClientSecretCredential(config.TenantId, config.AppId, config.ClientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
Der initialisierte GraphServiceClient wird dann in UserService.cs verwendet, um die Vorgänge zur Benutzerverwaltung auszuführen. Beispielsweise können Sie eine Liste der Benutzerkonten im Mandanten abrufen:
public static async Task ListUsers(GraphServiceClient graphClient)
{
Console.WriteLine("Getting list of users...");
try
{
// Get all users
var users = await graphClient.Users
.Request()
.Select(e => new
{
e.DisplayName,
e.Id,
e.Identities
})
.GetAsync();
// Iterate over all the users in the directory
var pageIterator = PageIterator<User>
.CreatePageIterator(
graphClient,
users,
// Callback executed for each user in the collection
(user) =>
{
Console.WriteLine(JsonSerializer.Serialize(user));
return true;
},
// Used to configure subsequent page requests
(req) =>
{
Console.WriteLine($"Reading next page of users...");
return req;
}
);
await pageIterator.IterateAsync();
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex.Message);
Console.ResetColor();
}
}
Das Ausführen von API-Aufrufen mithilfe der Microsoft Graph-SDKs umfasst Informationen zum Lesen und Schreiben von Informationen aus Microsoft Graph. Verwenden Sie $select
, um die zurückgegebenen Eigenschaften zu steuern, benutzerdefinierte Abfrageparameter bereitzustellen und die Abfrageparameter $filter
und $orderBy
zu verwenden.
Nächste Schritte
- Codebeispiele in JavaScript und Node.js finden Sie unter Verwalten von B2C-Benutzerkonten mit MSAL.js und Microsoft Graph SDK.
- Erkunden Sie den Graph-Tester, mit dem Sie Microsoft Graph-APIs ausprobieren und kennenlernen können.