View a markdown version of this page

Aliran otorisasi - Batuan Dasar Amazon AgentCore

Aliran otorisasi

Amazon Bedrock AgentCore Gateway mengevaluasi kebijakan Cedar terhadap permintaan yang masuk. Bagian ini menjelaskan bagaimana informasi otorisasi mengalir dari permintaan ke evaluasi kebijakan.

Permintaan pemrosesan

Amazon Bedrock AgentCore Gateway memproses dua informasi penting dari setiap permintaan:

  1. Token JWT - Berisi klaim OAuth tentang pengguna:

    { "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. Permintaan Panggilan Alat MCP - Pemanggilan alat yang sebenarnya:

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

Permintaan otorisasi Cedar

Gateway mengekstrak informasi dari kedua sumber dan membuat permintaan otorisasi Cedar.

Permintaan Otorisasi Lengkap:

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

Komponen:

Principal

Dibuat dari sub klaim token JWT:

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

Diekstrak dari nama alat:

AgentCore::Action::"RefundTool___process_refund"
Sumber daya

Contoh Gateway:

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

Berisi argumen alat:

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

Entity Store - Klaim JWT disimpan sebagai tag pada entitas: OAuthUser

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

Evaluasi kebijakan

Cedar mengevaluasi:

  1. Pemeriksaan utama: Apakah kepala sekolah itu OAuthUser? ✓ (pertandingan)

  2. Pemeriksaan tindakan: Apakah tindakan RefundTool ___process_refund? ✓ (pertandingan)

  3. Pemeriksaan sumber daya: Apakah sumber daya merupakan gateway pengembalian dana? ✓ (pertandingan)

  4. Pemeriksaan kondisi:

    • Apakah prinsipal memiliki tag nama pengguna? ✓ (ya, dari JWT)

    • Apakah username = “refund-agent”? ✓ (ya)

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

Hasil: IZINKAN - Semua cek lulus, pengembalian dana diotorisasi.