Administración de Azure AD B2C con Microsoft Graph
Microsoft Graph permite administrar recursos en el directorio de Azure AD B2C. 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. 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.
Nota:
También puede crear mediante programación un directorio de Azure AD B2C, junto con el recurso de Azure correspondiente vinculado a una suscripción de Azure. Esta funcionalidad no se expone a través de Microsoft Graph API, sino a través de la API REST de Azure. Para obtener más información, consulte Inquilinos B2C: Creación.
Vea este vídeo para obtener información sobre la migración de usuario de Azure AD B2C mediante Microsoft Graph API.
Requisitos previos
- 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. Siga los pasos del artículo Registro de una aplicación Microsoft Graph para crear un registro de aplicación que pueda usar la aplicación de administración.
Administración de usuarios
Nota:
Azure AD B2C no admite actualmente funcionalidades de consulta avanzadas en objetos de directorio. Esto significa que no hay compatibilidad con los operadores de consulta $count
y $search
ni con los operadores No (not
), No es igual a (ne
) y Termina con (endsWith
) en el parámetro de consulta $filter
. Para más información, consulte Parámetros de consulta en Microsoft Graph y Funcionalidades de consulta avanzadas en Microsoft Graph.
Administración de números de teléfono del usuario
Número de teléfono que un usuario puede emplear para iniciar sesión mediante llamadas de voz o SMS o autenticación multifactor. Para más información, consulte API de métodos de autenticación de Microsoft Entra.
Tenga en cuenta que la operación lista solo devuelve los números de teléfono habilitados. El siguiente número de teléfono debe estar habilitado para su uso con las operaciones Enumerar.
Nota:
Un número de teléfono representado correctamente se almacena con un espacio entre el código de país y el número de teléfono. El servicio Azure AD B2C no agrega actualmente este espacio de manera predeterminada.
Dirección de correo electrónico de autoservicio de restablecimiento de contraseña
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. Para más información, consulte API de métodos de autenticación de Microsoft Entra.
Método de autenticación de token OATH de software
Un token OATH de software es un generador de números basado en software que usa el estándar Contraseñas de un solo uso y duración definida OATH (TOTP) para la autenticación multifactor mediante una aplicación autenticadora. Use Microsoft Graph API para administrar un token OATH de software registrado para un usuario:
Proveedores de identidades
Administre los proveedores de identidades disponibles para los flujos de usuario en el inquilino de Azure AD B2C.
- Enumeración de proveedores de identidades disponibles en el inquilino de Azure AD B2C
- Enumeración de proveedores de identidades configurados en el inquilino de Azure AD B2C
- Crear proveedores de identidades
- Obtener proveedores de identidades
- Actualizar proveedores de identidades
- Eliminar proveedores de identidades
Flujo de usuario (beta)
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.
- Enumerar flujos de usuario
- Crear flujos de usuario
- Obtener flujos de usuario
- Eliminar flujos de usuario
Métodos de autenticación de flujos de usuario (versión beta)
Elija un mecanismo para permitir a los usuarios registrarse mediante cuentas locales. Las cuentas locales son aquellas en las que Azure AD B2C realiza la aserción de identidad. Para obtener más información, vea tipo de recurso b2cAuthenticationMethodsPolicy.
Directivas personalizadas (beta)
Las siguientes operaciones permiten administrar las directivas del marco de confianza de Azure AD B2C, conocidas como directivas personalizadas.
- Enumerar directivas de marco de confianza
- Crear directivas de marco de confianza
- Obtener directivas de marco de confianza
- Actualizar o crear directivas de marco de confianza
- Eliminar directivas de marco de confianza
Claves de directiva (beta)
Identity Experience Framework almacena los secretos a los que se hace referencia en una directiva personalizada para establecer la confianza entre los componentes. Estos secretos pueden ser claves/valores simétricos o asimétricos. En Azure Portal, estas entidades se muestran como claves de directiva.
El recurso de nivel superior para las claves de directiva de Microsoft Graph API es el conjunto de claves del marco de confianza. Cada conjunto de claves contiene al menos una clave. 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. Puede crear un secreto manual, cargar un certificado o una clave PKCS12. La clave puede ser un secreto generado, una cadena (como el secreto de aplicación de Facebook) o un certificado que cargue. Si un conjunto de claves tiene varias claves, solo una de las claves está activa.
Conjunto de claves de directiva de marco de confianza
- Enumerar conjuntos de claves de confianza
- Crear conjuntos de claves de confianza
- Obtener conjuntos de claves de confianza
- Actualizar conjuntos de claves de confianza
- Eliminar conjuntos de claves de confianza
Clave de directiva de marco de confianza
- Obtener clave activa
- Generar clave
- Cargar secreto
- Cargar certificado X.509
- Cargar certificado PKCS12
APLICACIONES
- Lista de aplicaciones
- Crear aplicación
- Actualizar aplicación
- Tipo de recurso servicePrincipal
- Tipo de recurso oAuth2PermissionGrant
- Eliminar aplicación
Propiedades de la extensión de aplicación (extensión de directorio)
Las propiedades de extensión de aplicaciones también son conocidas como extensiones de directorio o de Microsoft Entra. Para administrarlas en Azure AD B2C, use el tipo de recurso identityUserFlowAttribute y sus métodos asociados.
- Crear un atributo de flujo de usuario
- Enumerar atributos de flujo de usuario
- Obtener un atributo de flujo de usuario
- Actualizar un atributo de flujo de usuario
- Eliminar un atributo de flujo de usuario
Puede almacenar hasta 100 valores de extensión de directorio por usuario. Para administrar las propiedades de extensión para un usuario, use las siguientes API de usuario en Microsoft Graph.
- Actualizar usuario: para escribir o quitar el valor de la propiedad de extensión del usuario desde el objeto de usuario.
- Obtener un usuario: para recuperar el valor de la extensión de directorio para el usuario. La propiedad se devolverá de forma predeterminada a través del punto de conexión
beta
, pero solo en$select
a través del punto de conexiónv1.0
.
En el caso de los flujos de usuarios, estas propiedades de extensión se administran mediante 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.
Nota:
En Microsoft Entra ID, las extensiones de directorio se administran mediante el tipo de recurso extensionProperty y sus métodos asociados. Sin embargo, dado que se usan en B2C a través de la aplicación b2c-extensions-app
que no debería actualizarse, se administran en Azure AD B2C mediante el tipo de recurso identityUserFlowAttribute y sus métodos asociados.
Uso de inquilino
Use la API de Obtención de detalles de la organización para obtener la cuota de tamaño del directorio. Debe agregar el parámetro de consulta $select
, tal como se muestra en la solicitud HTTP siguiente:
GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota
Remplace organization-id
por el id. de inquilino o de organización.
La respuesta a la solicitud anterior es similar al fragmento de código JSON siguiente:
{
"directorySizeQuota": {
"used": 156,
"total": 1250000
}
}
Registros de auditoría
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.
Acceso condicional
- Enumeración de las plantillas integradas para escenarios de la directiva de acceso condicional
- Enumeración de todas las directivas de acceso condicional
- Lectura de propiedades y relaciones de una directiva de acceso condicional
- Creación de una directiva de acceso condicional nueva
- Actualización de una directiva de acceso condicional
- Eliminación de una directiva de acceso condicional
Recuperación o restauración de usuarios y aplicaciones eliminados
Los usuarios y aplicaciones eliminados solo se pueden restaurar si se eliminaron en los últimos 30 días.
- Enumerar los elementos eliminados
- Obtener un elemento eliminado
- Restaurar un elemento eliminado
- Eliminar permanentemente un elemento eliminado
Administración mediante programación de Microsoft Graph
Cuando quiera administrar Microsoft Graph, podrá hacerlo como aplicación mediante los permisos de aplicación, o puede usar permisos delegados. Para los permisos delegados, el usuario o un administrador dan su consentimiento para los permisos que la aplicación requiere. A la aplicación se le delega el permiso para actuar como el usuario que inició sesión al realizar llamadas al recurso de destino. Los permisos de aplicación los usan aplicaciones que no requieren la presencia de un usuario con la sesión iniciada y, por lo tanto, requieren permisos de aplicación. Debido a esto, solo los administradores pueden dar consentimiento para los permisos de aplicación.
Nota:
Los permisos delegados para usuarios que inician sesión a través de flujos de usuario o directivas personalizadas no se pueden usar con los permisos delegados para Microsoft Graph API.
Ejemplo de código: Administración de cuentas de usuario mediante programación
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. 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. Puede descargar el archivo de ejemplo (*.zip), examinar el repositorio de GitHub o clonar el repositorio:
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:
Abra el proyecto en Visual Studio o en Visual Studio Code.
Abra
src/appsettings.json
.En la sección
appSettings
, reemplaceyour-b2c-tenant
por el nombre de su inquilino, yApplication (client) ID
yClient secret
por los valores para el registro de la aplicación de administración. Para más información, consulte Registro de una aplicación de Microsoft Graph.Abra una ventana de consola en el clon local del repositorio, cambie al directorio
src
y, a continuación, compile el proyecto:cd src dotnet build
Ejecute la aplicación con el comando
dotnet
:dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
La aplicación muestra una lista de los comandos que se pueden ejecutar. 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.
Nota:
Para que la aplicación actualice contraseñas de cuenta de usuario, tendrá que conceder el rol Administrador de usuarios a la aplicación.
Discusión de código
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.
Cualquier solicitud a Microsoft Graph API requiere un token de acceso para la autenticación. 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.
El método RunAsync
en el archivo Program.cs:
- Lee la configuración de la aplicación del archivo appsettings.json.
- Inicializa el proveedor de autenticación mediante el flujo de concesión de credenciales de cliente de OAuth 2.0. 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.
- Configura el cliente del servicio de Microsoft Graph con el proveedor de autenticación:
// 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);
A continuación, se usa la instancia inicializada de GraphServiceClient en GraphService.cs para realizar las operaciones de administración de usuarios. Por ejemplo, obtener una lista de las cuentas de usuario en el inquilino:
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();
}
}
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
.
Pasos siguientes
- Para ejemplos de código en JavaScript y Node.js, consulte: Administración de cuentas de usuario de B2C con MSAL.js y el SDK de Microsoft Graph.
- Explore Explorador de Graph que le permite probar las Microsoft Graph API y obtener información sobre ellas.