Gestire Azure AD B2C con Microsoft Graph
Microsoft Graph consente di gestire le risorse nella directory di Azure AD B2C. Le operazioni seguenti dell'API Microsoft Graph sono supportate per la gestione delle risorse di Azure AD B2C, inclusi utenti, provider di identità, flussi utente, criteri personalizzati e chiavi dei criteri. Ogni collegamento nelle sezioni seguenti è destinato alla pagina corrispondente all'interno delle informazioni di riferimento sull'API Microsoft Graph per tale operazione.
Nota
È anche possibile creare una directory di Azure AD B2C a livello di codice, insieme alla risorsa di Azure corrispondente collegata a una sottoscrizione di Azure. Questa funzionalità non viene esposta tramite l'API Microsoft Graph, ma tramite l'API REST di Azure. Per altre informazioni, vedere Tenant B2C - Creare.
Guardare questo video per informazioni sulla migrazione degli utenti di Azure AD B2C tramite l'API Microsoft Graph.
Prerequisiti
- Per usare l'API Microsoft Graph e interagire con le risorse nel tenant di Azure AD B2C, è necessaria una registrazione dell'applicazione che concede le autorizzazioni a tale scopo. Seguire la procedura descritta nell'articolo Registrare un'applicazione Microsoft Graph per creare una registrazione dell'applicazione che può essere usata dall'applicazione di gestione.
Gestione utente
Nota
Azure AD B2C attualmente non supporta funzionalità di query avanzate sugli oggetti directory. Ciò significa che non è disponibile alcun supporto per $count
, $search
i parametri di query e Not (not
), Non è uguale a (ne
) e termina con gli operatori (endsWith
) nel $filter
parametro di query. Per altre informazioni, vedere Parametri di query in Microsoft Graph e funzionalità di query avanzate in Microsoft Graph.
- Elencare gli utenti
- Creare un utente consumer
- Ottenere un utente
- Aggiornare un utente
- Eliminare un utente
Gestione dei numeri di telefono utente
Numero di telefono che può essere usato da un utente per accedere tramite SMS o chiamate vocali o l'autenticazione a più fattori. Per altre informazioni, vedere API dei metodi di autenticazione di Microsoft Entra.
Nota, l'operazione di elenco restituisce solo numeri di telefono abilitati. Il numero di telefono seguente deve essere abilitato per l'uso con le operazioni di elenco.
Nota
Un numero di telefono rappresentato correttamente viene archiviato con uno spazio tra il codice paese e il numero di telefono. Il servizio Azure AD B2C attualmente non aggiunge questo spazio per impostazione predefinita.
Indirizzo di posta elettronica per la reimpostazione della password self-service
Indirizzo di posta elettronica che può essere usato da un account di accesso con nome utente per reimpostare la password. Per altre informazioni, vedere API dei metodi di autenticazione di Microsoft Entra.
Metodo di autenticazione token OATH software
Un token OATH software è un generatore di numeri basato su software che usa lo standard OATH basato su password monouso (TOTP) per l'autenticazione a più fattori tramite un'app di autenticazione. Usare l'API Microsoft Graph per gestire un token OATH software registrato a un utente:
Provider di identità
Gestire i provider di identità disponibili per i flussi utente nel tenant di Azure AD B2C.
- Elencare i provider di identità disponibili nel tenant di Azure AD B2C
- Elencare i provider di identità configurati nel tenant di Azure AD B2C
- Creare un provider di identità
- Ottenere un provider di identità
- Aggiornare il provider di identità
- Eliminare un provider di identità
Flusso utente (beta)
Configurare criteri predefiniti per l'iscrizione, l'accesso, l'iscrizione combinata e l'accesso, la reimpostazione della password e l'aggiornamento del profilo.
- Elencare i flussi utente
- Creare un flusso utente
- Ottenere un flusso utente
- Eliminare un flusso utente
Metodi di autenticazione del flusso utente (beta)
Scegliere un meccanismo per consentire agli utenti di registrarsi tramite account locali. Gli account locali sono gli account in cui Azure AD B2C esegue l'asserzione di identità. Per altre informazioni, vedere b2cAuthenticationMethodsPolicy resource type (Tipo di risorsa b2cAuthenticationMethodsPolicy).
Criteri personalizzati (beta)
Le operazioni seguenti consentono di gestire i criteri di Azure AD B2C Trust Framework, noti come criteri personalizzati.
- Elencare tutti i criteri del framework di attendibilità configurati in un tenant
- Creare criteri del framework di attendibilità
- Leggere le proprietà di un criterio framework di attendibilità esistente
- Aggiornare o creare criteri del framework di attendibilità.
- Eliminare un criterio framework di attendibilità esistente
Chiavi dei criteri (beta)
Il framework dell'esperienza di gestione delle identità archivia i segreti a cui si fa riferimento in un criterio personalizzato per stabilire un trust tra i componenti. Questi segreti possono essere chiavi/valori simmetrici o asimmetrici. Nella portale di Azure queste entità vengono visualizzate come chiavi dei criteri.
La risorsa di primo livello per le chiavi dei criteri nell'API Microsoft Graph è il Keyset framework attendibile. Ogni keyset contiene almeno una chiave. Per creare una chiave, creare prima un keyset vuoto e quindi generare una chiave nel keyset. È possibile creare un segreto manuale, caricare un certificato o una chiave PKCS12. La chiave può essere un segreto generato, una stringa (ad esempio il segreto dell'applicazione Facebook) o un certificato caricato. Se un keyset ha più chiavi, solo una delle chiavi è attiva.
Set di chiavi dei criteri trust framework
- Elencare i set di chiavi del framework di attendibilità
- Creare set di chiavi del framework di attendibilità
- Ottenere un keyset
- Aggiornare i set di chiavi del framework di attendibilità
- Eliminare set di chiavi del framework di attendibilità
Chiave dei criteri trust framework
- Ottenere la chiave attualmente attiva nel keyset
- Generare una chiave nel keyset
- Caricare un segreto basato su stringa
- Caricare un certificato X.509
- Caricare un certificato di formato PKCS12
Applicazioni
- Elenco applicazioni
- Creare un'applicazione
- Update application
- Creare servicePrincipal
- Creare oauth2Permission Grant
- Eliminare l'applicazione
Proprietà dell'estensione dell'applicazione (estensione della directory)
Le proprietà dell'estensione dell'applicazione sono note anche come estensioni directory o Microsoft Entra. Per gestirli in Azure AD B2C, usare il tipo di risorsa identityUserFlowAttribute e i relativi metodi associati.
- Creare l'attributo del flusso utente
- Elencare gli attributi del flusso utente
- Ottenere un attributo del flusso utente
- Aggiornare un attributo del flusso utente
- Eliminare un attributo del flusso utente
È possibile archiviare fino a 100 valori di estensione della directory per utente. Per gestire le proprietà dell'estensione della directory per un utente, usare le API utente seguenti in Microsoft Graph.
- Aggiornare l'utente: per scrivere o rimuovere il valore della proprietà dell'estensione della directory dall'oggetto utente.
- Ottenere un utente: per recuperare il valore dell'estensione della directory per l'utente. La proprietà verrà restituita per impostazione predefinita tramite l'endpoint
beta
, ma solo su$select
tramite l'endpointv1.0
.
Per i flussi utente, queste proprietà di estensione vengono gestite usando il portale di Azure. Per i criteri personalizzati, Azure AD B2C crea automaticamente la proprietà , la prima volta che il criterio scrive un valore nella proprietà dell'estensione.
Nota
In Microsoft Entra ID le estensioni della directory vengono gestite tramite il tipo di risorsa extensionProperty e i relativi metodi associati. Tuttavia, poiché vengono usati in B2C tramite l'app b2c-extensions-app
che non deve essere aggiornata, vengono gestiti in Azure AD B2C usando il tipo di risorsa identityUserFlowAttribute e i relativi metodi associati.
Utilizzo del tenant
Usare l'API Ottenere i dettagli dell'organizzazione per ottenere la quota delle dimensioni della directory. È necessario aggiungere il $select
parametro di query come illustrato nella richiesta HTTP seguente:
GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota
Sostituire organization-id
con l'organizzazione o l'ID tenant.
La risposta alla richiesta precedente è simile al frammento JSON seguente:
{
"directorySizeQuota": {
"used": 156,
"total": 1250000
}
}
Log di audit
Per altre informazioni sull'accesso ai log di controllo di Azure AD B2C, vedere Accesso ai log di controllo di Azure AD B2C.
Accesso condizionale
- Elencare i modelli predefiniti per gli scenari dei criteri di accesso condizionale
- Elencare tutti i criteri di accesso condizionale
- Leggere le proprietà e le relazioni di un criterio di accesso condizionale
- Creare un nuovo criterio di accesso condizionale
- Aggiornare un criterio di accesso condizionale
- Eliminare un criterio di accesso condizionale
Recuperare o ripristinare utenti e applicazioni eliminati
Gli utenti e le app eliminati possono essere ripristinati solo se sono stati eliminati negli ultimi 30 giorni.
- Elencare gli elementi eliminati
- Ottenere un elemento eliminato
- Ripristinare un elemento eliminato
- Eliminare definitivamente un elemento eliminato
Come gestire Microsoft Graph a livello di codice
Quando si vuole gestire Microsoft Graph, è possibile farlo come applicazione usando le autorizzazioni dell'applicazione oppure è possibile usare le autorizzazioni delegate. Per le autorizzazioni delegate, l'utente o un amministratore acconsente alle autorizzazioni richieste dall'app. L'app viene delegata con l'autorizzazione ad agire come utente connesso quando effettua chiamate alla risorsa di destinazione. Le autorizzazioni dell'applicazione vengono usate dalle app che non richiedono un utente connesso presente e richiedono quindi le autorizzazioni dell'applicazione. Per questo motivo, solo gli amministratori possono fornire il consenso alle autorizzazioni dell'applicazione.
Nota
Le autorizzazioni delegate per gli utenti che accedono tramite flussi utente o criteri personalizzati non possono essere usate per le autorizzazioni delegate per l'API Microsoft Graph.
Esempio di codice: Come gestire gli account utente a livello di codice
Questo esempio di codice è un'applicazione console .NET Core che usa Microsoft Graph SDK per interagire con l'API Microsoft Graph. Il codice illustra come chiamare l'API per gestire gli utenti a livello di codice in un tenant di Azure AD B2C. È possibile scaricare l'archivio di esempio (*.zip), esplorare il repository in GitHub o clonare il 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:
Aprire il progetto in Visual Studio o Visual Studio Code.
src/appsettings.json
aperti.appSettings
Nella sezione sostituireyour-b2c-tenant
con il nome del tenant eApplication (client) ID
Client secret
con i valori per la registrazione dell'applicazione di gestione. Per altre informazioni, vedere Registrare un'applicazione Microsoft Graph.Aprire una finestra della console all'interno del clone locale del repository, passare alla
src
directory e quindi compilare il progetto:cd src dotnet build
Eseguire l'applicazione con il comando
dotnet
:dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
L'applicazione visualizza un elenco di comandi che è possibile eseguire. Ad esempio, ottenere tutti gli utenti, ottenere un singolo utente, eliminare un utente, aggiornare la password di un utente e importare in blocco.
Nota
Affinché l'applicazione aggiorni le password dell'account utente, è necessario concedere il ruolo di amministratore utente all'applicazione.
Discussione sul codice
Il codice di esempio usa Microsoft Graph SDK, progettato per semplificare la creazione di applicazioni di alta qualità, efficienti e resilienti che accedono a Microsoft Graph.
Qualsiasi richiesta all'API Microsoft Graph richiede un token di accesso per l'autenticazione. La soluzione usa il pacchetto NuGet Microsoft.Graph.Auth che fornisce un wrapper basato su scenari di autenticazione di Microsoft Authentication Library (MSAL) da usare con Microsoft Graph SDK.
Metodo RunAsync
nel file Program.cs :
- Legge le impostazioni dell'applicazione dal file appsettings.json
- Inizializza il provider di autenticazione usando il flusso di concessione delle credenziali client OAuth 2.0. Con il flusso di concessione delle credenziali client, l'app è in grado di ottenere un token di accesso per chiamare l'API Microsoft Graph.
- Configura il client del servizio Microsoft Graph con il provider di autenticazione:
// 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);
GraphServiceClient inizializzato viene quindi usato in UserService.cs per eseguire le operazioni di gestione degli utenti. Ad esempio, ottenere un elenco degli account utente nel 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();
}
}
Effettuare chiamate API usando gli SDK di Microsoft Graph include informazioni su come leggere e scrivere informazioni da Microsoft Graph, usare $select
per controllare le proprietà restituite, fornire parametri di query personalizzati e usare i $filter
parametri di query e $orderBy
.
Passaggi successivi
- Per esempi di codice in JavaScript e Node.js, vedere Gestire gli account utente B2C con MSAL.js e Microsoft Graph SDK
- Esplorare Graph Explorer che consente di provare le API Microsoft Graph e di ottenere informazioni su di essi.