View a markdown version of this page

Ablauf der Autorisierung - Amazon Grundgestein AgentCore

Ablauf der Autorisierung

Amazon Bedrock AgentCore Gateway bewertet die Richtlinien von Cedar anhand eingehender Anfragen. In diesem Abschnitt wird erklärt, wie die Autorisierungsinformationen von der Anfrage bis zur Richtlinienbewertung fließen.

Bearbeitung der Anfrage

Amazon Bedrock AgentCore Gateway verarbeitet zwei wichtige Informationen aus jeder Anfrage:

  1. JWT-Token — Enthält OAuth-Behauptungen über den Benutzer:

    { "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 — Der eigentliche Aufruf des Tools:

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

Autorisierungsanfrage für C

Das Gateway extrahiert Informationen aus beiden Quellen und erstellt eine Cedar-Autorisierungsanfrage.

Autorisierungsanfrage abschließen:

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

Komponenten:

Auftraggeber

Erstellt aus dem Unteranspruch des JWT-Tokens:

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

Aus dem Namen des Tools extrahiert:

AgentCore::Action::"RefundTool___process_refund"
Ressource

Die Gateway-Instanz:

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

Enthält die Tool-Argumente:

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

Entity Store — Die JWT-Ansprüche werden als Tags in der OAuthUser Entität gespeichert:

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

Richtlinienevaluierung

Cedar bewertet:

  1. Principal Check: Ist der Schulleiter ein? OAuthUser ✓ (Spiele)

  2. Aktionsprüfung: Ist die Aktion RefundTool ___process_refund? ✓ (Spiele)

  3. Ressourcencheck: Ist die Ressource das Gateway für Rückerstattungen? ✓ (Spiele)

  4. Zustandsprüfungen:

    • Hat der Schulleiter einen Benutzernamen-Tag? ✓ (ja, von JWT)

    • Ist Nutzername = „Refund-Agent“? ✓ (ja)

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

Ergebnis: ALLOW — Alle Schecks wurden bestanden, die Rückerstattung ist autorisiert.