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:
-
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" } -
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:
-
Principal Check: Ist der Schulleiter ein? OAuthUser ✓ (Spiele)
-
Aktionsprüfung: Ist die Aktion RefundTool ___process_refund? ✓ (Spiele)
-
Ressourcencheck: Ist die Ressource das Gateway für Rückerstattungen? ✓ (Spiele)
-
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.