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

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 $countparametró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.

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.

Enable phone sign-in

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.

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.

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.

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

Klucz zasad struktury zaufania

Aplikacje

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.

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ńcowego v1.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

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.

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:

  1. Otwórz projekt w programie Visual Studio lub Visual Studio Code.

  2. Otwórz src/appsettings.json.

  3. appSettings W sekcji zastąp your-b2c-tenant ciąg nazwą dzierżawy i Application (client) IDClient secret wartościami rejestracji aplikacji zarządzania. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji programu Microsoft Graph.

  4. Otwórz okno konsoli w lokalnym klonie repozytorium, przejdź do src katalogu, a następnie skompiluj projekt:

    cd src
    dotnet build
    
  5. 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 :

  1. Odczytuje ustawienia aplikacji z pliku appsettings.json
  2. 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.
  3. 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