Configuración de la autenticación para complementos de API en agentes
Puede configurar la autenticación para complementos de API en agentes que se ejecutan en Microsoft 365 Copilot mediante cualquiera de los cuatro esquemas de autenticación admitidos para conectarse sin problemas a sus API de back-end:
- Flujo de código de autorización de OAuth 2.0
- Microsoft Entra ID autenticación de inicio de sesión único (SSO)
- Autenticación de clave de API
- Sin autenticación (anónimo)
Flujo de código de autorización de OAuth 2.0
Un complemento puede acceder a una API mediante un token de portador obtenido mediante el flujo de código de autorización de OAuth 2.0, con compatibilidad opcional con la clave de prueba para intercambio de código (PKCE).
Antes de empezar, debe registrarse con el proveedor de OAuth 2.0 para obtener un identificador de cliente y un secreto. Si el proveedor de OAuth requiere que especifique los URI de redireccionamiento permitidos durante el registro de la aplicación, asegúrese de incluir https://teams.microsoft.com/api/platform/v1.0/oAuthRedirect
en la lista.
Importante
La compatibilidad del complemento de API con OAuth 2.0 tiene las siguientes limitaciones.
- Los complementos de API solo admiten el flujo de código de autorización para OAuth 2.0.
- No se admiten los servidores de OAuth 2.0 que devuelven
307 Temporary Redirect
códigos de estado HTTP desde su punto de conexión de token.
Puede definir este esquema en la securitySchemes
propiedad de un documento de OpenAPI. Para obtener más información, vea OAuth 2.0.
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: <authorization_url>
tokenUrl: <token_url>
refreshUrl: <refresh_url>
scopes:
scope: description
Para habilitar la autenticación de OAuth 2.0, debe registrar un cliente de OAuth en el portal para desarrolladores de Teams. Puede registrar un cliente de OAuth con Teams Toolkit en Visual Studio Code o registrarse manualmente en el portal para desarrolladores de Teams.
Registro de un cliente de OAuth con Teams Toolkit
Teams Toolkit registra el cliente de OAuth y actualiza el paquete de la aplicación automáticamente al crear un agente con el complemento de API a partir de un documento de OpenAPI existente. Debe tener la propiedad definida en el securitySchemes
documento de OpenAPI.
Si el proveedor de OAuth admite PKCE, quite la marca de comentario de la siguiente línea de código en teamsapp.yml en el proyecto del agente antes de aprovisionar el agente.
# isPKCEEnabled: true
Registro de un cliente de OAuth en el portal para desarrolladores de Teams
Abra el portal para desarrolladores de Teams. Seleccione Herramientas ->Registro de cliente de OAuth.
Si no tiene registros existentes, seleccione Registrar cliente. Si tiene registros existentes, seleccione Nuevo registro de cliente de OAuth.
Rellene los campos siguientes.
- Nombre de registro: un nombre descriptivo para el registro.
-
Dirección URL base: dirección URL base de la API. Este valor debe corresponder a una entrada de la matriz en el
servers
documento de OpenAPI. - Id. de cliente: identificador de cliente o de aplicación emitido por el proveedor de OAuth 2.0.
- Secreto de cliente: secreto de cliente emitido por el proveedor de OAuth 2.0.
- Punto de conexión de autorización: dirección URL del proveedor de OAuth 2.0 que las aplicaciones usan para solicitar un código de autorización
- Punto de conexión de token: dirección URL del proveedor de OAuth 2.0 que las aplicaciones usan para canjear un código por un token de acceso
- Actualizar punto de conexión: dirección URL del proveedor de OAuth 2.0 que las aplicaciones usan para actualizar el token de acceso
- Ámbito: ámbito de permiso definido por la API que permite el acceso.
- Habilitar clave de prueba para intercambio de código (PKCE): habilite esta configuración si el proveedor de OAuth admite PKCE.
Haga clic en Guardar.
Completar el registro genera un identificador de registro de cliente de OAuth.
Agregar el identificador de registro de cliente al manifiesto del complemento
Para usar la autenticación de OAuth 2.0 para el complemento de API, establezca la type
propiedad del objeto OAuthPluginVault
de autenticación en tiempo de ejecución en y establezca en el reference_id
identificador de registro de cliente desde el Portal para desarrolladores de Teams.
"auth": {
"type": "OAuthPluginVault",
"reference_id": "auth registration ID"
},
Microsoft Entra ID autenticación de SSO
Microsoft Entra ID autenticación de SSO permite la integración de inicio de sesión único (SSO) sin problemas, lo que permite a los usuarios autenticarse con sus credenciales de Microsoft Entra ID existentes. Esta integración simplifica la administración del acceso y garantiza conexiones seguras a las API sin necesidad de credenciales adicionales. La API debe usar Microsoft Entra ID para controlar el acceso.
Registro de un cliente de SSO en el portal para desarrolladores de Teams
Abra el portal para desarrolladores de Teams. Seleccione Herramientas ->Microsoft Entra registro de identificador de cliente de SSO.
Si no tiene registros existentes, seleccione Registrar identificador de cliente. Si tiene registros existentes, seleccione Nuevo registro de cliente.
Rellene los campos siguientes.
- Nombre de registro: un nombre descriptivo para el registro.
-
Dirección URL base: dirección URL base de la API. Este valor debe corresponder a una entrada de la matriz en el
servers
documento de OpenAPI. - Restringir el uso por organización: seleccione qué organización de Microsoft 365 tiene acceso a la aplicación para acceder a los puntos de conexión de API.
- Restringir el uso por aplicación: seleccione Cualquier aplicación de Teams si no conoce el identificador final de la aplicación. Después de publicar la aplicación, enlace este registro con el identificador de aplicación publicado.
- Id. de cliente: el identificador de cliente de la aplicación registrada en Microsoft Entra.
Haga clic en Guardar.
Al completar el registro, se genera un identificador de registro de sso de Microsoft Entra y un URI de identificador de aplicación.
Actualización del registro de la aplicación Microsoft Entra
Abra Centro de administración Microsoft Entra. Actualice el registro de Microsoft Entra aplicación que protege la API con el URI del identificador de aplicación generado por el portal para desarrolladores de Teams. Si tiene un URI de identificador de aplicación existente asignado al registro de la aplicación, puede usar el editor de manifiestos para agregar otro URI en la sección identifierUris .
"identifierUris": [ "<<URI1>>" "<<URI2>>" ]
Nota:
No se admite la adición de varios URI a través de la interfaz de usuario del Centro de administración Microsoft Entra. La interfaz de usuario solo muestra el primer URI de la lista. Agregar varios URI no afecta a los URI y ámbitos existentes aunque se muestren de forma diferente en la interfaz de usuario.
Seleccione Autenticación en Administrar. Agregue
https://teams.microsoft.com/api/platform/v1.0/oAuthConsentRedirect
a los URI de redireccionamiento en la plataforma web .Seleccione Exponer una API en Administrar. Seleccione Agregar una aplicación cliente y agregue el identificador de cliente del almacén de tokens empresariales de Microsoft,
ab3be6b7-f5df-413d-ac2d-abf1e3fd9c0b
.
Adición del identificador de registro de SSO al manifiesto del complemento
Establezca la type
propiedad del objeto OAuthPluginVault
de autenticación en tiempo de ejecución en y establezca en reference_id
el Microsoft Entra identificador de registro de SSO desde el portal para desarrolladores de Teams.
"auth": {
"type": "OAuthPluginVault",
"reference_id": "SSO registration ID"
},
Adición de la nueva audiencia de token a la API
Actualice la API para permitir el nuevo URI de identificador como audiencia del token. Si la API valida el identificador de aplicación cliente, asegúrese de que el identificador de cliente del almacén de tokens de Microsoft Enterprise (ab3be6b7-f5df-413d-ac2d-abf1e3fd9c0b
) se agrega como una aplicación cliente permitida.
Sugerencia
Si la API usa el flujo en nombre de para obtener acceso a otra API web que requiere que el usuario conceda consentimiento, devuelva un 401 Unauthorized
error para que el agente pida al usuario que inicie sesión para conceder el consentimiento.
Autenticación de clave de API
Algunas API usan claves de API para la autorización. Una clave de API es un secreto compartido que el cliente incluye en las solicitudes de API para autenticarse y obtener acceso. Los complementos de API admiten el envío de la clave de API de tres maneras:
- Como token de portador en el
Authorization
encabezado - Como valor en un encabezado personalizado
- Como parámetro de consulta
Adición de una clave de API al documento de OpenAPI
Microsoft 365 Copilot determina cómo enviar la clave de API en función de la securitySchemes
entrada del documento de OpenAPI.
Token de portador
Si la API acepta la clave de API como token de portador, habilite la autenticación de portador en el documento de OpenAPI. Para obtener más información, consulte Autenticación del portador.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
Encabezado personalizado
Si la API acepta la clave de API en un encabezado personalizado, habilite la autenticación de clave de API en el documento de OpenAPI con la in
propiedad establecida header
en y la name
propiedad establecida en el nombre del encabezado. Para obtener más información, consulte Claves de API.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
Parámetro de consulta
Si la API acepta la clave de API en un parámetro de consulta, habilite la autenticación de clave de API en el documento de OpenAPI con la in
propiedad establecida query
en y la name
propiedad establecida en el nombre del parámetro de consulta. Para obtener más información, consulte Claves de API.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: query
name: api_key
Registro de una clave de API
Para habilitar la autenticación de clave de API, debe registrar la clave de API en el portal para desarrolladores de Teams. Puede registrar la clave de API con el kit de herramientas de Teams en Visual Studio Code o mediante el registro manual en el portal para desarrolladores de Teams.
Registro de una clave de API con el kit de herramientas de Teams
Teams Toolkit registra la clave de API y actualiza el paquete de la aplicación automáticamente al crear un agente con el complemento de API a partir de un documento de OpenAPI existente. Debe tener la propiedad definida en el securitySchemes
documento de OpenAPI.
Nota:
Teams Toolkit solo admite claves de API como tokens de portador y no puede crear complementos de API basados en documentos de OpenAPI que usen un encabezado personalizado o un parámetro de consulta. Como solución alternativa, puede quitar temporalmente las securitySchemes
propiedades y security
de OpenAPI para generar el paquete del complemento y, a continuación, volver a agregarlas al documento de OpenAPI en el proyecto del complemento antes del aprovisionamiento. Debe registrar manualmente la clave de API.
Registro de una clave de API en el portal para desarrolladores de Teams
Abra el portal para desarrolladores de Teams. Selección de Herramientas:>registro de claves de API
Si no tiene registros existentes, seleccione Crear una clave de API. Si tiene registros existentes, seleccione Nueva clave de API.
Seleccione Agregar secreto y escriba la clave de API.
Rellene los campos siguientes.
- Nombre de clave de API: un nombre descriptivo para el registro.
-
Dirección URL base: dirección URL base de la API. Este valor debe corresponder a una entrada de la matriz en el
servers
documento de OpenAPI. - Inquilino de destino: limite el acceso de la API al inquilino principal o no.
- Aplicación de Teams de destino: seleccione Cualquier aplicación de Teams si no conoce el identificador final de la aplicación. Después de publicar la aplicación, enlace este registro con el identificador de aplicación publicado.
Haga clic en Guardar.
Completar el registro genera un identificador de registro de clave de API.
Adición del identificador de registro de clave de API al manifiesto del complemento
- En el archivo de manifiesto del complemento, establezca la
type
propiedad del objetoApiKeyPluginVault
de autenticación en tiempo de ejecución en y establezca en elreference_id
identificador de registro de clave de API desde el portal para desarrolladores de Teams.
"auth": {
"type": "ApiKeyPluginVault",
"reference_id": "app key registration ID"
},
Sin autenticación (anónimo)
En el caso de las API que no requieren ninguna autenticación o para entornos de desarrollador en los que aún no se ha implementado la autenticación, los complementos pueden acceder a las API de forma anónima. En este caso, establezca la type
propiedad del objeto None
de autenticación en tiempo de ejecución en .
"auth": {
"type": "None"
},