Správa služby Azure AD B2C s využitím Microsoft Graphu

Microsoft Graph umožňuje spravovat prostředky v adresáři Azure AD B2C. Pro správu prostředků Azure AD B2C se podporují následující operace rozhraní Microsoft Graph API, včetně uživatelů, zprostředkovatelů identity, toků uživatelů, vlastních zásad a klíčů zásad. Každý odkaz v následujících částech cílí na odpovídající stránku v referenčních informacích k rozhraní Microsoft Graph API pro danou operaci.

Poznámka:

Můžete také programově vytvořit samotný adresář Azure AD B2C spolu s odpovídajícím prostředkem Azure propojeným s předplatným Azure. Tato funkce není přístupná prostřednictvím rozhraní Microsoft Graph API, ale prostřednictvím rozhraní Azure REST API. Další informace najdete v tématu Klienti B2C – Vytvoření.

V tomto videu se dozvíte o migraci uživatelů Azure AD B2C pomocí rozhraní Microsoft Graph API.

Požadavky

  • Pokud chcete používat rozhraní MS Graph API a pracovat s prostředky ve vašem tenantovi Azure AD B2C, potřebujete registraci aplikace, která uděluje oprávnění k tomu. Postupujte podle kroků v článku Registrace aplikace Microsoft Graph a vytvořte registraci aplikace, kterou může vaše aplikace pro správu používat.

Správa uživatelů

Poznámka:

Azure AD B2C v současné době nepodporuje pokročilé možnosti dotazů na objekty adresáře. To znamená, že v parametru dotazu neexistuje žádná podpora $count, $search parametrů dotazu a ne (not), Nerovná se (ne) a Končí operátory (endsWith).$filter Další informace najdete v tématu Parametry dotazu v Microsoft Graphu a pokročilé možnosti dotazů v Microsoft Graphu.

Správa telefonních čísel uživatelů

Telefonní číslo, které může uživatel použít k přihlášení pomocí SMS nebo hlasových hovorů nebo vícefaktorového ověřování. Další informace naleznete v tématu Rozhraní API metod ověřování Microsoft Entra.

Všimněte si, že operace seznamu vrátí pouze povolená telefonní čísla. Pro použití se seznamem by mělo být povolené následující telefonní číslo.

Enable phone sign-in

Poznámka:

Správně reprezentované telefonní číslo se uloží s mezerou mezi kódem země a telefonním číslem. Služba Azure AD B2C v současné době toto místo ve výchozím nastavení nepřidá.

E-mailová adresa samoobslužného resetování hesla

E-mailová adresa, kterou může použít přihlašovací účet uživatelského jména k resetování hesla. Další informace naleznete v tématu Rozhraní API metod ověřování Microsoft Entra.

Metoda ověřování tokenu OATH softwaru

Softwarový token OATH je generátor čísel založený na softwaru, který používá standard jednorázového hesla (TOTP) založeného na OATH pro vícefaktorové ověřování prostřednictvím ověřovací aplikace. Použití rozhraní Microsoft Graph API ke správě softwarového tokenu OATH zaregistrovaného uživateli:

Zprostředkovatelé identit

Spravujte zprostředkovatele identity dostupné pro toky uživatelů ve vašem tenantovi Azure AD B2C.

Tok uživatele (beta verze)

Nakonfigurujte předem připravené zásady pro registraci, přihlášení, kombinovanou registraci a přihlášení, resetování hesla a aktualizaci profilu.

Metody ověřování toku uživatele (beta verze)

Zvolte mechanismus, který umožňuje uživatelům registrovat se prostřednictvím místních účtů. Místní účty jsou účty, ve kterých Azure AD B2C provede kontrolní výraz identity. Další informace naleznete v tématu b2cAuthenticationMethodsPolicy typ prostředku.

Vlastní zásady (beta verze)

Následující operace umožňují spravovat zásady architektury důvěryhodnosti Azure AD B2C, označované jako vlastní zásady.

Klíče zásad (beta verze)

Architektura prostředí identit ukládá tajné kódy odkazované ve vlastních zásadách pro navázání vztahu důvěryhodnosti mezi komponentami. Tyto tajné kódy můžou být symetrické nebo asymetrické klíče/hodnoty. Na webu Azure Portal se tyto entity zobrazují jako klíče zásad.

Prostředek nejvyšší úrovně pro klíče zásad v rozhraní Microsoft Graph API je sada klíčů důvěryhodné architektury. Každá sada klíčů obsahuje aspoň jeden klíč. Pokud chcete vytvořit klíč, nejprve vytvořte prázdnou sadu klíčů a potom vygenerujte klíč v sadě klíčů. Můžete vytvořit ruční tajný klíč, nahrát certifikát nebo klíč PKCS12. Klíč může být vygenerovaný tajný klíč, řetězec (například tajný klíč aplikace Facebook) nebo certifikát, který nahrajete. Pokud má sada klíčů více klíčů, je aktivní jenom jeden z nich.

Sada klíčů zásad architektury důvěryhodnosti

Klíč zásad architektury důvěryhodnosti

Aplikace

Vlastnosti rozšíření aplikace (rozšíření adresáře)

Vlastnosti rozšíření aplikace se také označují jako rozšíření adresáře nebo rozšíření Microsoft Entra. Ke správě v Azure AD B2C použijte typ prostředku identityUserFlowAttribute a jeho přidružené metody.

Pro uživatele můžete uložit až 100 hodnot rozšíření adresáře. Ke správě vlastností rozšíření adresáře pro uživatele použijte následující uživatelská rozhraní API v Microsoft Graphu.

  • Aktualizace uživatele: Chcete-li zapsat nebo odebrat hodnotu vlastnosti rozšíření adresáře z objektu uživatele.
  • Získání uživatele: Načtení hodnoty rozšíření adresáře pro uživatele. Vlastnost bude ve výchozím nastavení vrácena prostřednictvím koncového beta bodu, ale pouze přes $selectv1.0 koncový bod.

U toků uživatelů se tyto vlastnosti rozšíření spravují pomocí webu Azure Portal. Pro vlastní zásady vytvoří Azure AD B2C vlastnost za vás při prvním zápisu hodnoty do vlastnosti rozšíření.

Poznámka:

V Microsoft Entra ID se rozšíření adresáře spravují prostřednictvím typu prostředku extensionProperty a přidružených metod. Protože se ale používají v B2C prostřednictvím b2c-extensions-app aplikace, která by se neměla aktualizovat, spravují se v Azure AD B2C pomocí typu prostředku identityUserFlowAttribute a jeho přidružených metod.

Využití tenanta

Pomocí rozhraní API Získat podrobnosti o organizaci získejte kvótu velikosti adresáře. Musíte přidat $select parametr dotazu, jak je znázorněno v následujícím požadavku HTTP:

GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota

Nahraďte organization-id id vaší organizace nebo tenanta.

Odpověď na výše uvedený požadavek vypadá podobně jako následující fragment kódu JSON:

{
    "directorySizeQuota": {
        "used": 156,
        "total": 1250000
    }
}

Protokoly auditu

Další informace o přístupu k protokolům auditu Azure AD B2C najdete v tématu Přístup k protokolům auditu Azure AD B2C.

Podmíněný přístup

Načtení nebo obnovení odstraněných uživatelů a aplikací

Odstraněné uživatele a aplikace je možné obnovit jenom v případě, že byly odstraněny během posledních 30 dnů.

Jak programově spravovat Microsoft Graph

Pokud chcete spravovat Microsoft Graph, můžete to udělat buď jako aplikaci pomocí oprávnění aplikace, nebo můžete použít delegovaná oprávnění. U delegovaných oprávnění uživatel nebo správce souhlasí s oprávněními, která aplikace požaduje. Aplikaci se deleguje oprávnění k tomu, aby při volání cílového prostředku fungovala jako přihlášený uživatel. Oprávnění aplikace používají aplikace, které nevyžadují přihlášeného uživatele, a proto vyžadují oprávnění aplikace. Z tohoto důvodu můžou oprávnění aplikace udělit jenom správci.

Poznámka:

Delegovaná oprávnění pro uživatele, kteří se přihlašují prostřednictvím toků uživatelů nebo vlastních zásad, nelze použít pro delegovaná oprávnění pro rozhraní Microsoft Graph API.

Ukázka kódu: Jak programově spravovat uživatelské účty

Tento ukázkový kód je konzolová aplikace .NET Core, která používá sadu Microsoft Graph SDK k interakci s rozhraním Microsoft Graph API. Jeho kód ukazuje, jak volat rozhraní API pro programovou správu uživatelů v tenantovi Azure AD B2C. Můžete si stáhnout ukázkový archiv (*.zip), procházet úložiště na GitHubu nebo naklonovat úložiště:

git clone https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management.git

Po získání ukázky kódu ho nakonfigurujte pro své prostředí a pak sestavte projekt:

  1. Otevřete projekt v sadě Visual Studio nebo Visual Studio Code.

  2. Otevře záznam typu src/appsettings.json.

  3. appSettings V části nahraďte your-b2c-tenant názvem vašeho tenanta a Application (client) IDClient secret hodnotami pro registraci aplikace pro správu. Další informace naleznete v tématu Registrace aplikace Microsoft Graph.

  4. Otevřete okno konzoly v místním klonu úložiště, přepněte do src adresáře a pak sestavte projekt:

    cd src
    dotnet build
    
  5. Spusťte aplikaci pomocí dotnet příkazu:

    dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
    

Aplikace zobrazí seznam příkazů, které můžete spustit. Získejte například všechny uživatele, získejte jednoho uživatele, odstraňte uživatele, aktualizujte heslo uživatele a hromadný import.

Poznámka:

Aby aplikace aktualizovala hesla uživatelských účtů, musíte aplikaci udělit roli správce uživatele.

Diskuze s kódem

Ukázkový kód používá sadu Microsoft Graph SDK, která je navržená tak, aby zjednodušila vytváření vysoce kvalitních, efektivních a odolných aplikací, které přistupují k Microsoft Graphu.

Každý požadavek na rozhraní Microsoft Graph API vyžaduje přístupový token pro ověření. Řešení využívá balíček NuGet Microsoft.Graph.Auth , který poskytuje obálku microsoft Authentication Library (MSAL) založenou na scénáři ověřování pro použití se sadou Microsoft Graph SDK.

Metoda RunAsync v souboru Program.cs :

  1. Čtení nastavení aplikace ze souboru appsettings.json
  2. Inicializuje poskytovatele ověřování pomocí toku udělení přihlašovacích údajů klienta OAuth 2.0. S tokem udělení přihlašovacích údajů klienta může aplikace získat přístupový token pro volání rozhraní Microsoft Graph API.
  3. Nastaví klienta služby Microsoft Graph u poskytovatele ověřování:
// 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);

Inicializovaný GraphServiceClient se pak použije v UserService.cs k provádění operací správy uživatelů. Například získání seznamu uživatelských účtů v tenantovi:

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();
    }
}

Volání rozhraní API pomocí sad MICROSOFT Graph SDK obsahuje informace o tom, jak číst a zapisovat informace z Microsoft Graphu, používat $select k řízení vrácených vlastností, poskytování vlastních parametrů dotazu a použití $filter parametrů dotazu a $orderBy dotazu.

Další kroky