Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo inicializar el ConfidentialClientApplication objeto en el nodo MSAL. Aprenderá cómo utilizar secretos y certificados de forma segura, y cómo configurar la autoridad.
Prerequisites
Antes de inicializar una aplicación, primero debe registrarla en el Centro de administración Microsoft Entra, estableciendo una relación de confianza entre la aplicación y la Plataforma de identidad de Microsoft.
Después de registrar la aplicación, necesitará algunos o todos los valores siguientes que se pueden encontrar en el Centro de administración Microsoft Entra.
| Value | Obligatorio | Description |
|---|---|---|
| Id. de aplicación (cliente) | Obligatorio | Un GUID que identifica de forma única su aplicación en la plataforma de identidad de Microsoft. |
| Autoridad | Optional | La dirección URL del proveedor de identidades (la instancia) y la audiencia de inicio de sesión de la aplicación. La instancia y la audiencia de inicio de sesión, cuando se concatenan, constituyen la autoridad. |
| Id. de directorio (inquilino) | Optional | Especifique el identificador de directorio (inquilino) si va a compilar una aplicación de línea de negocio exclusivamente para su organización, en ocasiones denominada aplicación de un único inquilino. |
| URI de redirección | Optional | Si va a crear una aplicación web, redirectUri especifica dónde debe devolver el proveedor de identidades (la plataforma de identidad de Microsoft) los tokens de seguridad que ha emitido. |
Inicialización del ConfidentialClientApplication objeto
Para usar el nodo MSAL, debe crear una instancia de un objeto ConfidentialClient .
Uso de secretos y certificados de forma segura
Los secretos nunca se deben codificar de forma dura. El paquete dotenv npm se puede usar para almacenar secretos o certificados en un archivo .env (ubicado en el directorio raíz del proyecto) que se debe incluir en .gitignore para evitar cargas accidentales de los secretos.
Los certificados también se pueden leer desde archivos a través del módulo fs de NodeJS. Sin embargo, nunca deben almacenarse en el directorio del proyecto. Las aplicaciones de producción deben capturar certificados de Azure KeyVault u otros almacenes de claves seguros.
Consulte certificados y secretos para obtener más información.
Consulte el ejemplo de MSAL: auth-code-with-certs
import * as msal from "@azure/msal-node";
import "dotenv/config"; // process.env now has the values defined in a .env file
const clientAssertionCallback = async (config) => {
// network request that uses config.clientId and (optionally) config.tokenEndpoint
const result = await Promise.resolve(
"network request which gets assertion"
);
return result;
};
const clientConfig = {
auth: {
clientId: "your_client_id",
authority: "your_authority",
clientSecret: process.env.clientSecret, // OR
clientCertificate: {
thumbprintSha256: process.env.thumbprint,
privateKey: process.env.privateKey,
}, // OR
clientAssertion: clientAssertionCallback, // or a predetermined clientAssertion string
},
};
const cca = new msal.ConfidentialClientApplication(clientConfig);
Consulte Problemas comunes al importar certificados.
Conceptos básicos de configuración
Las opciones de configuración para el nodo tienen common parámetros y specific parámetros por flujo de autenticación.
-
clientIdes obligatorio inicializar una aplicación cliente pública. -
authorityel valor predeterminado eshttps://login.microsoftonline.com/common/si el usuario no lo establece durante la configuración. - Una credencial de cliente es obligatoria para los clientes confidenciales. Las credenciales de cliente pueden ser:
-
clientSecretes la cadena secreta generada en el registro de la aplicación. -
clientCertificatees un certificado establecido en el registro de la aplicación.thumbprintSha256es una huella digital X.509 SHA-256 del certificado yprivateKeyes la clave privada codificada en PEM.x5ces la cadena de certificados X.509 opcional que se usa en escenarios de autenticación por nombre del sujeto/emisor. -
clientAssertiones un objeto ClientAssertion que contiene una cadena de aserción o una función callback que devuelve una cadena de aserción que la aplicación utiliza al solicitar un token, así como el tipo de la aserción (urn:ietf:params:oauth:client-assertion-type:jwt-bearer). La llamada de retorno se invoca cada vez que MSAL necesita obtener un token del emisor de tokens. Los desarrolladores de aplicaciones deben utilizar generalmente la llamada de retorno, ya que las aserciones caducan y es necesario crear nuevas aserciones. Los desarrolladores de aplicaciones son responsables del período de validez de la aserción. Use este mecanismo para obtener tokens para una API de nivel inferior mediante una credencial de identidad federada.
-
Para obtener más opciones en Configuración , consulte Configuración en el nodo MSAL.
Configurar autoridad
De forma predeterminada, MSAL está configurado con el tenant common, que se usa para aplicaciones multi-tenant y aplicaciones que permiten cuentas personales (no B2C).
authority: 'https://login.microsoftonline.com/common/'
Si el público de tu aplicación es un único inquilino, debes proporcionar una autoridad con tu ID de inquilino como se muestra a continuación:
authority: 'https://login.microsoftonline.com/{your_tenant_id}'