Hantera Azure AD B2C med Microsoft Graph
Med Microsoft Graph kan du hantera resurser i din Azure AD B2C-katalog. Följande Microsoft Graph API-åtgärder stöds för hantering av Azure AD B2C-resurser, inklusive användare, identitetsprovidrar, användarflöden, anpassade principer och principnycklar. Varje länk i följande avsnitt riktar sig till motsvarande sida i Microsoft Graph API-referensen för den åtgärden.
Kommentar
Du kan också programmatiskt skapa en Azure AD B2C-katalog tillsammans med motsvarande Azure-resurs som är länkad till en Azure-prenumeration. Den här funktionen exponeras inte via Microsoft Graph API, utan via Azure REST API. Mer information finns i B2C-klienter – Skapa.
Titta på den här videon om du vill veta mer om migrering av Azure AD B2C-användare med hjälp av Microsoft Graph API.
Förutsättningar
- Om du vill använda MS Graph API och interagera med resurser i din Azure AD B2C-klientorganisation behöver du en programregistrering som ger behörighet att göra det. Följ stegen i artikeln Registrera ett Microsoft Graph-program för att skapa en programregistrering som ditt hanteringsprogram kan använda.
Användarhantering
Kommentar
Azure AD B2C stöder för närvarande inte avancerade frågefunktioner för katalogobjekt. Det innebär att det inte finns något stöd för $count
, $search
frågeparametrar och Inte (not
), Inte lika med (ne
) och Slutar med (endsWith
) operatorer i $filter
frågeparametern. Mer information finns i frågeparametrar i Microsoft Graph och avancerade frågefunktioner i Microsoft Graph.
- Lista användare
- Skapa en konsumentanvändare
- Hämta en användare
- Uppdatera en användare
- Ta bort en användare
Hantering av användartelefonnummer
Ett telefonnummer som kan användas av en användare för att logga in med SMS - eller röstsamtal eller multifaktorautentisering. Mer information finns i API för Microsoft Entra-autentiseringsmetoder.
Observera att liståtgärden endast returnerar aktiverade telefonnummer. Följande telefonnummer ska vara aktiverat för användning med liståtgärderna.
Kommentar
Ett korrekt representerat telefonnummer lagras med ett utrymme mellan landskoden och telefonnumret. Azure AD B2C-tjänsten lägger för närvarande inte till det här utrymmet som standard.
E-postadress för lösenordsåterställning via självbetjäning
En e-postadress som kan användas av ett inloggningskonto för användarnamn för att återställa lösenordet. Mer information finns i API för Microsoft Entra-autentiseringsmetoder.
Autentiseringsmetod för OATH-token för programvara
En OATH-token för programvara är en programvarubaserad nummergenerator som använder TOTP-standarden (OATH time-based one-time password) för multifaktorautentisering via en autentiseringsapp. Använd Microsoft Graph API för att hantera en OATH-programvarutoken som registrerats för en användare:
Identitetsprovidrar
Hantera identitetsprovidrar som är tillgängliga för dina användarflöden i din Azure AD B2C-klientorganisation.
- Lista identitetsprovidrar som är tillgängliga i Azure AD B2C-klientorganisationen
- Lista identitetsprovidrar som konfigurerats i Azure AD B2C-klientorganisationen
- Skapa en identitetsprovider
- Hämta en identitetsprovider
- Uppdatera identitetsprovider
- Ta bort en identitetsprovider
Användarflöde (beta)
Konfigurera fördefinierade principer för registrering, inloggning, kombinerad registrering och inloggning, lösenordsåterställning och profiluppdatering.
Autentiseringsmetoder för användarflöde (beta)
Välj en mekanism för att låta användare registrera sig via lokala konton. Lokala konton är de konton där Azure AD B2C utför identitetskontrollerna. Mer information finns i resurstypen b2cAuthenticationMethodsPolicy.
Anpassade principer (beta)
Med följande åtgärder kan du hantera dina Azure AD B2C Trust Framework-principer, så kallade anpassade principer.
- Visa en lista över alla principer för förtroenderamverk som konfigurerats i en klientorganisation
- Skapa princip för förtroenderamverk
- Läs egenskaper för en befintlig princip för förtroenderamverk
- Uppdatera eller skapa en princip för förtroenderamverket.
- Ta bort en befintlig princip för förtroenderamverket
Principnycklar (beta)
Identity Experience Framework lagrar hemligheterna som refereras i en anpassad princip för att upprätta förtroende mellan komponenter. Dessa hemligheter kan vara symmetriska eller asymmetriska nycklar/värden. I Azure-portalen visas dessa entiteter som principnycklar.
Resursen på den översta nivån för principnycklar i Microsoft Graph-API:et är den betrodda ramverksnyckeluppsättningen. Varje nyckeluppsättning innehåller minst en nyckel. Skapa en nyckel genom att först skapa en tom nyckeluppsättning och sedan generera en nyckel i nyckeluppsättningen. Du kan skapa en manuell hemlighet, ladda upp ett certifikat eller en PKCS12-nyckel. Nyckeln kan vara en genererad hemlighet, en sträng (till exempel Facebook-programhemligheten) eller ett certifikat som du laddar upp. Om en nyckeluppsättning har flera nycklar är bara en av nycklarna aktiv.
Principnyckeluppsättning för Trust Framework
- Visa en lista över säkerhetsramverksnycklarna
- Skapa en säkerhetsramverksnycklar
- Hämta en nyckeluppsättning
- Uppdatera en säkerhetsramverksnycklar
- Ta bort en säkerhetsramverksnycklar
Principnyckel för Trust Framework
- Hämta aktiv nyckel i nyckeluppsättningen
- Generera en nyckel i nyckeluppsättningen
- Ladda upp en strängbaserad hemlighet
- Ladda upp ett X.509-certifikat
- Ladda upp ett PKCS12-formatcertifikat
Appar
- Visa lista med program
- Skapa ett program
- Uppdatera programmet
- Skapa servicePrincipal
- Skapa oauth2Permission Grant
- Ta bort program
Egenskaper för programtillägg (katalogtillägg)
Egenskaper för programtillägg kallas även för katalog- eller Microsoft Entra-tillägg. Om du vill hantera dem i Azure AD B2C använder du resurstypen identityUserFlowAttribute och dess associerade metoder.
- Skapa användarflödesattribut
- Lista användarflödesattribut
- Hämta ett användarflödesattribut
- Uppdatera ett användarflödesattribut
- Ta bort ett användarflödesattribut
Du kan lagra upp till 100 katalogtilläggsvärden per användare. Om du vill hantera egenskaperna för katalogtillägget för en användare använder du följande användar-API:er i Microsoft Graph.
- Uppdatera användare: Om du vill skriva eller ta bort värdet för egenskapen för katalogtillägget från användarobjektet.
- Hämta en användare: Hämta värdet för katalogtillägget för användaren. Egenskapen returneras som standard via
beta
slutpunkten, men endast på$select
viav1.0
slutpunkten.
För användarflöden hanteras dessa tilläggsegenskaper med hjälp av Azure-portalen. För anpassade principer skapar Azure AD B2C egenskapen åt dig, första gången principen skriver ett värde till tilläggsegenskapen.
Kommentar
I Microsoft Entra-ID hanteras katalogtillägg via resurstypen extensionProperty och dess associerade metoder. Men eftersom de används i B2C via b2c-extensions-app
appen som inte bör uppdateras, hanteras de i Azure AD B2C med resurstypen identityUserFlowAttribute och dess associerade metoder.
Klientorganisationsanvändning
Använd API:et Hämta organisationsinformation för att hämta din katalogstorlekskvot. Du måste lägga till frågeparametern $select
enligt följande HTTP-begäran:
GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota
Ersätt organization-id
med ditt organisations- eller klientorganisations-ID.
Svaret på ovanstående begäran liknar följande JSON-kodfragment:
{
"directorySizeQuota": {
"used": 156,
"total": 1250000
}
}
Granskningsloggar
Mer information om hur du kommer åt Azure AD B2C-granskningsloggar finns i Komma åt Azure AD B2C-granskningsloggar.
Villkorlig åtkomst
- Visa en lista över inbyggda mallar för principscenarier för villkorsstyrd åtkomst
- Visa en lista över alla principer för villkorsstyrd åtkomst
- Läsa egenskaper och relationer för en princip för villkorsstyrd åtkomst
- Skapa en ny princip för villkorsstyrd åtkomst
- Uppdatera en princip för villkorsstyrd åtkomst
- Ta bort en princip för villkorsstyrd åtkomst
Hämta eller återställa borttagna användare och program
Borttagna användare och appar kan bara återställas om de har tagits bort under de senaste 30 dagarna.
- Lista borttagna objekt
- Hämta ett borttaget objekt
- Återställa ett borttaget objekt
- Ta bort ett borttaget objekt permanent
Så här hanterar du Microsoft Graph programmatiskt
När du vill hantera Microsoft Graph kan du antingen göra det som programmet med hjälp av programbehörigheterna eller använda delegerade behörigheter. För delegerade behörigheter godkänner antingen användaren eller en administratör de behörigheter som appen begär. Appen delegeras med behörighet att agera som en inloggad användare vid anrop till målresursen. Programbehörigheter används av appar som inte kräver en inloggad användare som finns och därmed kräver programbehörigheter. Därför kan endast administratörer godkänna programbehörigheter.
Kommentar
Delegerade behörigheter för användare som loggar in via användarflöden eller anpassade principer kan inte användas mot delegerade behörigheter för Microsoft Graph API.
Kodexempel: Hantera användarkonton programmatiskt
Det här kodexemplet är ett .NET Core-konsolprogram som använder Microsoft Graph SDK för att interagera med Microsoft Graph API. Koden visar hur du anropar API:et för att programmatiskt hantera användare i en Azure AD B2C-klientorganisation. Du kan ladda ned exempelarkivet (*.zip), bläddra på lagringsplatsen på GitHub eller klona lagringsplatsen:
git clone https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management.git
När du har fått kodexemplet konfigurerar du det för din miljö och skapar sedan projektet:
Öppna projektet i Visual Studio eller Visual Studio Code.
Öppna
src/appsettings.json
.I avsnittet
appSettings
ersätter duyour-b2c-tenant
med namnet på din klient ochApplication (client) ID
Client secret
med värdena för din registrering av hanteringsprogram. Mer information finns i Registrera ett Microsoft Graph-program.Öppna ett konsolfönster i din lokala klon av lagringsplatsen, växla till
src
katalogen och skapa sedan projektet:cd src dotnet build
Kör programmet med
dotnet
kommandot :dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
Programmet visar en lista över kommandon som du kan köra. Hämta till exempel alla användare, hämta en enskild användare, ta bort en användare, uppdatera en användares lösenord och massimportera.
Kommentar
För att programmet ska kunna uppdatera lösenord för användarkontot måste du ge programmet rollen som användaradministratör .
Koddiskussion
Exempelkoden använder Microsoft Graph SDK, som är utformat för att förenkla skapandet av högkvalitativa, effektiva och motståndskraftiga program som har åtkomst till Microsoft Graph.
Alla förfrågningar till Microsoft Graph API kräver en åtkomsttoken för autentisering. Lösningen använder NuGet-paketet Microsoft.Graph.Auth som tillhandahåller en autentiseringsscenariobaserad omslutning av Microsoft Authentication Library (MSAL) för användning med Microsoft Graph SDK.
Metoden RunAsync
i filen Program.cs :
- Läser programinställningar från filen appsettings.json
- Initierar autentiseringsprovidern med hjälp av beviljandeflödet för OAuth 2.0-klientautentiseringsuppgifter . Med flödet för beviljande av klientautentiseringsuppgifter kan appen hämta en åtkomsttoken för att anropa Microsoft Graph-API:et.
- Konfigurerar Microsoft Graph-tjänstklienten med autentiseringsprovidern:
// 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);
Den initierade GraphServiceClient används sedan i UserService.cs för att utföra användarhanteringsåtgärderna. Du kan till exempel hämta en lista över användarkontona i klientorganisationen:
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();
}
}
Gör API-anrop med hjälp av Microsoft Graph SDK:er innehåller information om hur du läser och skriver information från Microsoft Graph, använder $select
för att styra de egenskaper som returneras, ange anpassade frågeparametrar och använda $filter
frågeparametrarna och $orderBy
.
Nästa steg
- Kodexempel i JavaScript och Node.js finns i: Hantera B2C-användarkonton med MSAL.js och Microsoft Graph SDK
- Utforska Graph Explorer där du kan prova Microsoft Graph-API:er och lära dig mer om dem.