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.
El SDK de JavaScript requiere authenticationProvider para obtener tokens JWT para enviar actividades al canal de destino. Para más información, consulte Tokens de acceso en la plataforma de identidad de Microsoft.
El paquete @microsoft/agents-hosting proporciona un proveedor de autenticación predeterminado basado en MSAL, que se puede configurar para los siguientes tipos de credenciales:
- Secreto del cliente
- Certificado de cliente
- Identidades administradas asignadas por el usuario
- Credenciales de identidad federada (FIC)
Inquilino único frente a multiinquilino
La autenticación de secreto de cliente y certificado de cliente admite configuraciones de inquilino único y multiinquilino.
Las identidades administradas asignadas por el usuario y las credenciales de identidad federada solo admiten configuraciones de inquilino único.
Nota:
Para multiinquilino, debe configurar la instancia de Azure Bot como multiinquilino y el registro de la aplicación Microsoft EntraID debe configurarse como Cuentas en cualquier directorio organizativo (Cualquier inquilino de Microsoft Entra ID: multiinquilino). Para más información, consulte Aplicaciones de un solo inquilino y multiinquilino.
Variables de entorno para cada tipo de autenticación
La configuración se obtiene en tiempo de ejecución de variables de entorno mediante la función loadAuthConfigFromEnv(): AuthConfigurationauxiliar . La CloudAdapter instancia debe inicializarse con .AuthConfiguration
En función de las variables proporcionadas, el tipo de autenticación se deduce como se describe a continuación.
Inquilino único con secreto de cliente
| Nombre de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| tenantId | String | Null | Identificador de inquilino de Microsoft Entra para el registro de la aplicación. |
| clientId | String | Null | Identificador de cliente (id. de aplicación) del registro de la aplicación. |
| clientSecret | String | Null | Secreto asociado al registro de la aplicación. Solo se debe usar para fines de prueba y desarrollo. |
tenantId={tenant-id-guid}
clientId={app-id-guid}
clientSecret={app-registration-secret}
Esta es la configuración recomendada para el desarrollo local.
Inquilino único con certificado de cliente
| Nombre de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| tenantId | String | Null | Identificador de inquilino de Microsoft Entra para el registro de la aplicación. |
| clientId | String | Null | Identificador de cliente (id. de aplicación) del registro de la aplicación. |
| archivo PEM de certificado | String | Null | Ruta de acceso al archivo de certificado PEM. |
| certKeyFile | String | Null | Ruta de acceso al archivo de clave privada del certificado. |
tenantId={tenant-id-guid}
clientId={app-id-guid}
certPemFile={path-to-pem-file}
certKeyFile={path-to-key-file}
Nota:
El archivo de clave no debe usar ninguna contraseña.
Inquilino único con identidad gestionada asignada por el usuario
| Nombre de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| tenantId | String | Null | Identificador de inquilino de Microsoft Entra para el registro de la aplicación. |
| clientId | String | Null | El Id. de cliente de identidad administrada que se usará al crear el token de acceso. |
tenantId={tenant-id-guid}
clientId={app-id-guid}
Esta es la configuración recomendada para escenarios de producción. Para más información, consulte Identidades administradas para recursos de Azure.
Nota:
El agente debe ejecutarse en cualquier servicio de Azure que admita identidades administradas. Para ver qué servicios de Azure admiten identidades administradas, consulte Identidades administradas para recursos de Azure. La identidad administrada debe coincidir con la configurada en EntraID. Para más información, consulte Configuración de identidades administradas.
Inquilino único con credencial de identidad federada
| Nombre de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| tenantId | String | Null | Identificador de inquilino de Microsoft Entra para el registro de la aplicación. |
| clientId | String | Null | Identificador de cliente (id. de aplicación) del registro de la aplicación. |
| FICClientId | String | Null | Identificador de cliente de identidad administrada de la credencial de identidad federada. |
tenantId={tenant-id-guid}
clientId={app-id-guid}
FICClientId={client-id-of-the-FIC}
Para obtener más información, consulte Autenticación mediante credenciales de identidad federada.
Multiinquilino con ClientSecret
| Nombre de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| clientId | String | Null | Identificador de cliente (id. de aplicación) del registro de la aplicación. |
| clientSecret | String | Null | Secreto asociado al registro de la aplicación. Solo se debe usar para fines de prueba y desarrollo. |
clientId={app-id-guid}
clientSecret={app-registration-secret}
Multiinquilino con certificado de cliente
| Nombre de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| clientId | String | Null | Identificador de cliente (id. de aplicación) del registro de la aplicación. |
| archivo PEM de certificado | String | Null | Ruta de acceso al archivo de certificado PEM. |
| certKeyFile | String | Null | Ruta de acceso al archivo de clave privada del certificado. |
clientId={app-id-guid}
certPemFile={path-to-pem-file}
certKeyFile={path-to-key-file}
Compatibilidad con versiones anteriores con el SDK de Azure Bot Framework
Para cargar la configuración con el mismo formato que el SDK de Azure Bot Framework, se proporciona otra función loadBotAuthConfigFromEnv(): AuthConfigurationauxiliar.
| Nombre de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| MicrosoftAppTenantId | String | Null | Identificador de Id. de tenant de Microsoft Entra ID (formato heredado del SDK de Bot Framework). |
| MicrosoftAppId | String | Null | El identificador de cliente (id. de aplicación) del registro de la aplicación (formato heredado del SDK de Bot Framework). |
| MicrosoftAppPassword | String | Null | Secreto de la aplicación (formato heredado del SDK de Bot Framework). |
MicrosoftAppTenantId={tenant-id-guid}
MicrosoftAppId={app-id-guid}
MicrosoftAppPassword={app-registration-secret}
Proveedor de autenticación personalizada
Los usuarios que requieren un proveedor de autenticación personalizado pueden implementar la interfaz:
export interface AuthProvider {
getAccessToken: (authConfig: AuthConfiguration, scope: string) => Promise<string>
}
Por ejemplo, vamos a implementar el AuthProvider usando @azure/identity:
import { EnvironmentCredential } from "@azure/identity"
import { AuthProvider, AuthConfiguration } from "@microsoft/agents-bot-hosting"
class DevTokenProvider implements AuthProvider {
async getAccessToken(authConfig: AuthConfiguration): Promise<string> {
const id = new EnvironmentCredential()
const tokenResponse = await id.getToken("https://api.botframework.com/.default")
return tokenResponse.token
}
Para crear una instancia de CloudAdapter usando DevTokenProvider
const adapter = new CloudAdapter(authConfig, new DevTokenProvider())