View a markdown version of this page

Flujo de autorización - Amazon Bedrock AgentCore

Flujo de autorización

Amazon Bedrock AgentCore Gateway evalúa las políticas de Cedar en función de las solicitudes entrantes. En esta sección se explica cómo fluye la información de autorización desde la solicitud hasta la evaluación de la política.

Procesamiento de solicitudes

Amazon Bedrock AgentCore Gateway procesa dos datos clave de cada solicitud:

  1. Token JWT: contiene las afirmaciones de OAuth sobre el usuario:

    { "sub": "12345678-1234-1234-1234-123456789012", "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_Vg2efaoGO", "username": "refund-agent", "scope": "aws.cognito.signin.user.admin refund:write", "role": "admin", "department": "finance" }
  2. Solicitud de llamada a la herramienta MCP: la invocación real de la herramienta:

    { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "RefundTool___process_refund", "arguments": { "orderId": "12345", "amount": 450, "reason": "Defective product" } } }

Solicitud de autorización de Cedar

The Gateway extrae información de ambas fuentes y elabora una solicitud de autorización de Cedar.

Solicitud de autorización completa:

{ "principal": "AgentCore::OAuthUser::\"12345678-1234-1234-1234-123456789012\"", "action": "AgentCore::Action::\"RefundTool___process_refund\"", "resource": "AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway\"", "context": { "input": { "orderId": "12345", "amount": 450, "reason": "Defective product" } } }

Componentes:

Principal

Creado a partir de la afirmación secundaria del token JWT:

AgentCore::OAuthUser::"12345678-1234-1234-1234-123456789012"
Action

Extraído del nombre de la herramienta:

AgentCore::Action::"RefundTool___process_refund"
Recurso

La instancia de Gateway:

AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway"
Contexto

Contiene los argumentos de la herramienta:

{ "input": { "orderId": "12345", "amount": 450, "reason": "Defective product" } }

Entity Store: las afirmaciones de JWT se almacenan como etiquetas en la OAuthUser entidad:

{ "uid": { "type": "AgentCore::OAuthUser", "id": "12345678-1234-1234-1234-123456789012" }, "attrs": { "id": "12345678-1234-1234-1234-123456789012" }, "tags": { "username": "refund-agent", "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_Vg2efaoGO", "scope": "aws.cognito.signin.user.admin refund:write", "role": "admin", "department": "finance" } }

Evaluación de políticas

Cedar evalúa:

  1. Verificación principal: ¿El director es un? OAuthUser ✓ (coincide)

  2. Verificación de la acción: ¿La acción es RefundTool ___process_refund? ✓ (coincide)

  3. Verificación de recursos: ¿Es el recurso la pasarela de reembolsos? ✓ (coincide)

  4. Comprobaciones de estado:

    • ¿El director tiene una etiqueta de nombre de usuario? ✓ (sí, de JWT)

    • ¿Nombre de usuario = «agente de reembolso»? ✓ (sí)

    • ¿Es context.input.amount < 500? ✓ (450 < 500)

Resultado: PERMITIR: se aprueban todos los cheques y se autoriza el reembolso.