View a markdown version of this page

Flusso di autorizzazioni - Fondamento Amazon AgentCore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Flusso di autorizzazioni

Amazon Bedrock AgentCore Gateway valuta le politiche di Cedar rispetto alle richieste in arrivo. Questa sezione spiega come le informazioni di autorizzazione fluiscono dalla richiesta alla valutazione delle politiche.

Elaborazione della richiesta

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

  1. Token JWT: contiene dichiarazioni OAuth sull'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 - L'effettiva chiamata 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 le 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 dalla rivendicazione secondaria 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 attestazioni 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" } }

Contesto della sessione per le politiche temporali

Quando è presente un'x-amzn-bedrock-agentcore-policy-session-idintestazione, il Gateway include il contesto della sessione nella richiesta di autorizzazione passata al policy engine. Il contesto della sessione fornisce la cronologia delle azioni accumulata per la sessione corrente. Le regole di politica temporale valutano i vincoli nel tempo utilizzando questa cronologia.

{ "principal": "AgentCore::OAuthUser::\"12345678-1234-1234-1234-123456789012\"", "action": "AgentCore::Action::\"PaymentTool___transfer_funds\"", "resource": "AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/my-gateway\"", "context": { "input": { "amount": 500, "recipient": "account-789" } }, "sessionId": "12345678-1234-1234-1234-123456789012" }

Il sessionId campo collega la richiesta corrente alla cronologia della sessione. Il policy engine risolve lo stato della sessione e valuta tutte le regole temporali applicabili rispetto alla catena di azioni accumulata.

Per dettagli sulla fornitura dell'ID di sessione, sul ciclo di vita della sessione e su come l'identità si propaga tra chiamate multi-hop, vedi Sessioni di policy e propagazione dell'identità. Sessioni di policy e propagazione delle identità

Valutazione delle politiche

Cedar valuta:

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

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

  3. Controllo delle risorse: la risorsa è il gateway per i rimborsi? ✓ (corrisponde)

  4. Controlli delle condizioni:

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

    • Il nome utente è = «refund-agent»? ✓ (sì)

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

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