Azure AD B2C: De Azure AD Graph API gebruikenAzure AD B2C: Use the Azure AD Graph API

Azure Active Directory B2C (Azure AD B2C)-tenants kunnen duizenden of miljoenen gebruikers hebben.Azure Active Directory B2C (Azure AD B2C) tenants can have thousands or millions of users. Dit betekent dat veel veelvoorkomende Tenant beheer taken programmatisch moeten worden uitgevoerd.This means that many common tenant management tasks need to be performed programmatically. Een goed voorbeeld is gebruikersbeheer.A primary example is user management.

Mogelijk moet u een bestaande gebruikers opslag migreren naar een B2C-Tenant.You might need to migrate an existing user store to a B2C tenant. Of u wilt op de achtergrond gebruikersregistratie op uw eigen pagina hosten en gebruikersaccounts maken in uw Azure AD B2C-adreslijst.You may want to host user registration on your own page and create user accounts in your Azure AD B2C directory behind the scenes. Voor dit soort taken moeten gebruikers accounts kunnen worden gemaakt, gelezen, bijgewerkt en verwijderd.These kinds of tasks require the ability to create, read, update, and delete user accounts. U kunt dergelijke taken uitvoeren met behulp van de Azure AD-Graph API.You can perform such tasks by using the Azure AD Graph API.

Voor B2C-tenants zijn er twee primaire modi om te communiceren met de Graph API:For B2C tenants, there are two primary modes of communicating with the Graph API:

  • Voor interactieve, eenmalige taken moet u als Administrator account in de B2C-Tenant fungeren wanneer u de taken uitvoert.For interactive, run-once tasks, you should act as an administrator account in the B2C tenant when you perform the tasks. In deze modus moet een beheerder zich aanmelden met referenties voordat de beheerder aanroepen naar de Graph API kan uitvoeren.This mode requires an administrator to sign in with credentials before that admin can perform any calls to the Graph API.
  • Voor geautomatiseerde, doorlopende taken moet u een type service account gebruiken dat u opgeeft met de benodigde bevoegdheden voor het uitvoeren van beheer taken.For automated, continuous tasks, you should use some type of service account that you provide with the necessary privileges to perform management tasks. In azure AD kunt u dit doen door een toepassing te registreren en te verifiëren bij Azure AD.In Azure AD, you can do this by registering an application and authenticating to Azure AD. Dit wordt gedaan met behulp van een toepassings-id die gebruikmaakt van de OAuth 2,0-client referenties toewijzen.This is done by using an Application ID that uses the OAuth 2.0 client credentials grant. In dit geval fungeert de toepassing als zichzelf, niet als gebruiker, om de Graph API aan te roepen.In this case, the application acts as itself, not as a user, to call the Graph API.

In dit artikel leert u hoe u de geautomatiseerde use-case uitvoert.In this article, you learn how to perform the automated use case. U maakt een .net 4,5 B2CGraphClient waarmee gebruikers ruwe, voor het maken, lezen, bijwerken en verwijderen van bewerkingen worden uitgevoerd.You'll build a .NET 4.5 B2CGraphClient that performs user create, read, update, and delete (CRUD) operations. De client heeft een Windows-opdracht regel interface (CLI) waarmee u verschillende methoden kunt aanroepen.The client will have a Windows command-line interface (CLI) that allows you to invoke various methods. De code wordt echter geschreven zodat deze zich op een niet-interactieve, geautomatiseerde manier bevindt.However, the code is written to behave in a non-interactive, automated fashion.

Belangrijk

U moet de Azure AD-Graph API gebruiken om gebruikers in een Azure AD B2C Directory te beheren.You must use the Azure AD Graph API to manage users in an Azure AD B2C directory. De Azure AD-Graph API wijkt af van de Microsoft Graph-API.The Azure AD Graph API is different from the Microsoft Graph API. Meer informatie vindt u in dit MSDN-blog bericht: Microsoft Graph of Azure AD Graph.Learn more in this MSDN blog post: Microsoft Graph or Azure AD Graph.

VereistenPrerequisites

Voordat u toepassingen of gebruikers kunt maken, hebt u een Azure AD B2C-Tenant nodig.Before you can create applications or users, you need an Azure AD B2C tenant. Als u er nog geen hebt, maakt u een Azure Active Directory B2C-Tenant.If you don't already have one, Create an Azure Active Directory B2C tenant.

Een toepassing registrerenRegister an application

Zodra u een Azure AD B2C Tenant hebt, moet u uw beheer toepassing registreren met behulp van de Azure Portal.Once you have an Azure AD B2C tenant, you need to register your management application by using the Azure portal. U moet deze ook de machtigingen verlenen die nodig zijn voor het uitvoeren van beheer taken namens uw geautomatiseerde script-of beheer toepassing.You also need to grant it the permissions required for performing management tasks on behalf of your automated script or management application.

Toepassing registreren in Azure Active DirectoryRegister application in Azure Active Directory

Als u de Azure AD-Graph API wilt gebruiken met uw B2C-Tenant, moet u een toepassing registreren met behulp van de Azure Active Directory registratie werk stroom van de toepassing.To use the Azure AD Graph API with your B2C tenant, you need to register an application by using the Azure Active Directory application registration workflow.

  1. Meld u aan bij Azure Portal.Sign in to the Azure portal.
  2. Selecteer het filter Directory + abonnement in het bovenste menu en selecteer vervolgens de map die uw Azure AD B2C Tenant bevat.Select the Directory + subscription filter in the top menu, and then select the directory that contains your Azure AD B2C tenant.
  3. Selecteer Azure Active Directory (niet Azure AD B2C) in het menu links.In the left menu, select Azure Active Directory (not Azure AD B2C). U kunt ook alle services selecteren en vervolgens zoeken naar en Azure Active Directoryselecteren.Or, select All services and then search for and select Azure Active Directory.
  4. Selecteer onder beherende optie app-registraties (verouderd) .Under Manage, select App registrations (Legacy).
  5. Selecteer Nieuwe toepassing registreren.Select New application registration.
  6. Voer een naam in voor de toepassing.Enter a name for the application. Bijvoorbeeld managementapp1.For example, managementapp1.
  7. Selecteer Web-app/APIvoor het toepassings type.For Application type, select Web app / API.
  8. Voer een geldige URL in voor de aanmeldings-URL.Enter any valid URL in Sign-on URL. Bijvoorbeeld https://localhost.For example, https://localhost. Het eind punt hoeft niet bereikbaar te zijn, maar moet een geldige URL zijn.The endpoint doesn't need to be reachable, but must be a valid URL.
  9. Selecteer Maken.Select Create.
  10. Noteer de toepassings-id die wordt weer gegeven op de overzichts pagina van de geregistreerde app .Record the Application ID that appears on the Registered app overview page. U gebruikt deze waarde in een latere stap.You use this value in a later step.

API-toegangs machtigingen toewijzenAssign API access permissions

  1. Op de overzichts pagina van de geregistreerde app selecteert u instellingen.On the Registered app overview page, select Settings.
  2. Selecteer onder API-toegangde optie vereiste machtigingen.Under API ACCESS, select Required permissions.
  3. Selecteer Windows Azure Active Directory.Select Windows Azure Active Directory.
  4. Selecteer onder toepassings machtigingende optie lezen en Directory gegevens schrijven.Under APPLICATION PERMISSIONS, select Read and write directory data.
  5. Selecteer Opslaan.Select Save.
  6. Selecteer machtigingen verlenen, en selecteer vervolgens Ja.Select Grant permissions, and then select Yes. Het kan enkele minuten duren voordat de machtigingen volledig zijn door gegeven.It might take a few minutes to for the permissions to fully propagate.

Client geheim makenCreate client secret

  1. Selecteer onder API-toegangde optie sleutels.Under API ACCESS, select Keys.
  2. Voer een beschrijving in voor de sleutel in het vak sleutel beschrijving .Enter a description for the key in the Key description box. Bijvoorbeeld beheer sleutel.For example, Management Key.
  3. Selecteer een duur geldigheid en selecteer vervolgens Opslaan.Select a validity Duration and then select Save.
  4. Noteer de waardevan de sleutel.Record the key's VALUE. U gebruikt deze waarde voor configuratie in een latere stap.You use this value for configuration in a later step.

U hebt nu een toepassing die toestemming heeft om gebruikers in uw Azure AD B2C-Tenant te maken, te lezenen bij te werken .You now have an application that has permission to create, read, and update users in your Azure AD B2C tenant. Ga verder met de volgende sectie om machtigingen voor het verwijderen van gebruikers en het bijwerken van wacht woorden toe te voegen.Continue to the next section to add user delete and password update permissions.

Machtigingen voor het verwijderen van gebruikers en het bijwerken van wacht woorden toevoegenAdd user delete and password update permissions

De machtiging voor het lezen en schrijven van Directory gegevens die u eerder hebt verleend, omvat niet de mogelijkheid om gebruikers te verwijderen of hun wacht woord bij te werken.The Read and write directory data permission that you granted earlier does NOT include the ability to delete users or update their passwords.

Als u uw toepassing de mogelijkheid wilt geven om gebruikers te verwijderen of wacht woorden bij te werken, moet u de gebruiker de rol van de beheerder verlenen.If you want to give your application the ability to delete users or update passwords, you need to grant it the User administrator role.

  1. Meld u aan bij de Azure Portal en ga naar de map met uw Azure AD B2C Tenant.Sign in to the Azure portal and switch to the directory that contains your Azure AD B2C tenant.
  2. Selecteer Azure AD B2C in het menu links.Select Azure AD B2C in the left menu. U kunt ook alle services selecteren en vervolgens zoeken naar en Azure AD B2Cselecteren.Or, select All services and then search for and select Azure AD B2C.
  3. Selecteer onder beherende optie rollen en beheerders.Under Manage, select Roles and administrators.
  4. Selecteer de rol gebruikers beheerder .Select the User administrator role.
  5. Selecteer toewijzing toevoegen.Select Add assignment.
  6. Voer in het tekstvak selecteren de naam in van de toepassing die u eerder hebt geregistreerd, bijvoorbeeld managementapp1.In the Select text box, enter the name of the application you registered earlier, for example, managementapp1. Selecteer uw toepassing als deze wordt weer gegeven in de zoek resultaten.Select your application when it appears in the search results.
  7. Selecteer Toevoegen.Select Add. Het kan enkele minuten duren voordat de machtigingen volledig zijn door gegeven.It might take a few minutes to for the permissions to fully propagate.

Uw Azure AD B2C-toepassing heeft nu de extra machtigingen die vereist zijn om gebruikers te verwijderen of hun wacht woord bij te werken in uw B2C-Tenant.Your Azure AD B2C application now has the additional permissions required to delete users or update their passwords in your B2C tenant.

De voorbeeldcode halenGet the sample code

Het code voorbeeld is een .NET-console toepassing die gebruikmaakt van de Active Directory Authentication Library (ADAL) om te communiceren met Azure AD-Graph API.The code sample is a .NET console application that uses the Active Directory Authentication Library (ADAL) to interact with Azure AD Graph API. De code laat zien hoe u de API aanroept om gebruikers programmatisch te beheren in een Azure AD B2C-Tenant.Its code demonstrates how to call the API to programmatically manage users in an Azure AD B2C tenant.

U kunt het voorbeeld archief (*. zip) downloaden of de GitHub-opslag plaats klonen:You can download the sample archive (*.zip) or clone the GitHub repository:

git clone https://github.com/AzureADQuickStarts/B2C-GraphAPI-DotNet.git

Nadat u het code voorbeeld hebt verkregen, configureert u dit voor uw omgeving en bouwt u vervolgens het project:After you've obtained the code sample, configure it for your environment and then build the project:

  1. Open de oplossing B2CGraphClient\B2CGraphClient.sln in Visual Studio.Open the B2CGraphClient\B2CGraphClient.sln solution in Visual Studio.

  2. Open het bestand app. config in het project B2CGraphClient .In the B2CGraphClient project, open the App.config file.

  3. Vervang de <appSettings> sectie door de volgende XML-code.Replace the <appSettings> section with the following XML. Vervang {your-b2c-tenant} vervolgens door de naam van uw Tenant en {Application ID} en {Client secret} met de waarden die u eerder hebt vastgelegd.Then replace {your-b2c-tenant} with the name of your tenant, and {Application ID} and {Client secret} with the values you recorded earlier.

    <appSettings>
        <add key="b2c:Tenant" value="{your-b2c-tenant}.onmicrosoft.com" />
        <add key="b2c:ClientId" value="{Application ID}" />
        <add key="b2c:ClientSecret" value="{Client secret}" />
    </appSettings>
    
  4. Bouw de oplossing.Build the solution. Klik met de rechter muisknop op de B2CGraphClient -oplossing in de Solution Explorer en selecteer vervolgens oplossing opnieuw bouwen.Right-click on the B2CGraphClient solution in the Solution Explorer, and then select Rebuild Solution.

Als de build is geslaagd, kan B2C.exe de console toepassing worden gevonden in B2CGraphClient\bin\Debug.If the build is successful, the B2C.exe console application can be found in B2CGraphClient\bin\Debug.

De voorbeeldcode controlerenReview the sample code

Als u de B2CGraphClient wilt gebruiken, opent u eencmd.exeopdracht prompt () en gaat Debug u naar de map van het project.To use the B2CGraphClient, open a Command Prompt (cmd.exe) and change to project's Debug directory. Voer vervolgens de B2C Help opdracht uit.Then, run the B2C Help command.

cd B2CGraphClient\bin\Debug
B2C Help

De B2C Help opdracht geeft een korte beschrijving van de beschik bare subopdrachten.The B2C Help command displays a brief description of the available subcommands. Telkens wanneer u een van de subopdrachten aanroept B2CGraphClient , verzendt een aanvraag naar de Azure AD-Graph API.Each time you invoke one of its subcommands, B2CGraphClient sends a request to the Azure AD Graph API.

In de volgende secties wordt beschreven hoe de code van de toepassing aanroepen naar de Azure AD-Graph API.The following sections discuss how the application's code makes calls to the Azure AD Graph API.

Een toegangstoken opvragenGet an access token

Elke aanvraag voor de Azure AD-Graph API vereist een toegangs token voor verificatie.Any request to the Azure AD Graph API requires an access token for authentication. B2CGraphClientmaakt gebruik van open source Active Directory Authentication Library (ADAL) om toegangs tokens te verkrijgen.B2CGraphClient uses the open-source Active Directory Authentication Library (ADAL) to assist in obtaining access tokens. ADAL maakt het verkrijgen van tokens eenvoudiger door het aanbieden van een helper-API en het uitvoeren van een aantal belang rijke details zoals het opslaan van toegangs tokens in de cache.ADAL makes token acquisition easier by providing a helper API and taking care of a few important details like caching access tokens. U hoeft ADAL echter niet te gebruiken om tokens op te halen.You don't have to use ADAL to get tokens, however. U kunt in plaats daarvan tokens ophalen door HTTP-aanvragen hand matig te gebruiken.You could instead get tokens by manually crafting HTTP requests.

Notitie

U moet ADAL v2 of hoger gebruiken om toegang te krijgen tot tokens die kunnen worden gebruikt met de Azure AD-Graph API.You must use ADAL v2 or higher to get access tokens that can be used with the Azure AD Graph API. U kunt ADAL v1 niet gebruiken.You cannot use ADAL v1.

Wanneer B2CGraphClient wordt uitgevoerd, wordt er een exemplaar van de B2CGraphClient klasse gemaakt.When B2CGraphClient executes, it creates an instance of the B2CGraphClient class. Met de constructor voor deze klasse wordt de ADAL-verificatie steiger ingesteld:The constructor for this class sets up the ADAL authentication scaffolding:

public B2CGraphClient(string clientId, string clientSecret, string tenant)
{
    // The client_id, client_secret, and tenant are provided in Program.cs, which pulls the values from App.config
    this.clientId = clientId;
    this.clientSecret = clientSecret;
    this.tenant = tenant;

    // The AuthenticationContext is ADAL's primary class, in which you indicate the tenant to use.
    this.authContext = new AuthenticationContext("https://login.microsoftonline.com/" + tenant);

    // The ClientCredential is where you pass in your client_id and client_secret, which are
    // provided to Azure AD in order to receive an access_token by using the app's identity.
    this.credential = new ClientCredential(clientId, clientSecret);
}

Laten we de B2C Get-User opdracht als voor beeld gebruiken.Let's use the B2C Get-User command as an example.

Wanneer B2C Get-User wordt aangeroepen zonder aanvullende argumenten, roept de toepassing de B2CGraphClient.GetAllUsers() -methode aan.When B2C Get-User is invoked without additional arguments, the application calls the B2CGraphClient.GetAllUsers() method. GetAllUsers()vervolgens worden B2CGraphClient.SendGraphGetRequest()aangeroepen, waarmee een HTTP GET-aanvraag naar de Azure AD-Graph API wordt verzonden.GetAllUsers() then calls B2CGraphClient.SendGraphGetRequest(), which submits an HTTP GET request to the Azure AD Graph API. Voordat B2CGraphClient.SendGraphGetRequest() de GET-aanvraag wordt verzonden, verkrijgt deze eerst een toegangs token met behulp van ADAL:Before B2CGraphClient.SendGraphGetRequest() sends the GET request, it first obtains an access token by using ADAL:

public async Task<string> SendGraphGetRequest(string api, string query)
{
    // First, use ADAL to acquire a token by using the app's identity (the credential)
    // The first parameter is the resource we want an access_token for; in this case, the Graph API.
    AuthenticationResult result = authContext.AcquireToken("https://graph.windows.net", credential);
    ...

U kunt een toegangs token voor de Graph API verkrijgen door de methode ADAL AuthenticationContext.AcquireToken() aan te roepen.You can get an access token for the Graph API by calling the ADAL AuthenticationContext.AcquireToken() method. ADAL retourneert vervolgens een access_token waarde die de identiteit van de toepassing vertegenwoordigt.ADAL then returns an access_token that represents the application's identity.

Gebruikers lezenRead users

Als u een lijst met gebruikers wilt ophalen of een bepaalde gebruiker wilt ophalen uit de Azure AD-Graph API, kunt u een http GET -aanvraag verzenden /users naar het eind punt.When you want to get a list of users or get a particular user from the Azure AD Graph API, you can send an HTTP GET request to the /users endpoint. Een aanvraag voor alle gebruikers in een Tenant ziet er als volgt uit:A request for all of the users in a tenant looks like this:

GET https://graph.windows.net/contosob2c.onmicrosoft.com/users?api-version=1.6
Authorization: Bearer eyJhbGciOiJSUzI1NiIsIng1dCI6IjdkRC1nZWNOZ1gxWmY3R0xrT3ZwT0IyZGNWQSIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJod...

Als u deze aanvraag wilt bekijken, voert u de volgende opdracht uit:To see this request, run:

B2C Get-User

Er zijn twee belang rijke dingen die u moet weten:There are two important things to note:

  • Het toegangs token dat is verkregen met behulp van ADAL Authorization , wordt toegevoegd aan Bearer de koptekst met behulp van het schema.The access token obtained by using ADAL is added to the Authorization header by using the Bearer scheme.
  • Voor B2C-tenants moet u de query parameter api-version=1.6gebruiken.For B2C tenants, you must use the query parameter api-version=1.6.

Beide Details worden behandeld in de B2CGraphClient.SendGraphGetRequest() -methode:Both of these details are handled in the B2CGraphClient.SendGraphGetRequest() method:

public async Task<string> SendGraphGetRequest(string api, string query)
{
    ...

    // For B2C user management, be sure to use the 1.6 Graph API version.
    HttpClient http = new HttpClient();
    string url = "https://graph.windows.net/" + tenant + api + "?" + "api-version=1.6";
    if (!string.IsNullOrEmpty(query))
    {
        url += "&" + query;
    }

    // Append the access token for the Graph API to the Authorization header of the request by using the Bearer scheme.
    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);
    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
    HttpResponseMessage response = await http.SendAsync(request);

    ...

Gebruikers accounts voor consumenten makenCreate consumer user accounts

Wanneer u gebruikers accounts maakt in uw B2C-Tenant, kunt u een http POST -aanvraag verzenden /users naar het eind punt.When you create user accounts in your B2C tenant, you can send an HTTP POST request to the /users endpoint. De volgende http POST -aanvraag toont een voor beeld van een gebruiker die moet worden gemaakt in de Tenant.The following HTTP POST request shows an example user to be created in the tenant.

De meeste eigenschappen in de volgende aanvraag zijn vereist om consumenten gebruikers te maken.Most of properties in the following request are required to create consumer users. De // opmerkingen zijn opgenomen voor de illustratie. Neem deze niet op in een daad werkelijke aanvraag.The // comments have been included for illustration--do not include them in an actual request.

POST https://graph.windows.net/contosob2c.onmicrosoft.com/users?api-version=1.6
Authorization: Bearer eyJhbGciOiJSUzI1NiIsIng1dCI6IjdkRC1nZWNOZ1gxWmY3R0xrT3ZwT0IyZGNWQSIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJod...
Content-Type: application/json
Content-Length: 338

{
    // All of these properties are required to create consumer users.

    "accountEnabled": true,
    "signInNames": [                           // controls which identifier the user uses to sign in to the account
        {
            "type": "emailAddress",            // can be 'emailAddress' or 'userName'
            "value": "consumer@fabrikam.com"
        }
    ],
    "creationType": "LocalAccount",            // always set to 'LocalAccount'
    "displayName": "Consumer User",            // a value that can be used for displaying to the end user
    "mailNickname": "cuser",                   // an email alias for the user
    "passwordProfile": {
        "password": "P@ssword!",
        "forceChangePasswordNextLogin": false  // always set to false
    },
    "passwordPolicies": "DisablePasswordExpiration"
}

Als u de aanvraag wilt weer geven, voert u een van de volgende opdrachten uit:To see the request, run one of the following commands:

B2C Create-User ..\..\..\usertemplate-email.json
B2C Create-User ..\..\..\usertemplate-username.json

De Create-User opdracht wordt gebruikt als een invoer parameter een JSON-bestand dat een JSON-weer gave van een gebruikers object bevat.The Create-User command takes as an input parameter a JSON file that contains a JSON representation of a user object. Er zijn twee voor beelden van json-bestanden in het usertemplate-email.json code usertemplate-username.jsonvoorbeeld: en.There are two sample JSON files in the code sample: usertemplate-email.json and usertemplate-username.json. U kunt deze bestanden aanpassen aan uw behoeften.You can modify these files to suit your needs. Naast de hierboven genoemde velden zijn er verschillende optionele velden opgenomen in de bestanden.In addition to the required fields above, several optional fields are included in the files.

Zie voor meer informatie over verplichte en optionele velden de verwijzing entiteit en complex type | Graph API verwijzing.For more information on required and optional fields, see the Entity and complex type reference | Graph API reference.

U kunt zien hoe de POST-aanvraag is geconstrueerd in B2CGraphClient.SendGraphPostRequest():You can see how the POST request is constructed in B2CGraphClient.SendGraphPostRequest():

  • Er wordt een toegangs token aan de Authorization header van de aanvraag gekoppeld.It attaches an access token to the Authorization header of the request.
  • Het wordt api-version=1.6ingesteld.It sets api-version=1.6.
  • Het bevat het JSON-gebruikers object in de hoofd tekst van de aanvraag.It includes the JSON user object in the body of the request.

Notitie

Als de accounts die u wilt migreren vanuit een bestaand gebruikers archief een lagere wachtwoord sterkte hebben dan de sterke wachtwoord sterkte die door Azure AD B2C wordt afgedwongen, kunt u de vereiste voor sterke wacht woorden uitschakelen DisableStrongPassword met behulp van de waarde in de passwordPolicieseigenschap.If the accounts that you want to migrate from an existing user store have a lower password strength than the strong password strength enforced by Azure AD B2C, you can disable the strong password requirement by using the DisableStrongPassword value in the passwordPolicies property. U kunt bijvoorbeeld de vorige aanvraag voor het maken van een gebruiker als volgt "passwordPolicies": "DisablePasswordExpiration, DisableStrongPassword"wijzigen:.For example, you can modify the previous create user request as follows: "passwordPolicies": "DisablePasswordExpiration, DisableStrongPassword".

Gebruikers accounts van consumenten bijwerkenUpdate consumer user accounts

Wanneer u gebruikers objecten bijwerkt, is het proces vergelijkbaar met het account dat u gebruikt om gebruikers objecten te maken, PATCH maar wordt de HTTP-methode gebruikt:When you update user objects, the process is similar to the one you use to create user objects, but uses the HTTP PATCH method:

PATCH https://graph.windows.net/contosob2c.onmicrosoft.com/users/<user-object-id>?api-version=1.6
Authorization: Bearer eyJhbGciOiJSUzI1NiIsIng1dCI6IjdkRC1nZWNOZ1gxWmY3R0xrT3ZwT0IyZGNWQSIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJod...
Content-Type: application/json
Content-Length: 37

{
    "displayName": "Joe Consumer"    // this request updates only the user's displayName
}

Probeer een gebruiker bij te werken door bepaalde waarden in uw json-bestanden te wijzigen en B2CGraphClient gebruik vervolgens de om een van de volgende opdrachten uit te voeren:Try updating a user by modifying some values in your JSON files, and then use the B2CGraphClient to run one of these commands:

B2C Update-User <user-object-id> ..\..\..\usertemplate-email.json
B2C Update-User <user-object-id> ..\..\..\usertemplate-username.json

Inspecteer B2CGraphClient.SendGraphPatchRequest() de methode voor meer informatie over het verzenden van deze aanvraag.Inspect the B2CGraphClient.SendGraphPatchRequest() method for details on how to send this request.

Gebruikers zoekenSearch users

U kunt op twee manieren zoeken naar gebruikers in uw B2C-Tenant:You can search for users in your B2C tenant in two ways:

  • Verwijzing naar de object-idvan de gebruiker.Reference the user's object ID.
  • Verwijzing naar de id van de aanmelding, signInNames de eigenschap.Reference their sign-in identifer, the signInNames property.

Voer een van de volgende opdrachten uit om een gebruiker te zoeken:Run one of the following commands to search for a user:

B2C Get-User <user-object-id>
B2C Get-User <filter-query-expression>

Bijvoorbeeld:For example:

B2C Get-User 2bcf1067-90b6-4253-9991-7f16449c2d91
B2C Get-User $filter=signInNames/any(x:x/value%20eq%20%27consumer@fabrikam.com%27)

Gebruikers verwijderenDelete users

Als u gebruikers wilt verwijderen, gebruikt DELETE u de HTTP-methode en maakt u de URL met de object-id van de gebruiker:To delete users, use the HTTP DELETE method, and construct the URL with the user's object ID:

DELETE https://graph.windows.net/contosob2c.onmicrosoft.com/users/<user-object-id>?api-version=1.6
Authorization: Bearer eyJhbGciOiJSUzI1NiIsIng1dCI6IjdkRC1nZWNOZ1gxWmY3R0xrT3ZwT0IyZGNWQSIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJod...

Als u een voor beeld wilt weer geven, voert u deze opdracht in en bekijkt u de aanvraag voor verwijderen die wordt afgedrukt op de-console:To see an example, enter this command and view the delete request that is printed to the console:

B2C Delete-User <object-id-of-user>

Inspecteer B2CGraphClient.SendGraphDeleteRequest() de methode voor meer informatie over het verzenden van deze aanvraag.Inspect the B2CGraphClient.SendGraphDeleteRequest() method for details on how to send this request.

U kunt naast gebruikers beheer veel andere acties uitvoeren met de Azure AD-Graph API.You can perform many other actions with the Azure AD Graph API in addition to user management. De Naslag informatie voor Azure AD-Graph API bevat details over elke actie, samen met voorbeeld aanvragen.The Azure AD Graph API reference provides details on each action, along with sample requests.

Aangepaste kenmerken gebruikenUse custom attributes

De meeste consumenten toepassingen moeten bepaalde soorten aangepaste gebruikers profiel gegevens opslaan.Most consumer applications need to store some type of custom user profile information. Een van de manieren waarop u dit kunt doen is het definiëren van een aangepast kenmerk in uw B2C-Tenant.One way you can do so is to define a custom attribute in your B2C tenant. U kunt dat kenmerk vervolgens op dezelfde manier behandelen als elke andere eigenschap van een gebruikers object.You can then treat that attribute in the same way you treat any other property on a user object. U kunt het kenmerk bijwerken, het kenmerk verwijderen, query's uitvoeren op het kenmerk, het kenmerk verzenden als een claim in aanmeldings tokens en meer.You can update the attribute, delete the attribute, query by the attribute, send the attribute as a claim in sign-in tokens, and more.

Als u een aangepast kenmerk wilt definiëren in uw B2C-Tenant, raadpleegt u de verwijzing naar het aangepaste kenmerk B2C.To define a custom attribute in your B2C tenant, see the B2C custom attribute reference.

U kunt de aangepaste kenmerken die zijn gedefinieerd in uw B2C-Tenant weer geven B2CGraphClient met behulp van de volgende opdrachten:You can view the custom attributes defined in your B2C tenant by using the following B2CGraphClient commands:

B2C Get-B2C-Application
B2C Get-Extension-Attribute <object-id-in-the-output-of-the-above-command>

De uitvoer toont de details van elk aangepast kenmerk.The output reveals the details of each custom attribute. Bijvoorbeeld:For example:

{
      "odata.type": "Microsoft.DirectoryServices.ExtensionProperty",
      "objectType": "ExtensionProperty",
      "objectId": "cec6391b-204d-42fe-8f7c-89c2b1964fca",
      "deletionTimestamp": null,
      "appDisplayName": "",
      "name": "extension_55dc0861f9a44eb999e0a8a872204adb_Jersey_Number",
      "dataType": "Integer",
      "isSyncedFromOnPremises": false,
      "targetObjects": [
        "User"
      ]
}

U kunt de volledige naam, zoals extension_55dc0861f9a44eb999e0a8a872204adb_Jersey_Number, gebruiken als eigenschap voor uw gebruikers objecten.You can use the full name, such as extension_55dc0861f9a44eb999e0a8a872204adb_Jersey_Number, as a property on your user objects. Werk uw JSON-bestand bij met de nieuwe eigenschap en een waarde voor de eigenschap en voer vervolgens de volgende handelingen uit:Update your JSON file with the new property and a value for the property, and then run:

B2C Update-User <object-id-of-user> <path-to-json-file>

Volgende stappenNext steps

B2CGraphClientMet kunt u een service toepassing hebben waarmee uw B2C-Tenant gebruikers programmatisch kunnen worden beheerd.By using B2CGraphClient, you have a service application that can manage your B2C tenant users programmatically. B2CGraphClientmaakt gebruik van een eigen toepassings identiteit voor verificatie bij de Azure AD-Graph API.B2CGraphClient uses its own application identity to authenticate to the Azure AD Graph API. Er worden ook tokens verkregen met behulp van een client geheim.It also acquires tokens by using a client secret.

Als u deze functionaliteit in uw eigen toepassing opneemt, moet u enkele belang rijke punten onthouden voor B2C-toepassingen:As you incorporate this functionality into your own application, remember a few key points for B2C applications:

  • Ken de vereiste machtigingen toe aan de toepassing in de Tenant.Grant the application the required permissions in the tenant.
  • Voor Taan moet u ADAL (niet MSAL) gebruiken om toegangs tokens te verkrijgen.For now, you need to use ADAL (not MSAL) to get access tokens. (U kunt ook protocol berichten rechtstreeks verzenden zonder een bibliotheek te gebruiken.)(You can also send protocol messages directly, without using a library.)
  • Wanneer u de Graph API aanroept, api-version=1.6gebruikt u.When you call the Graph API, use api-version=1.6.
  • Wanneer u consumenten gebruikers maakt en bijwerkt, zijn er enkele eigenschappen vereist, zoals hierboven wordt beschreven.When you create and update consumer users, a few properties are required, as described above.