Lompat ke konten
Rahman FakhruDiskusi proyek

Pelajaran 04 / 09

4. Auth, Scope, Approval, dan Security Boundary

Membuat identity server-derived, scope parity di list/call, approval yang tidak bisa direplay, dan boundary multi-tenant yang aman.

Visual

Auth, Scope, Approval, dan Security Boundary

Identity dari Credential, Bukan Model

Identity tidak boleh berasal dari arguments tool. Flow yang sehat:

credential → principal → memberships → permissions → visible catalog → call-time authorization

Membership/ownership harus diperiksa lagi saat call, terutama pada sistem multi-tenant.

Scope Harus Berlaku Saat List dan Call

User dengan scope read seharusnya tidak melihat write tools pada tools/list, dan tetap ditolak jika mencoba memanggil write tool secara langsung.

Visibility bukan security boundary. Backend handler tetap harus enforce permission.

Annotations

  • readOnlyHint
  • destructiveHint
  • idempotentHint
  • openWorldHint

Annotation harus cocok dengan behavior nyata, tetapi annotation bukan pengganti authorization.

Approval

Untuk action destructive/irreversible, approval harus dibind ke exact action + canonical arguments, single-use, dan tidak dapat dipakai ulang setelah arguments berubah.

Fail closed: policy denied tidak boleh dicari bypass; approval required berarti berhenti dan menunggu manusia.

Bangun MCP dengan Boundary yang Benar

Buat MCP kamu sendiri

Gunakan MCP Builder Kit sebagai starter/reference production-grade.

Buka MCP Builder Kit di GitHub →

Baca alasan kenapa MCP penting →