Incorpore agentes de chat de Amazon Quick Suite en aplicaciones empresariales

Las organizaciones pueden enfrentar dos desafíos críticos con la IA conversacional. En primer lugar, los usuarios necesitan respuestas donde trabajan (en su CRM, consola de soporte o portal de análisis), no en herramientas separadas. En segundo lugar, implementar un chat integrado seguro en sus aplicaciones puede requerir semanas de desarrollo para crear autenticación, validación de tokens, seguridad de dominio e infraestructura de distribución global.

El chat integrado de Amazon Quick Suite ayuda a resolver el primer desafío al incorporar IA conversacional directamente a sus aplicaciones, para que los usuarios puedan consultar datos estructurados, buscar documentos y activar acciones sin cambiar de herramienta.

En esta publicación, le mostramos cómo resolver el segundo desafío con una solución de implementación con un solo clic para integrar los agentes de chat utilizando Quick Suite Embedding SDK en portales empresariales.

Descripción general de la solución

La solución implementa un portal web seguro para el chat integrado utilizando Amazon CloudFront para la entrega de contenido global, Amazon Cognito para la autenticación OAuth 2.0, Amazon API Gateway para puntos finales de API REST, AWS Lambda para el procesamiento de API sin servidor y la federación OpenID Connect (OIDC) para la integración de identidad con Quick Suite.

La solución implementa seguridad de defensa en profundidad con múltiples capas de protección: protección DDoS en CloudFront, un depósito privado de Amazon Simple Storage Service (Amazon S3) con control de acceso de origen que ayuda a evitar el acceso directo a los activos frontend, protección de limitación de velocidad de AWS WAF en API Gateway y validación de firma de JSON Web Token (JWT) utilizando claves públicas de Amazon Cognito antes de generar URL de inserción específicas de usuario por tiempo limitado con permisos de AWS Identity and Access Management (IAM) con privilegios mínimos.

El siguiente diagrama ilustra la arquitectura de la solución.

El flujo de trabajo consta de los siguientes pasos:

Los usuarios acceden a la URL del portal web, que los dirige a CloudFront. CloudFront utiliza el control de acceso de origen para recuperar archivos HTML, CSS y JavaScript desde un depósito privado de S3. La aplicación web busca un token de autenticación válido y redirige a los usuarios no autenticados a la interfaz de usuario alojada en Amazon Cognito para iniciar sesión en OAuth 2.0. Los usuarios ingresan las credenciales en la página de inicio de sesión de Amazon Cognito, que las valida y las redirecciona a la URL de CloudFront con un código de autorización de un solo uso. La aplicación extrae el código de autorización y realiza una llamada API HTTPS a API Gateway, que pasa por la limitación de velocidad de AWS WAF. API Gateway invoca una función Lambda con el código de autorización. La función Lambda realiza una llamada HTTPS de servidor a servidor al punto final del token OAuth de Amazon Cognito, intercambiando el código de autorización por tokens JWT (token de ID, token de acceso, token de actualización). La función valida la firma criptográfica del token de ID mediante el conjunto de claves web JSON (JWKS) de claves públicas de Amazon Cognito con almacenamiento en caché seguro para subprocesos.

El siguiente es un ejemplo de JWT decodificado:

{“at_hash”: “abcdefifB5vH2D0HEvLghi”, “sub”: “12345678-abcd-1234-efgh-123456789012”, “email_verified”: true, “iss”: “https://cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123”, “cognito:username”: “12345678-abcd-1234-efgh-123456789012”, “origin_jti”: “abcd1234-5678-90ef-ghij-klmnopqrstuv”, “aud”: “1a2b3c4d5e6f7g8h9i0j1k2l3m”, “event_id”: “a1b2c3d4-e5f6-7890-abcd-ef1234567890”, “token_use”: “id”, “auth_time”: 1704063600, “exp”: 1704067200, “iat”: 1704063600, “jti”: “abcdef12-3456-7890-abcd-ef1234567890”, “correo electrónico”: “usuario123@ejemplo.com”}

La función Lambda llama a la API AssumeRoleWithWebIdentity de AWS Security Token Service (AWS STS) con el token de ID verificado para asumir el rol de identidad web de IAM y recibir credenciales temporales de AWS. La función utiliza las credenciales temporales para llamar a la API Quick Suite ListUsers para verificar que el usuario existe y luego llama a la API GenerateEmbedUrlForRegisteredUser para ayudar a generar una URL integrada segura con restricciones de dominio. La función devuelve la URL para insertar en una respuesta JSON con encabezados de intercambio de recursos entre orígenes (CORS) a través de API Gateway a CloudFront. El siguiente es un ejemplo de URL para insertar:

{“ChatEmbedUrl”: “https://us-east-1.quicksight.aws.amazon.com/embedding/abcdefe827dd4ef8b4e1fb921db046c4/quick/chat?code=Abcdef….&identityprovider=quicksight&isauthcode=true”, “usuario”: “usuario123@ejemplo.com”}

La aplicación CloudFront utiliza el SDK de incrustación de Quick Suite para crear un contexto de incrustación y representar la interfaz de chat en un iframe HTML con comunicación segura entre orígenes.

Puede implementar la solución con los siguientes pasos de alto nivel:

Implemente la infraestructura sin servidor utilizando el kit de desarrollo en la nube de AWS (AWS CDK). Aprovisione usuarios en Amazon Cognito y Quick Suite. Comparta los activos de Quick Suite (agente de chat y conexiones asociadas, base de conocimientos). Acceda al portal web para utilizar los agentes de chat de Quick Suite.

Requisitos previos

Se requieren los siguientes requisitos previos para implementar la solución demostrada en esta publicación:

Implemente una infraestructura sin servidor utilizando AWS CDK

Complete los siguientes pasos para implementar la infraestructura sin servidor mediante AWS CDK:

Clona el repositorio de GitHub:

git clone git@github.com:aws-samples/sample-quicksuite-chat-embedding.git cd muestra-quicksuite-chat-embedding

Implementar la infraestructura:

Se le pedirá que ingrese su código de región de AWS, el ID de la pila de AWS CloudFormation y el título del portal, y su perfil de la CLI de AWS.

Aprovisionar usuarios en Amazon Cognito y Quick Suite

Complete los siguientes pasos para aprovisionar usuarios en Amazon Cognito y Quick Suite:

Cree un usuario de Amazon Cognito en un grupo de usuarios de Amazon Cognito:

scripts de Python/create_cognito_user.py –perfil

Cree un usuario federado en Quick Suite:

scripts de Python/create_quicksuite_user.py –perfil

Compartir agente de chat de Quick Suite

Complete los siguientes pasos para compartir su agente de chat de Quick Suite:

Inicie sesión en la consola de Quick Suite utilizando credenciales con el rol Quick Suite Author Pro. Elija Agentes de chat en el panel de navegación. Seleccione los agentes que desea compartir (por ejemplo, el asistente de pedidos de AnyCompany Ecom) y elija Compartir.

Busque el nombre de usuario (por ejemplo, usuario123@ejemplo.com) que creó anteriormente. Elija Compartir.

Después de compartir este agente, también deberá compartir cada recurso vinculado del agente por separado para confirmar la funcionalidad completa.

Acceda al portal web para utilizar los agentes de chat de Quick Suite

Complete los siguientes pasos para acceder al portal web y comenzar a utilizar los agentes del chat:

Busque la contraseña temporal en el correo electrónico de verificación de Amazon Cognito. Acceda a la URL de CloudFront desde su navegador web con el ID de usuario y la contraseña temporal. Se le pedirá que cambie su contraseña cuando inicie sesión por primera vez.

Después de iniciar sesión correctamente, podrá ver Mi asistente en la interfaz de chat.

Elija la región para conectarse a los agentes de chat personalizados de Quick Suite.

Para ver los agentes de chat compartidos con usted, elija Compartido conmigo en Filtro.

Elige el agente que quieras y empieza a chatear.

Las siguientes capturas de pantalla muestran las interacciones de chat de un representante de servicio al cliente que rastrea un pedido en línea de ejemplo y procesa su devolución según lo solicitó un cliente verificado por teléfono.

Limpiar

Para limpiar sus recursos, elimine los recursos de AWS implementados:

Conclusión

Esta solución aborda los desafíos principales para incorporar IA conversacional a escala: asegurar la autenticación para miles de usuarios simultáneos en ubicaciones globales, mantener la seguridad de nivel empresarial con pistas de auditoría integrales y simplificar la implementación con el aprovisionamiento automatizado de infraestructura. Puede personalizar la marca del portal, ajustar las políticas de seguridad e integrarse con los proveedores de identidad existentes. Puede escalar automáticamente a miles de usuarios simultáneos mientras mantiene los precios de pago por uso.

Para probar esta solución, clone el repositorio de GitHub e implemente la infraestructura completa con un solo clic para incorporar agentes de chat de Quick Suite.

Sobre los autores

Satyanarayana Adimula es constructor sénior en innovación y entrega de IA generativa de AWS. Aprovechando más de 20 años de experiencia en análisis y datos, se especializa en la creación de sistemas de IA agentes que permiten a las grandes empresas automatizar flujos de trabajo complejos, acelerar la toma de decisiones y lograr resultados comerciales mensurables.