Agregar búsqueda web segura a Claude Desktop usando Amazon Bedrock AgentCore
Aprenda a cerrar la brecha de conocimiento de los modelos conectando Claude Desktop a Web Search mediante Amazon Bedrock AgentCore y JWT. Este artículo explica la arquitectura, requisitos y pasos clave para una integración segura dentro de AWS.
Resumen
Claude Desktop en Amazon Bedrock ofrece asistencia generativa potente, pero los modelos tienen un límite: no pueden acceder por su cuenta a información actualizada posterior a su cutoff de entrenamiento. Para obtener datos en tiempo real —como documentación reciente, precios vigentes o estado del clima— conviene integrar una búsqueda web segura.
Amazon Bedrock AgentCore ofrece una plataforma para crear, conectar y optimizar agentes a escala, y su componente AgentCore Gateway permite integrar servicios externos de forma controlada. Con la funcionalidad Web Search, compatible con el Model Context Protocol (MCP), pueden realizar búsquedas respaldadas por un índice web administrado por Amazon que cubre decenas de miles de millones de documentos. Crucialmente, todo el tráfico de consultas permanece dentro de la infraestructura de AWS, sin claves de API externas y sin que las consultas salgan del perímetro.
En este artículo explico la arquitectura, los prerrequisitos y los pasos principales para conectar Claude Desktop a Web Search mediante AgentCore Gateway, usando autenticación entrante basada en JSON Web Token (JWT) federada desde AWS IAM Identity Center a través de Amazon Cognito.
¿Por qué integrar Web Search con Claude Desktop?
- Actualidad: permite que Claude acceda a contenido reciente sin depender únicamente del conocimiento almacenado en el modelo.
- Seguridad y gobernanza: toda la comunicación puede quedar dentro de AWS, alineada con políticas corporativas y controles de identidad.
- Compatibilidad MCP: Web Search es un objetivo compatible con MCP, lo que facilita su uso con servidores MCP administrados por Claude Desktop.
Para equipos y tomadores de decisión en América Latina, esto implica poder ofrecer respuestas más actuales a clientes y usuarios internos sin exponer datos a proveedores externos ni gestionar múltiples credenciales.
Arquitectura y flujo de autenticación
La integración propuesta se apoya en la identidad empresarial y en una cadena de confianza dentro de AWS:
- AWS IAM Identity Center actúa como el proveedor de acceso único (SSO) de la organización.
- IAM Identity Center autentica al usuario mediante SAML.
- Amazon Cognito funciona como capa de federación y emite tokens OpenID Connect (JWT) usando el flujo de autorización OAuth 2.0 (authorization code grant).
- El AgentCore Gateway valida los JWT en cada solicitud y permite que Claude Desktop invoque el objetivo Web Search.
Este diseño evita introducir proveedores de identidad terceros fuera de AWS y facilita la gobernanza con los controles existentes de la organización.
Regiones donde está disponible Web Search
Web Search en Amazon Bedrock AgentCore está disponible actualmente en las siguientes regiones: US East (N. Virginia) us-east-1, Europe (Ireland) eu-west-1 y Asia Pacific (Tokyo) ap-northeast-1. Asegúrese de crear y verificar su gateway en una de estas regiones.
Requisitos previos
- Cuenta AWS con permisos para crear roles IAM y recursos de Amazon Bedrock AgentCore.
- Acceso administrativo al account de gestión en AWS Organizations para configurar AWS IAM Identity Center.
- AWS IAM Identity Center ya preconfigurado para SSO a las cuentas AWS.
- Claude Desktop configurado para usar Amazon Bedrock como proveedor de inferencia.
- AWS CLI v2 instalado y configurado.
- Python 3.10 o posterior.
- SDK Boto3 actualizado a la versión más reciente.
Pasos clave (resumen y comandos de ejemplo)
A continuación se describen los pasos esenciales para establecer la federación y la emisión de JWT mediante Cognito. Los comandos mostrados son los ejemplificados para crear el pool de usuarios y registrar el IdP SAML; ajuste variables como $AWS_REGION y prefijos de dominio según su entorno.
Paso 1: Crear un user pool en Amazon Cognito
En la cuenta objetivo cree un user pool que actuará como emisor OIDC para el AgentCore Gateway. Ejemplo de comandos (adaptar AWS_REGION y el dominio único):
export AWS_REGION=<your-region>
# Create User Pool
aws cognito-idp create-user-pool \
--pool-name "agentcore-websearch-pool" \
--region $AWS_REGION \
--auto-verified-attributes email \
--schema '[{"Name":"email","Required":true,"Mutable":true,"AttributeDataType":"String"}]' \
--username-attributes email \
--username-configuration "CaseSensitive=false" \
--mfa-configuration "OFF"
# Note the Pool ID
export USER_POOL_ID=$(aws cognito-idp list-user-pools --max-results 10 \
--region $AWS_REGION \
--query "UserPools[?Name=='agentcore-websearch-pool'].Id" --output text)
echo "User Pool ID: $USER_POOL_ID"
# Create a domain (must be globally unique)
aws cognito-idp create-user-pool-domain \
--domain "<your-unique-prefix>" \
--user-pool-id $USER_POOL_ID \
--region $AWS_REGION
Guarde estos valores:
- User Pool ID:
$USER_POOL_ID - Domain:
<your-unique-prefix>.auth.<region>.amazoncognito.com - Audience:
urn:amazon:cognito:sp:<user-pool-id> - ACS URL:
https://<your-unique-prefix>.auth.<region>.amazoncognito.com/saml2/idpresponse
Paso 2: Configurar la aplicación SAML en IAM Identity Center
En la cuenta de gestión de AWS Organizations cree una aplicación SAML para federar con Cognito:
- En la consola de IAM Identity Center, agregue una aplicación SAML 2.0.
- Use ACS URL y Audience indicados arriba.
- Descargue el archivo XML de metadata SAML.
- En los mappings de atributos, establezca Subject →
${user:subject}(Persistent) y Email →${user:email}(Basic). - Asigne los usuarios o grupos que necesiten acceder a Web Search.
Paso 3: Registrar IAM Identity Center como IdP SAML en Cognito
En la cuenta objetivo registre el IdP SAML en el user pool de Cognito usando la metadata descargada. Ejemplo (reemplace la ruta del archivo y el pool ID):
# Add IAM Identity Center as SAML IdP
METADATA=$(cat /path/to/downloaded-metadata.xml)
aws cognito-idp create-identity-provider \
--user-pool-id $USER_POOL_ID \
--provider-name "IAMIdentityCenterIdP" \
--provider-type SAML \
--provider-details "{\"MetadataFile\": $(echo \"$METADATA\" | python3 -c 'import sys,json; print(json.dumps(sys.stdin.read()))')}" \
--attribute-mapping '{"email": "email"}' \
--region $AWS_REGION
Con esto, Cognito puede aceptar autenticaciones SAML provenientes de IAM Identity Center y emitir tokens JWT.
Cómo encaja Claude Desktop y AgentCore Gateway
Claude Desktop puede usar servidores MCP administrados para conectarse a AgentCore Gateway con el objetivo Web Search habilitado. El Gateway valida los JWT emitidos por Cognito en cada petición, por lo que la autenticación y autorización permanecen dentro de la cadena de confianza de AWS. Esto facilita integrar búsquedas actuales con el menor número posible de credenciales adicionales y sin exponer llamadas a APIs externas.
Buenas prácticas y consideraciones para América Latina
- Gobernanza: aproveche IAM Identity Center para controlar accesos por rol y auditar uso, alineado con políticas corporativas locales.
- Regiones: verifique que su gateway y recursos estén en una de las regiones donde Web Search está disponible; esto puede influir en latencia y cumplimiento.
- Seguridad: examinen la administración de dominios Cognito y la caducidad de tokens JWT para ajustar la experiencia de usuario y riesgo.
- Costos y escalabilidad: evalúen cómo el tráfico de búsqueda y las llamadas desde Claude impactarán en sus facturas de Bedrock y servicios asociados.
Conclusión
Conectar Claude Desktop a Web Search mediante Amazon Bedrock AgentCore y una cadena de identidad que usa IAM Identity Center → Cognito → JWT permite a las organizaciones ofrecer respuestas más actualizadas y seguras, manteniendo todas las validaciones dentro de AWS. Para equipos en Latinoamérica, esta alternativa brinda control, cumplimiento y simplificación operativa al integrar capacidades de búsqueda web sin depender de APIs externas.
Si desean avanzar, los pasos mostrados cubren la creación del user pool, la federación SAML y el registro del IdP; el siguiente paso es crear el cliente de aplicación en Cognito y configurar el AgentCore Gateway para aceptar los JWT emitidos, y luego conectar Claude Desktop mediante MCP a ese gateway.
Fuente original: AWS ML Blog