Azure AD B2C beheren met Microsoft Graph

Met Microsoft Graph kunt u resources beheren in uw Azure AD B2C-directory. De volgende Microsoft Graph API-bewerkingen worden ondersteund voor het beheer van Azure AD B2C-resources, waaronder gebruikers, id-providers, gebruikersstromen, aangepaste beleidsregels en beleidssleutels. Elke koppeling in de volgende secties is gericht op de bijbehorende pagina in de Microsoft Graph API-verwijzing voor die bewerking.

Notitie

U kunt ook programmatisch een Azure AD B2C-directory zelf maken, samen met de bijbehorende Azure-resource die is gekoppeld aan een Azure-abonnement. Deze functionaliteit wordt niet weergegeven via de Microsoft Graph API, maar via de Azure REST API. Zie B2C-tenants - Maken voor meer informatie.

Bekijk deze video voor meer informatie over azure AD B2C-gebruikersmigratie met behulp van Microsoft Graph API.

Vereisten

  • Als u MS Graph API wilt gebruiken en wilt communiceren met resources in uw Azure AD B2C-tenant, hebt u een toepassingsregistratie nodig waarmee de machtigingen hiervoor worden verleend. Volg de stappen in het artikel Een Microsoft Graph-toepassing registreren om een toepassingsregistratie te maken die door uw beheertoepassing kan worden gebruikt.

Gebruikersbeheer

Notitie

Azure AD B2C biedt momenteel geen ondersteuning voor geavanceerde querymogelijkheden voor adreslijstobjecten. Dit betekent dat er geen ondersteuning is voor $count, $search queryparameters en Not (not), Not is gelijk aan (ne) en Eindigt met (endsWith) operators in $filter de queryparameter. Zie queryparameters in Microsoft Graph en geavanceerde querymogelijkheden in Microsoft Graph voor meer informatie.

Beheer van telefoonnummers van gebruikers

Een telefoonnummer dat door een gebruiker kan worden gebruikt om zich aan te melden met sms - of spraakoproepen of meervoudige verificatie. Zie de API voor Microsoft Entra-verificatiemethoden voor meer informatie.

Opmerking: de lijstbewerking retourneert alleen ingeschakelde telefoonnummers. Het volgende telefoonnummer moet zijn ingeschakeld voor gebruik met de lijstbewerkingen.

Enable phone sign-in

Notitie

Een correct vertegenwoordigd telefoonnummer wordt opgeslagen met een spatie tussen de landcode en het telefoonnummer. De Azure AD B2C-service voegt deze ruimte momenteel niet standaard toe.

E-mailadres voor selfservice voor wachtwoordherstel

Een e-mailadres dat kan worden gebruikt door een aanmeldingsaccount voor de gebruikersnaam om het wachtwoord opnieuw in te stellen. Zie de API voor Microsoft Entra-verificatiemethoden voor meer informatie.

Verificatiemethode voor software-OATH-token

Een software-OATH-token is een op software gebaseerde nummergenerator die gebruikmaakt van de op OATH tijd gebaseerde eenmalige wachtwoordstandaard (TOTP) voor meervoudige verificatie via een verificator-app. Gebruik de Microsoft Graph API om een software OATH-token te beheren dat is geregistreerd bij een gebruiker:

Id-providers

Beheer de id-providers die beschikbaar zijn voor uw gebruikersstromen in uw Azure AD B2C-tenant.

Gebruikersstroom (bèta)

Configureer vooraf samengestelde beleidsregels voor registratie, aanmelding, gecombineerde registratie en aanmelding, wachtwoordherstel en profielupdate.

Verificatiemethoden voor gebruikersstromen (bèta)

Kies een mechanisme om gebruikers te laten registreren via lokale accounts. Lokale accounts zijn de accounts waarbij Azure AD B2C de identiteitsverklaring doet. Zie b2cAuthenticationMethodsPolicy-resourcetype voor meer informatie.

Aangepast beleid (bèta)

Met de volgende bewerkingen kunt u uw Azure AD B2C Trust Framework-beleid beheren, ook wel aangepaste beleidsregels genoemd.

Beleidssleutels (bèta)

In het Identity Experience Framework worden de geheimen opgeslagen waarnaar wordt verwezen in een aangepast beleid om vertrouwen tussen onderdelen tot stand te brengen. Deze geheimen kunnen symmetrische of asymmetrische sleutels/waarden zijn. In Azure Portal worden deze entiteiten weergegeven als beleidssleutels.

De resource op het hoogste niveau voor beleidssleutels in de Microsoft Graph API is de Trusted Framework Keyset. Elke sleutelset bevat ten minste één sleutel. Als u een sleutel wilt maken, maakt u eerst een lege sleutelset en genereert u vervolgens een sleutel in de sleutelset. U kunt een handmatig geheim maken, een certificaat of een PKCS12-sleutel uploaden. De sleutel kan een gegenereerd geheim zijn, een tekenreeks (zoals het Facebook-toepassingsgeheim) of een certificaat dat u uploadt. Als een sleutelset meerdere sleutels heeft, is slechts één van de sleutels actief.

Trust Framework-beleidssleutelset

Trust Framework-beleidssleutel

Toepassingen

Eigenschappen van toepassingsextensie (directory-extensie)

Eigenschappen van de toepassingsextensie worden ook wel map- of Microsoft Entra-extensies genoemd. Als u deze wilt beheren in Azure AD B2C, gebruikt u het resourcetype identityUserFlowAttribute en de bijbehorende methoden.

U kunt maximaal 100 mapextensiewaarden per gebruiker opslaan. Als u de eigenschappen van de mapextensie voor een gebruiker wilt beheren, gebruikt u de volgende gebruikers-API's in Microsoft Graph.

  • Gebruiker bijwerken: de waarde van de eigenschap directory-extensie schrijven of verwijderen uit het gebruikersobject.
  • Een gebruiker ophalen: de waarde van de mapextensie voor de gebruiker ophalen. De eigenschap wordt standaard geretourneerd via het beta eindpunt, maar alleen via $select het v1.0 eindpunt.

Voor gebruikersstromen worden deze extensie-eigenschappen beheerd met behulp van Azure Portal. Voor aangepaste beleidsregels maakt Azure AD B2C de eigenschap voor u, de eerste keer dat het beleid een waarde naar de extensie-eigenschap schrijft.

Notitie

In Microsoft Entra ID worden directory-extensies beheerd via het resourcetype extensionProperty en de bijbehorende methoden. Omdat ze echter in B2C worden gebruikt via de b2c-extensions-app app die niet moet worden bijgewerkt, worden ze beheerd in Azure AD B2C met behulp van het resourcetype identityUserFlowAttribute en de bijbehorende methoden.

Tenantgebruik

Gebruik de API voor organisatiegegevens ophalen om het quotum voor de adreslijstgrootte op te halen. U moet de $select queryparameter toevoegen, zoals wordt weergegeven in de volgende HTTP-aanvraag:

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

Vervang door organization-id uw organisatie- of tenant-id.

Het antwoord op de bovenstaande aanvraag lijkt op het volgende JSON-fragment:

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

Auditlogboeken

Zie Toegang tot Azure AD B2C-auditlogboeken voor meer informatie over het openen van Auditlogboeken van Azure AD B2C.

Voorwaardelijke toegang

Verwijderde gebruikers en toepassingen ophalen of herstellen

Verwijderde gebruikers en apps kunnen alleen worden hersteld als ze in de afgelopen 30 dagen zijn verwijderd.

Microsoft Graph programmatisch beheren

Wanneer u Microsoft Graph wilt beheren, kunt u dit doen als de toepassing met behulp van de toepassingsmachtigingen of u kunt gedelegeerde machtigingen gebruiken. Voor gedelegeerde machtigingen stemt de gebruiker of een beheerder in met de machtigingen die de app aanvraagt. De app wordt gedelegeerd met de machtiging om te fungeren als een aangemelde gebruiker wanneer deze de doelresource aanroept. Toepassingsmachtigingen worden gebruikt door apps waarvoor geen aangemelde gebruiker aanwezig is en die dus toepassingsmachtigingen vereisen. Daarom kunnen alleen beheerders toestemming geven voor toepassingsmachtigingen.

Notitie

Gedelegeerde machtigingen voor gebruikers die zich aanmelden via gebruikersstromen of aangepaste beleidsregels kunnen niet worden gebruikt voor gedelegeerde machtigingen voor Microsoft Graph API.

Codevoorbeeld: Programmatisch gebruikersaccounts beheren

Dit codevoorbeeld is een .NET Core-consoletoepassing die gebruikmaakt van de Microsoft Graph SDK om te communiceren met Microsoft Graph API. De code laat zien hoe u de API aanroept om gebruikers programmatisch te beheren in een Azure AD B2C-tenant. U kunt het voorbeeldarchief (*.zip) downloaden, door de opslagplaats bladeren op GitHub of de opslagplaats klonen:

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

Nadat u het codevoorbeeld hebt verkregen, configureert u het voor uw omgeving en bouwt u het project:

  1. Open het project in Visual Studio of Visual Studio Code.

  2. src/appsettings.json openen.

  3. Vervang in de appSettings sectie door your-b2c-tenant de naam van uw tenant en Application (client) IDClient secret door de waarden voor de registratie van uw beheertoepassing. Zie Een Microsoft Graph-toepassing registreren voor meer informatie.

  4. Open een consolevenster in uw lokale kloon van de opslagplaats, ga naar de src map en bouw vervolgens het project:

    cd src
    dotnet build
    
  5. De toepassing uitvoeren met de opdracht dotnet:

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

In de toepassing wordt een lijst met opdrachten weergegeven die u kunt uitvoeren. Haal bijvoorbeeld alle gebruikers op, haal één gebruiker op, verwijder een gebruiker, werk het wachtwoord van een gebruiker bij en importeer bulksgewijs.

Notitie

Als u de gebruikersaccountwachtwoorden wilt bijwerken, moet u de gebruikersbeheerderrol toewijzen aan de toepassing.

Codediscussie

De voorbeeldcode maakt gebruik van de Microsoft Graph SDK, die is ontworpen om het bouwen van hoogwaardige, efficiënte en tolerante toepassingen die toegang hebben tot Microsoft Graph te vereenvoudigen.

Voor elke aanvraag bij de Microsoft Graph API is een toegangstoken vereist voor verificatie. De oplossing maakt gebruik van het NuGet-pakket Microsoft.Graph.Auth dat een op verificatiescenario's gebaseerde wrapper van de Microsoft Authentication Library (MSAL) biedt voor gebruik met de Microsoft Graph SDK.

De RunAsync methode in het bestand Program.cs :

  1. Hiermee leest u toepassingsinstellingen uit het bestand appsettings.json
  2. Initialiseert de verificatieprovider met behulp van de OAuth 2.0-clientreferentiesstroom . Met de stroom voor het verlenen van clientreferenties kan de app een toegangstoken ophalen om de Microsoft Graph API aan te roepen.
  3. Hiermee stelt u de Microsoft Graph-serviceclient in bij de verificatieprovider:
// 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);

De geïnitialiseerde GraphServiceClient wordt vervolgens gebruikt in UserService.cs om de bewerkingen voor gebruikersbeheer uit te voeren. Bijvoorbeeld het ophalen van een lijst met de gebruikersaccounts in de tenant:

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

API-aanroepen uitvoeren met behulp van de Microsoft Graph SDK's bevat informatie over het lezen en schrijven van gegevens van Microsoft Graph, het gebruik $select om de geretourneerde eigenschappen te beheren, aangepaste queryparameters op te geven en de $filter parameters en $orderBy queryparameters te gebruiken.

Volgende stappen