View a markdown version of this page

Alur otorisasi - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Alur otorisasi

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

Pemrosesan permintaan

Amazon Bedrock AgentCore Gateway memproses dua bagian informasi utama 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 - Panggilan 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 OAuthUser entitas:

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

Konteks sesi untuk kebijakan temporal

Ketika x-amzn-bedrock-agentcore-policy-session-id header hadir, Gateway menyertakan konteks sesi dalam permintaan otorisasi yang diteruskan ke mesin kebijakan. Konteks sesi menyediakan riwayat tindakan terakumulasi untuk sesi saat ini. Aturan kebijakan temporal mengevaluasi kendala dari waktu ke waktu menggunakan riwayat ini.

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

Bid sessionId ang menautkan permintaan saat ini ke riwayat sesinya. Mesin kebijakan menyelesaikan status sesi dan mengevaluasi semua aturan temporal yang berlaku terhadap rantai tindakan yang terakumulasi.

Untuk detail tentang penyediaan ID sesi, siklus hidup sesi, dan bagaimana identitas menyebar di seluruh panggilan multi-hop, lihat Sesi kebijakan dan propagasi identitas.

Evaluasi kebijakan

Cedar mengevaluasi:

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

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

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

  4. Pemeriksaan kondisi:

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

    • Apakah nama pengguna = “agen pengembalian dana”? ✓ (ya)

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

Hasil: IZ INKAN - Semua cek lulus, pengembalian dana diotorisasi.