View a markdown version of this page

Flusso di autorizzazione - Amazon Bedrock AgentCore

Flusso di autorizzazione

Amazon Bedrock AgentCore Gateway valuta le policy di Cedar rispetto alle richieste in entrata. Questa sezione spiega in che modo le informazioni di autorizzazione passano dalla richiesta alla valutazione delle policy.

Elaborazione della richiesta

Amazon Bedrock AgentCore Gateway elabora due informazioni chiave per ogni richiesta:

  1. Token JWT: contiene le affermazioni OAuth relative all'utente:

    { "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. MCP Tool Call Request - La chiamata effettiva dello strumento:

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

Richiesta di autorizzazione Cedar

Il Gateway estrae informazioni da entrambe le fonti e crea una richiesta di autorizzazione Cedar.

Richiesta di autorizzazione 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" } } }

Componenti:

Principale

Creato dal claim secondario del token JWT:

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

Estratto dal nome dello strumento:

AgentCore::Action::"RefundTool___process_refund"
Risorsa

L'istanza Gateway:

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

Contiene gli argomenti dello strumento:

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

Entity Store: le affermazioni JWT vengono archiviate come tag sull' OAuthUser entità:

{ "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" } }

Valutazione delle politiche

Cedar valuta:

  1. Controllo principale: il principale è un? OAuthUser ✓ (fiammiferi)

  2. Controllo dell'azione: l'azione è RefundTool ___process_refund? ✓ (partite)

  3. Controllo delle risorse: la risorsa è la porta di rimborso? ✓ (partite)

  4. Controlli delle condizioni:

    • Il preside ha un tag per il nome utente? ✓ (sì, da JWT)

    • Il nome utente è = «agente di rimborso»? ✓ (sì)

    • Context.input.amount < 500? ✓ (450 < 500)

Risultato: ALLOW - Tutti i controlli vengono superati, il rimborso è autorizzato.