Gestire Azure AD B2C con Microsoft GraphManage Azure AD B2C with Microsoft Graph

Microsoft Graph consente di gestire le risorse nella directory Azure AD B2C directory.Microsoft Graph allows you to manage resources in your Azure AD B2C directory. Le seguenti Microsoft Graph api sono supportate per la gestione delle risorse Azure AD B2C, tra cui utenti, provider di identità, flussi utente, criteri personalizzati e chiavi dei criteri.The following Microsoft Graph API operations are supported for the management of Azure AD B2C resources, including users, identity providers, user flows, custom policies, and policy keys. Ogni collegamento nelle sezioni seguenti ha come destinazione la pagina corrispondente all'interno Microsoft Graph informazioni di riferimento sull'API per tale operazione.Each link in the following sections targets the corresponding page within the Microsoft Graph API reference for that operation.

PrerequisitiPrerequisites

Per usare MS API Graph e interagire con le risorse nel tenant di Azure AD B2C, è necessaria una registrazione dell'applicazione che concedi le autorizzazioni a tale scopo.To use MS Graph API, and interact with resources in your Azure AD B2C tenant, you need an application registration that grants the permissions to do so. Seguire la procedura descritta nell'articolo Gestire Azure AD B2C con Microsoft Graph per creare una registrazione dell'applicazione che può essere utilizzata dall'applicazione di gestione.Follow the steps in the Manage Azure AD B2C with Microsoft Graph article to create an application registration that your management application can use.

Gestione degli utentiUser management

Gestione dei numeri di telefono degli utenti (beta)User phone number management (beta)

Numero di telefono che può essere usato da un utente per accedere usando SMS o chiamatevocali o l'autenticazione a più fattori.A phone number that can be used by a user to sign-in using SMS or voice calls, or multi-factor authentication. Per altre informazioni, vedere API Azure AD metodi di autenticazione.For more information, see Azure AD authentication methods API.

Si noti che l'operazione di elenco restituisce solo i numeri di telefono abilitati.Note, the list operation returns only enabled phone numbers. Il numero di telefono seguente deve essere abilitato per l'uso con le operazioni di elenco.The following phone number should be enabled to use with the list operations.

Abilitare l'accesso tramite telefono

Nota

Nella versione beta corrente questa API funziona solo se il numero di telefono viene archiviato con uno spazio tra il codice paese e il numero di telefono.In the current beta version, this API works only if the phone number is stored with a space between the country code and the phone number. Il Azure AD B2C non aggiunge attualmente questo spazio per impostazione predefinita.The Azure AD B2C service doesn't currently add this space by default.

Indirizzo di posta elettronica per la reimpostazione della password self-service (beta)Self-service password reset email address (beta)

Indirizzo di posta elettronica che può essere usato da un account di accesso con nome utente per reimpostare la password.An email address that can be used by a username sign-in account to reset the password. Per altre informazioni, vedere l'API Azure AD metodi di autenticazione.For more information, see Azure AD authentication methods API.

Provider di identitàIdentity providers

Gestire i provider di identità disponibili per i flussi utente nel tenant Azure AD B2C servizio.Manage the identity providers available to your user flows in your Azure AD B2C tenant.

Flusso utenteUser flow

Configurare criteri predefiniti per l'iscrizione, l'accesso, l'iscrizione combinata e l'accesso, la reimpostazione della password e l'aggiornamento del profilo.Configure pre-built policies for sign-up, sign-in, combined sign-up and sign-in, password reset, and profile update.

Metodi di autenticazione del flusso utente (beta)User flow authentication methods (beta)

Scegliere un meccanismo per consentire agli utenti di eseguire la registrazione tramite account locali.Choose a mechanism for letting users register via local accounts. Gli account locali sono gli account in cui Azure AD l'asserzione di identità.Local accounts are the accounts where Azure AD does the identity assertion. Per altre informazioni, vedere b2cAuthenticationMethodsPolicy resource type ( Tipo di risorsa b2cAuthenticationMethodsPolicy).For more information, see b2cAuthenticationMethodsPolicy resource type.

Criteri personalizzatiCustom policies

Le operazioni seguenti consentono di gestire i criteri Azure AD B2C Trust Framework, noti come criteri personalizzati.The following operations allow you to manage your Azure AD B2C Trust Framework policies, known as custom policies.

Chiavi dei criteriPolicy keys

Il Identity Experience Framework archivia i segreti a cui viene fatto riferimento in un criterio personalizzato per stabilire una relazione di trust tra i componenti.The Identity Experience Framework stores the secrets referenced in a custom policy to establish trust between components. Questi segreti possono essere chiavi/valori simmetrici o asimmetrici.These secrets can be symmetric or asymmetric keys/values. Nell'portale di Azure queste entità vengono visualizzate come chiavi dei criteri.In the Azure portal, these entities are shown as Policy keys.

La risorsa di primo livello per le chiavi dei criteri nell'API Microsoft Graph è il set di chiavi del framework attendibile.The top-level resource for policy keys in the Microsoft Graph API is the Trusted Framework Keyset. Ogni keyset contiene almeno una chiave.Each Keyset contains at least one Key. Per creare una chiave, creare prima un keyset vuoto e quindi generare una chiave nel keyset.To create a key, first create an empty keyset, and then generate a key in the keyset. È possibile creare un segreto manuale, caricare un certificato o una chiave PKCS12.You can create a manual secret, upload a certificate, or a PKCS12 key. La chiave può essere un segreto generato, una stringa (ad esempio il segreto dell'applicazione Facebook) o un certificato caricato.The key can be a generated secret, a string (such as the Facebook application secret), or a certificate you upload. Se un keyset ha più chiavi, solo una delle chiavi è attiva.If a keyset has multiple keys, only one of the keys is active.

Set di chiavi dei criteri di Trust FrameworkTrust Framework policy keyset

Chiave dei criteri di Trust FrameworkTrust Framework policy key

ApplicazioniApplications

Proprietà dell'estensione dell'applicazioneApplication extension properties

Azure AD B2C fornisce una directory che può contenere 100 attributi personalizzati per utente.Azure AD B2C provides a directory that can hold 100 custom attributes per user. Per i flussi utente, queste proprietà di estensione vengono gestite tramite l'portale di Azure.For user flows, these extension properties are managed by using the Azure portal. Per i criteri personalizzati, Azure AD B2C la proprietà automaticamente, la prima volta che il criterio scrive un valore nella proprietà di estensione.For custom policies, Azure AD B2C creates the property for you, the first time the policy writes a value to the extension property.

Log di controlloAudit logs

Per altre informazioni sull'accesso Azure AD B2C log di controllo, vedere Accesso Azure AD B2C log di controllo.For more information about accessing Azure AD B2C audit logs, see Accessing Azure AD B2C audit logs.

Accesso condizionaleConditional Access

Esempio di codice: Come gestire gli account utente a livello di codiceCode sample: How to programmatically manage user accounts

Questo esempio di codice è un'applicazione console .NET Core che usa Microsoft Graph SDK per interagire con l Microsoft Graph API.This code sample is a .NET Core console application that uses the Microsoft Graph SDK to interact with Microsoft Graph API. Il codice illustra come chiamare l'API per gestire a livello di codice gli utenti in Azure AD B2C tenant.Its code demonstrates how to call the API to programmatically manage users in an Azure AD B2C tenant. È possibile scaricare l'archivio di esempio (*.zip), esplorare il repository in GitHub o clonare il repository:You can download the sample archive (*.zip), browse the repository on GitHub, or clone the repository:

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

Dopo aver ottenuto l'esempio di codice, configurarlo per l'ambiente e quindi compilare il progetto:After you've obtained the code sample, configure it for your environment and then build the project:

  1. Aprire il progetto in Visual Studio o Visual Studio Code.Open the project in Visual Studio or Visual Studio Code.

  2. Aprire src/appsettings.json.Open src/appsettings.json.

  3. Nella sezione sostituire con il nome del tenant e e con i valori per la registrazione appSettings your-b2c-tenant Application (client) ID Client secret dell'applicazione di gestione.In the appSettings section, replace your-b2c-tenant with the name of your tenant, and Application (client) ID and Client secret with the values for your management application registration. Per altre informazioni, vedere Register a Microsoft Graph Application.For more information, see Register a Microsoft Graph Application.

  4. Aprire una finestra della console all'interno del clone locale del repo, passare alla src directory e quindi compilare il progetto:Open a console window within your local clone of the repo, switch into the src directory, then build the project:

    cd src
    dotnet build
    
  5. Eseguire l'applicazione con il comando dotnet:Run the application with the dotnet command:

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

L'applicazione visualizza un elenco di comandi che è possibile eseguire.The application displays a list of commands you can execute. Ad esempio, ottenere tutti gli utenti, ottenere un singolo utente, eliminare un utente, aggiornare la password di un utente e importare in blocco.For example, get all users, get a single user, delete a user, update a user's password, and bulk import.

Discussione sul codiceCode discussion

Il codice di esempio usa Microsoft Graph SDK, progettato per semplificare la creazione di applicazioni di alta qualità, efficienti e resilienti che accedono Microsoft Graph.The sample code uses the Microsoft Graph SDK, which is designed to simplify building high-quality, efficient, and resilient applications that access Microsoft Graph.

Qualsiasi richiesta all'API Microsoft Graph richiede un token di accesso per l'autenticazione.Any request to the Microsoft Graph API requires an access token for authentication. La soluzione usa il pacchetto NuGet Microsoft.Graph.Auth che fornisce un wrapper basato su scenari di autenticazione di Microsoft Authentication Library (MSAL) per l'uso con Microsoft Graph SDK.The solution makes use of the Microsoft.Graph.Auth NuGet package that provides an authentication scenario-based wrapper of the Microsoft Authentication Library (MSAL) for use with the Microsoft Graph SDK.

Il RunAsync metodo nel file Program.cs:The RunAsync method in the Program.cs file:

  1. Legge le impostazioni dell'applicazione dalappsettings.jsnel fileReads application settings from the appsettings.json file

  2. Inizializza il provider di autenticazione usando il flusso di concessione delle credenziali client OAuth 2.0.Initializes the auth provider using OAuth 2.0 client credentials grant flow. Con il flusso di concessione delle credenziali client, l'app è in grado di ottenere un token di accesso per chiamare l Microsoft Graph API.With the client credentials grant flow, the app is able to get an access token to call the Microsoft Graph API.

  3. Configura il client Microsoft Graph servizio di autenticazione con il provider di autenticazione:Sets up the Microsoft Graph service client with the auth provider:

    // Read application settings from appsettings.json (tenant ID, app ID, client secret, etc.)
    AppSettings config = AppSettingsFile.ReadFromJsonFile();
    
    // Initialize the client credential auth provider
    IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
        .Create(config.AppId)
        .WithTenantId(config.TenantId)
        .WithClientSecret(config.ClientSecret)
        .Build();
    ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);
    
    // Set up the Microsoft Graph service client with client credentials
    GraphServiceClient graphClient = new GraphServiceClient(authProvider);
    

GraphServiceClient inizializzato viene quindi usato in UserService.cs per eseguire le operazioni di gestione degli utenti.The initialized GraphServiceClient is then used in UserService.cs to perform the user management operations. Ad esempio, ottenere un elenco degli account utente nel tenant:For example, getting a list of the user accounts in the tenant:

public static async Task ListUsers(GraphServiceClient graphClient)
{
    Console.WriteLine("Getting list of users...");

    // Get all users (one page)
    var result = await graphClient.Users
        .Request()
        .Select(e => new
        {
            e.DisplayName,
            e.Id,
            e.Identities
        })
        .GetAsync();

    foreach (var user in result.CurrentPage)
    {
        Console.WriteLine(JsonConvert.SerializeObject(user));
    }
}

Effettuare chiamate API usando gli SDK Microsoft Graph include informazioni su come leggere e scrivere informazioni da Microsoft Graph, usare per controllare le proprietà restituite, fornire parametri di query personalizzati e usare i parametri di query e $select $filter $orderBy .Make API calls using the Microsoft Graph SDKs includes information on how to read and write information from Microsoft Graph, use $select to control the properties returned, provide custom query parameters, and use the $filter and $orderBy query parameters.