Administración de Azure AD B2C con Microsoft GraphManage Azure AD B2C with Microsoft Graph

Microsoft Graph permite administrar recursos en el directorio de Azure AD B2C.Microsoft Graph allows you to manage resources in your Azure AD B2C directory. Se admiten las siguientes operaciones de Microsoft Graph API para la administración de recursos de Azure AD B2C, incluidos usuarios, proveedores de identidades, flujos de usuarios, directivas personalizadas y claves de directivas.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. Cada vínculo de las secciones siguientes se dirige a la página correspondiente dentro de la referencia de Microsoft Graph API para esa operación.Each link in the following sections targets the corresponding page within the Microsoft Graph API reference for that operation.

Requisitos previosPrerequisites

Para usar MS Graph API e interactuar con los recursos de su inquilino de Azure AD B2C, necesita un registro de aplicación que conceda permisos para hacerlo.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. Siga los pasos del artículo Administración de Azure AD B2C con Microsoft Graph para crear un registro de aplicación que pueda usar la aplicación de administración.Follow the steps in the Manage Azure AD B2C with Microsoft Graph article to create an application registration that your management application can use.

Administración de usuariosUser management

Administración de números de teléfono de usuarios (versión beta)User phone number management (beta)

Número de teléfono que un usuario puede emplear para iniciar sesión mediante llamadas de voz o SMS o autenticación multifactor.A phone number that can be used by a user to sign-in using SMS or voice calls, or multi-factor authentication. Para obtener más información, vea API de métodos de autenticación de Azure AD.For more information, see Azure AD authentication methods API.

Tenga en cuenta que la operación Enumerar solo devuelve los números de teléfono habilitados.Note, the list operation returns only enabled phone numbers. El siguiente número de teléfono debe estar habilitado para su uso con las operaciones Enumerar.The following phone number should be enabled to use with the list operations.

Habilitación de inicio de sesión telefónico

Dirección de correo electrónico de autoservicio de restablecimiento de contraseña (versión beta)Self-service password reset email address (beta)

Dirección de correo electrónico que una cuenta de inicio de sesión mediante nombre de usuario puede usar para restablecer la contraseña.An email address that can be used by a username sign-in account to reset the password. Para obtener más información, vea API de métodos de autenticación de Azure AD.For more information, see Azure AD authentication methods API.

Proveedores de identidadesIdentity providers

Administre los proveedores de identidades disponibles para los flujos de usuario en el inquilino de Azure AD B2C.Manage the identity providers available to your user flows in your Azure AD B2C tenant.

Flujo de usuarioUser flow

Configure las directivas predefinidas para el registro, el inicio de sesión, el registro y el inicio de sesión combinados, el restablecimiento de contraseña y la actualización del perfil.Configure pre-built policies for sign-up, sign-in, combined sign-up and sign-in, password reset, and profile update.

Métodos de autenticación de flujos de usuario (versión beta)User flow authentication methods (beta)

Elija un mecanismo para permitir a los usuarios registrarse mediante cuentas locales.Choose a mechanism for letting users register via local accounts. Las cuentas locales son aquellas en las que Azure AD realiza la aserción de identidad.Local accounts are the accounts where Azure AD does the identity assertion. Para obtener más información, vea tipo de recurso b2cAuthenticationMethodsPolicy.For more information, see b2cAuthenticationMethodsPolicy resource type.

Directivas personalizadasCustom policies

Las siguientes operaciones permiten administrar las directivas del marco de confianza de Azure AD B2C, conocidas como directivas personalizadas.The following operations allow you to manage your Azure AD B2C Trust Framework policies, known as custom policies.

Claves de directivaPolicy keys

Identity Experience Framework almacena los secretos a los que se hace referencia en una directiva personalizada para establecer la confianza entre los componentes.The Identity Experience Framework stores the secrets referenced in a custom policy to establish trust between components. Estos secretos pueden ser claves/valores simétricos o asimétricos.These secrets can be symmetric or asymmetric keys/values. En Azure Portal, estas entidades se muestran como claves de directiva.In the Azure portal, these entities are shown as Policy keys.

El recurso de nivel superior para las claves de directiva de Microsoft Graph API es el conjunto de claves del marco de confianza.The top-level resource for policy keys in the Microsoft Graph API is the Trusted Framework Keyset. Cada conjunto de claves contiene al menos una clave.Each Keyset contains at least one Key. Para crear una clave, primero debe crear un conjunto de claves vacío y, a continuación, generar una clave en el conjunto de claves.To create a key, first create an empty keyset, and then generate a key in the keyset. Puede crear un secreto manual, cargar un certificado o una clave PKCS12.You can create a manual secret, upload a certificate, or a PKCS12 key. La clave puede ser un secreto generado, una cadena (como el secreto de aplicación de Facebook) o un certificado que cargue.The key can be a generated secret, a string (such as the Facebook application secret), or a certificate you upload. Si un conjunto de claves tiene varias claves, solo una de las claves está activa.If a keyset has multiple keys, only one of the keys is active.

Conjunto de claves de directiva de marco de confianzaTrust Framework policy keyset

Clave de directiva de marco de confianzaTrust Framework policy key

APLICACIONESApplications

Propiedades de extensión de aplicaciónApplication extension properties

Azure AD B2C proporciona un directorio que puede contener 100 atributos personalizados por usuario.Azure AD B2C provides a directory that can hold 100 custom attributes per user. En el caso de los flujos de usuarios, estas propiedades de extensión se administran mediante Azure Portal.For user flows, these extension properties are managed by using the Azure portal. En el caso de las directivas personalizadas, Azure AD B2C crea la propiedad automáticamente la primera vez que la directiva escribe un valor en la propiedad de extensión.For custom policies, Azure AD B2C creates the property for you, the first time the policy writes a value to the extension property.

Registros de auditoríaAudit logs

Para más información sobre cómo acceder a los registros de auditoría de Azure AD B2C, consulte Acceso a los registros de auditoría de Azure AD B2C.For more information about accessing Azure AD B2C audit logs, see Accessing Azure AD B2C audit logs.

Acceso condicionalConditional Access

Ejemplo de código: Administración de cuentas de usuario mediante programaciónCode sample: How to programmatically manage user accounts

Este ejemplo de código es una aplicación de consola .NET Core que usa el SDK de Microsoft Graph para interactuar con Microsoft Graph API.This code sample is a .NET Core console application that uses the Microsoft Graph SDK to interact with Microsoft Graph API. En su código se muestra cómo llamar a la API para administrar usuarios mediante programación en un inquilino de Azure AD B2C.Its code demonstrates how to call the API to programmatically manage users in an Azure AD B2C tenant. Puede descargar el archivo de ejemplo (*.zip), examinar el repositorio de GitHub o clonar el repositorio: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

Después de obtener el ejemplo de código, configúrelo para su entorno y, a continuación, compile el proyecto:After you've obtained the code sample, configure it for your environment and then build the project:

  1. Abra el proyecto en Visual Studio o en Visual Studio Code.Open the project in Visual Studio or Visual Studio Code.

  2. Abra src/appsettings.json.Open src/appsettings.json.

  3. En la sección appSettings, reemplace your-b2c-tenant por el nombre de su inquilino, y Application (client) ID y Client secret por los valores para el registro de la aplicación de administración.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. Para más información, consulte Registro de una aplicación de Microsoft Graph.For more information, see Register a Microsoft Graph Application.

  4. Abra una ventana de consola en el clon local del repositorio, cambie al directorio src y, a continuación, compile el proyecto: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. Ejecute la aplicación con el comando dotnet:Run the application with the dotnet command:

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

La aplicación muestra una lista de los comandos que se pueden ejecutar.The application displays a list of commands you can execute. Por ejemplo, obtener todos los usuarios, obtener un solo usuario, eliminar un usuario, actualizar la contraseña de un usuario y realizar una importación en bloque.For example, get all users, get a single user, delete a user, update a user's password, and bulk import.

Discusión de códigoCode discussion

En el código de ejemplo se usa el SDK de Microsoft Graph, que se ha diseñado para simplificar la creación de aplicaciones de alta calidad, eficientes y resistentes que tienen acceso a 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.

Cualquier solicitud a Microsoft Graph API requiere un token de acceso para la autenticación.Any request to the Microsoft Graph API requires an access token for authentication. La solución usa el paquete de NuGet Microsoft.Graph.Auth que proporciona un contenedor basado en escenario de autenticación de la biblioteca de autenticación de Microsoft (MSAL) para su uso con el SDK de Microsoft Graph.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.

El método RunAsync en el archivo Program.cs:The RunAsync method in the Program.cs file:

  1. Lee la configuración de la aplicación del archivo appsettings.json.Reads application settings from the appsettings.json file

  2. Inicializa el proveedor de autenticación mediante el flujo de concesión de credenciales de cliente de OAuth 2.0.Initializes the auth provider using OAuth 2.0 client credentials grant flow. Con el flujo de concesión de credenciales de cliente, la aplicación puede obtener un token de acceso para llamar a 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 el cliente del servicio de Microsoft Graph con el proveedor de autenticación: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);
    

A continuación, se usa la instancia inicializada de GraphServiceClient en GraphService.cs para realizar las operaciones de administración de usuarios.The initialized GraphServiceClient is then used in UserService.cs to perform the user management operations. Por ejemplo, obtener una lista de las cuentas de usuario en el inquilino: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));
    }
}

El documento Realizar llamadas API con los SDK de Microsoft Graph incluye información sobre cómo leer y escribir información de Microsoft Graph, usar $select para controlar las propiedades devueltas, proporcionar parámetros de consulta personalizados y usar los parámetros de consulta $filter y $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.