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:
-
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" } -
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:
-
Verificación principal: ¿El director es un? OAuthUser ✓ (coincide)
-
Verificación de la acción: ¿La acción es RefundTool ___process_refund? ✓ (coincide)
-
Verificación de recursos: ¿Es el recurso la pasarela de reembolsos? ✓ (coincide)
-
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.