Zarządzanie usługą Azure AD B2C za pomocą programu Microsoft Graph
Program Microsoft Graph umożliwia zarządzanie zasobami w katalogu usługi Azure AD B2C. Następujące operacje interfejsu API programu Microsoft Graph są obsługiwane w przypadku zarządzania zasobami usługi Azure AD B2C, w tym użytkownikami, dostawcami tożsamości, przepływami użytkowników, zasadami niestandardowymi i kluczami zasad. Każdy link w poniższych sekcjach jest przeznaczony dla odpowiedniej strony w dokumentacji interfejsu API programu Microsoft Graph dla tej operacji.
Uwaga
Możesz również programowo utworzyć sam katalog usługi Azure AD B2C wraz z odpowiednim zasobem platformy Azure połączonym z subskrypcją platformy Azure. Ta funkcja nie jest uwidaczniona za pośrednictwem interfejsu API programu Microsoft Graph, ale za pośrednictwem interfejsu API REST platformy Azure. Aby uzyskać więcej informacji, zobacz B2C Tenants - Create (Dzierżawy B2C — tworzenie).
Obejrzyj to wideo, aby dowiedzieć się więcej o migracji użytkowników usługi Azure AD B2C przy użyciu interfejsu API programu Microsoft Graph.
Wymagania wstępne
- Aby korzystać z interfejsu API programu MS Graph i korzystać z zasobów w dzierżawie usługi Azure AD B2C, potrzebna jest rejestracja aplikacji, która przyznaje uprawnienia do tego celu. Wykonaj kroki opisane w artykule Rejestrowanie aplikacji programu Microsoft Graph, aby utworzyć rejestrację aplikacji , której może używać aplikacja zarządzania.
Zarządzanie użytkownikami
Uwaga
Usługa Azure AD B2C obecnie nie obsługuje zaawansowanych funkcji zapytań w obiektach katalogu. Oznacza to, że w parametrach zapytania nie ma obsługi $count
parametrów zapytania i $search
Not (not
), Not equals (ne
) i Ends with (endsWith
) w $filter
parametrze zapytania. Aby uzyskać więcej informacji, zobacz parametry zapytania w programie Microsoft Graph i zaawansowane funkcje zapytań w programie Microsoft Graph.
- Wyświetlanie listy użytkowników
- Tworzenie użytkownika odbiorcy
- Pobieranie użytkownika
- Aktualizowanie użytkownika
- Usuwanie użytkownika
Zarządzanie numerami telefonów użytkowników
Numer telefonu, który może być używany przez użytkownika do logowania się przy użyciu wiadomości SMS lub połączeń głosowych lub uwierzytelniania wieloskładnikowego. Aby uzyskać więcej informacji, zobacz Microsoft Entra authentication methods API (Interfejs API metod uwierzytelniania entra firmy Microsoft).
Pamiętaj, że operacja listy zwraca tylko włączone numery telefonów. Następujący numer telefonu powinien być włączony do użycia z operacjami listy.
Uwaga
Poprawnie reprezentowany numer telefonu jest przechowywany z przestrzenią między kodem kraju a numerem telefonu. Usługa Azure AD B2C nie domyślnie dodaje tego miejsca.
Samoobsługowy adres e-mail resetowania hasła
Adres e-mail, który może być używany przez konto logowania użytkownika w celu zresetowania hasła. Aby uzyskać więcej informacji, zobacz Microsoft Entra authentication methods API (Interfejs API metod uwierzytelniania entra firmy Microsoft).
Metoda uwierzytelniania tokenu oprogramowania OATH
Token OATH oprogramowania to generator liczb oparty na oprogramowaniu, który używa standardu hasła jednorazowego (TOTP) opartego na protokole OATH na potrzeby uwierzytelniania wieloskładnikowego za pośrednictwem aplikacji wystawcy uwierzytelnienia. Użyj interfejsu API programu Microsoft Graph, aby zarządzać tokenem OATH oprogramowania zarejestrowanym dla użytkownika:
Dostawcy tożsamości
Zarządzaj dostawcami tożsamości dostępnymi dla przepływów użytkowników w dzierżawie usługi Azure AD B2C.
- Wyświetlanie listy dostawców tożsamości dostępnych w dzierżawie usługi Azure AD B2C
- Wyświetlanie listy dostawców tożsamości skonfigurowanych w dzierżawie usługi Azure AD B2C
- Tworzenie dostawcy tożsamości
- Pobieranie dostawcy tożsamości
- Aktualizowanie dostawcy tożsamości
- Usuwanie dostawcy tożsamości
Przepływ użytkownika (wersja beta)
Skonfiguruj wstępnie utworzone zasady na potrzeby rejestracji, logowania, połączonej rejestracji i logowania, resetowania hasła i aktualizacji profilu.
- Wyświetlanie listy przepływów użytkowników
- Tworzenie przepływu użytkownika
- Pobieranie przepływu użytkownika
- Usuwanie przepływu użytkownika
Metody uwierzytelniania przepływu użytkownika (beta)
Wybierz mechanizm umożliwiający użytkownikom rejestrowanie się za pośrednictwem kont lokalnych. Konta lokalne to konta, na których usługa Azure AD B2C wykonuje asercji tożsamości. Aby uzyskać więcej informacji, zobacz typ zasobu b2cAuthenticationMethodsPolicy.
Zasady niestandardowe (beta)
Poniższe operacje umożliwiają zarządzanie zasadami platformy Trust Framework usługi Azure AD B2C, znanymi jako zasady niestandardowe.
- Wyświetlanie listy wszystkich zasad platform zaufania skonfigurowanych w dzierżawie
- Tworzenie zasad platformy zaufania
- Odczytywanie właściwości istniejących zasad platformy zaufania
- Aktualizowanie lub tworzenie zasad platformy zaufania.
- Usuwanie istniejących zasad platformy zaufania
Klucze zasad (beta)
Platforma Identity Experience Framework przechowuje wpisy tajne, do których odwołuje się zasady niestandardowe, aby ustanowić relację zaufania między składnikami. Te wpisy tajne mogą być symetryczne lub asymetryczne klucze/wartości. W witrynie Azure Portal te jednostki są wyświetlane jako klucze zasad.
Zasób najwyższego poziomu dla kluczy zasad w interfejsie API programu Microsoft Graph to zaufany zestaw kluczy platformy. Każdy zestaw kluczy zawiera co najmniej jeden klucz. Aby utworzyć klucz, najpierw utwórz pusty zestaw kluczy, a następnie wygeneruj klucz w zestawie kluczy. Możesz utworzyć ręczny wpis tajny, przekazać certyfikat lub klucz PKCS12. Klucz może być wygenerowanym wpisem tajnym, ciągiem (takim jak wpis tajny aplikacji facebook) lub przekazanym certyfikatem. Jeśli zestaw kluczy ma wiele kluczy, aktywny jest tylko jeden z kluczy.
Zestaw kluczy zasad struktury zaufania
- Wyświetlanie listy zestawów kluczy platformy zaufania
- Tworzenie zestawów kluczy platformy zaufania
- Pobieranie zestawu kluczy
- Aktualizowanie zestawów kluczy platformy zaufania
- Usuwanie zestawów kluczy platformy zaufania
Klucz zasad struktury zaufania
- Pobieranie aktualnie aktywnego klucza w zestawie kluczy
- Generowanie klucza w zestawie kluczy
- Przekazywanie wpisu tajnego opartego na ciągu
- Przekazywanie certyfikatu X.509
- Przekazywanie certyfikatu formatu PKCS12
Aplikacje
- Wyświetlanie listy aplikacji
- Tworzenie aplikacji
- Aktualizowanie aplikacji
- Tworzenie elementu servicePrincipal
- Tworzenie dotacji oauth2Permission
- Usuwanie aplikacji
Właściwości rozszerzenia aplikacji (rozszerzenia katalogu)
Właściwości rozszerzenia aplikacji są również nazywane rozszerzeniami katalogu lub firmy Microsoft Entra. Aby zarządzać nimi w usłudze Azure AD B2C, użyj typu zasobu identityUserFlowAttribute i skojarzonych z nią metod.
- Tworzenie atrybutu przepływu użytkownika
- Wyświetlanie listy atrybutów przepływu użytkownika
- Pobieranie atrybutu przepływu użytkownika
- Aktualizowanie atrybutu przepływu użytkownika
- Usuwanie atrybutu przepływu użytkownika
Dla każdego użytkownika można przechowywać maksymalnie 100 wartości rozszerzeń katalogu. Aby zarządzać właściwościami rozszerzenia katalogu dla użytkownika, użyj następujących interfejsów API użytkownika w programie Microsoft Graph.
- Zaktualizuj użytkownika: aby zapisać lub usunąć wartość właściwości rozszerzenia katalogu z obiektu użytkownika.
- Pobierz użytkownika: aby pobrać wartość rozszerzenia katalogu dla użytkownika. Właściwość zostanie domyślnie zwrócona za pośrednictwem punktu końcowego
beta
, ale tylko za$select
pośrednictwem punktu końcowegov1.0
.
W przypadku przepływów użytkowników te właściwości rozszerzenia są zarządzane przy użyciu witryny Azure Portal. W przypadku zasad niestandardowych usługa Azure AD B2C tworzy dla Ciebie właściwość, przy pierwszym zapisie wartości we właściwości rozszerzenia.
Uwaga
W usłudze Microsoft Entra ID rozszerzenia katalogów są zarządzane za pośrednictwem typu zasobu extensionProperty i skojarzonych z nią metod. Jednak ponieważ są one używane w usłudze B2C za pośrednictwem b2c-extensions-app
aplikacji, która nie powinna być aktualizowana, są zarządzane w usłudze Azure AD B2C przy użyciu typu zasobu identityUserFlowAttribute i skojarzonych z nią metod.
Użycie dzierżawy
Użyj interfejsu API Pobierania szczegółów organizacji, aby uzyskać limit przydziału rozmiaru katalogu. Należy dodać $select
parametr zapytania, jak pokazano w poniższym żądaniu HTTP:
GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota
Zastąp organization-id
element identyfikatorem organizacji lub dzierżawy.
Odpowiedź na powyższe żądanie wygląda podobnie do następującego fragmentu kodu JSON:
{
"directorySizeQuota": {
"used": 156,
"total": 1250000
}
}
Dzienniki inspekcji
Aby uzyskać więcej informacji na temat uzyskiwania dostępu do dzienników inspekcji usługi Azure AD B2C, zobacz Uzyskiwanie dostępu do dzienników inspekcji usługi Azure AD B2C.
Dostęp warunkowy
- Wyświetlanie listy wbudowanych szablonów dla scenariuszy zasad dostępu warunkowego
- Wyświetl listę wszystkich zasad dostępu warunkowego
- Odczytywanie właściwości i relacji zasad dostępu warunkowego
- Tworzenie nowych zasad dostępu warunkowego
- Aktualizowanie zasad dostępu warunkowego
- Usuwanie zasad dostępu warunkowego
Pobieranie lub przywracanie usuniętych użytkowników i aplikacji
Usuniętych użytkowników i aplikacji można przywrócić tylko wtedy, gdy zostały usunięte w ciągu ostatnich 30 dni.
- Wyświetlanie listy usuniętych elementów
- Pobieranie usuniętego elementu
- Przywracanie usuniętego elementu
- Trwałe usuwanie usuniętego elementu
Jak programowo zarządzać programem Microsoft Graph
Jeśli chcesz zarządzać programem Microsoft Graph, możesz to zrobić jako aplikację przy użyciu uprawnień aplikacji lub użyć uprawnień delegowanych. W przypadku uprawnień delegowanych użytkownik lub administrator wyraża zgodę na uprawnienia, które aplikacja żąda. Aplikacja jest delegowana z uprawnieniami do działania jako zalogowany użytkownik, gdy wykonuje wywołania zasobu docelowego. Uprawnienia aplikacji są używane przez aplikacje, które nie wymagają zalogowanego użytkownika, a tym samym wymagają uprawnień aplikacji. W związku z tym tylko administratorzy mogą wyrazić zgodę na uprawnienia aplikacji.
Uwaga
Uprawnienia delegowane dla użytkowników logowanych za pośrednictwem przepływów użytkownika lub zasad niestandardowych nie mogą być używane względem delegowanych uprawnień dla interfejsu API programu Microsoft Graph.
Przykładowy kod: Jak programowo zarządzać kontami użytkowników
Ten przykładowy kod to aplikacja konsolowa platformy .NET Core, która korzysta z zestawu Microsoft Graph SDK do interakcji z interfejsem API programu Microsoft Graph. Kod przedstawia sposób wywoływania interfejsu API w celu programowego zarządzania użytkownikami w dzierżawie usługi Azure AD B2C. Możesz pobrać przykładowe archiwum (*.zip), przejrzeć repozytorium w witrynie GitHub lub sklonować repozytorium:
git clone https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management.git
Po uzyskaniu przykładowego kodu skonfiguruj go dla środowiska, a następnie skompiluj projekt:
Otwórz projekt w programie Visual Studio lub Visual Studio Code.
Otwórz
src/appsettings.json
.appSettings
W sekcji zastąpyour-b2c-tenant
ciąg nazwą dzierżawy iApplication (client) ID
Client secret
wartościami rejestracji aplikacji zarządzania. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji programu Microsoft Graph.Otwórz okno konsoli w lokalnym klonie repozytorium, przejdź do
src
katalogu, a następnie skompiluj projekt:cd src dotnet build
Uruchom aplikację za
dotnet
pomocą polecenia :dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
Aplikacja wyświetla listę poleceń, które można wykonać. Na przykład pobierz wszystkich użytkowników, pobierz jednego użytkownika, usuń użytkownika, zaktualizuj hasło użytkownika i zaimportuj zbiorczo.
Uwaga
Aby aplikacja aktualizowała hasła konta użytkownika, musisz przyznać aplikacji rolę administratora.
Dyskusja na temat kodu
Przykładowy kod używa zestawu Microsoft Graph SDK, który został zaprojektowany w celu uproszczenia tworzenia wysokiej jakości, wydajnych i odpornych aplikacji, które uzyskują dostęp do programu Microsoft Graph.
Każde żądanie do interfejsu API programu Microsoft Graph wymaga tokenu dostępu do uwierzytelniania. Rozwiązanie korzysta z pakietu NuGet Microsoft.Graph.Auth , który zapewnia otokę opartą na scenariuszach uwierzytelniania biblioteki Microsoft Authentication Library (MSAL) do użycia z zestawem Microsoft Graph SDK.
Metoda RunAsync
w pliku Program.cs :
- Odczytuje ustawienia aplikacji z pliku appsettings.json
- Inicjuje dostawcę uwierzytelniania przy użyciu przepływu udzielania poświadczeń klienta OAuth 2.0. Dzięki przepływowi udzielania poświadczeń klienta aplikacja może uzyskać token dostępu w celu wywołania interfejsu API programu Microsoft Graph.
- Konfiguruje klienta usługi Microsoft Graph za pomocą dostawcy uwierzytelniania:
// 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);
Zainicjowany element GraphServiceClient jest następnie używany w pliku UserService.cs do wykonywania operacji zarządzania użytkownikami. Na przykład pobranie listy kont użytkowników w dzierżawie:
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();
}
}
Wykonywanie wywołań interfejsu API przy użyciu zestawów SDK programu Microsoft Graph zawiera informacje na temat odczytywania i zapisywania informacji z programu Microsoft Graph, używania $select
do kontrolowania zwracanych właściwości, dostarczania niestandardowych parametrów zapytania oraz używania $filter
parametrów zapytania i $orderBy
.
Następne kroki
- Przykłady kodu w językach JavaScript i Node.js można znaleźć w temacie Zarządzanie kontami użytkowników B2C przy użyciu biblioteki MSAL.js i zestawu Microsoft Graph SDK
- Zapoznaj się z Eksploratorem programu Graph, który umożliwia wypróbowanie interfejsów API programu Microsoft Graph i zapoznanie się z nimi.