Integrasi dengan Model Context Protocol (MCP)
Saat ini, terdapat empat versi spesifikasi Model Context Protocol (MCP):
- 2025-11-25 (versi terakhir)
- 2025-06-18
- 2025-03-26
- 2024-11-05 (versi awal)
Versi awal (2024-11-05) tidak mencakup otorisasi, oleh karena itu tidak dicakup dalam panduan ini.
Panduan ini menunjukkan kepada Anda hal-hal berikut:
- Versi MCP yang didukung oleh NQRust-Identity.
- Cara mengatur NQRust-Identity sebagai server otorisasi dalam MCP.
Namun, panduan ini tidak mencakup semua yang perlu Anda ketahui. Oleh karena itu, disarankan untuk membaca juga bagian otorisasi dari versi MCP yang relevan.
Kepatuhan Standar MCP yang Diperlukan
Menurut spesifikasi MCP (opens in a new tab), terdapat beberapa standar tentang server otorisasi dalam MCP. Tabel berikut menunjukkan:
- Versi MCP yang meminta server otorisasi untuk mendukung standar mana pada tingkat mana (MUST, SHOULD, MAY).
- Standar mana yang dipatuhi oleh NQRust-Identity.
| Standar | 2025-11-25 | 2025-06-18 | 2025-03-26 | NQRust-Identity |
|---|---|---|---|---|
| The OAuth 2.1 Authorization Framework (Internet Draft) (opens in a new tab) | MUST | MUST | MUST | Didukung |
| OAuth 2.0 Authorization Server Metadata (RFC 8414) (opens in a new tab) | MUST | MUST | MUST | Didukung |
| Resource Indicators for OAuth 2.0 (RFC 8707) (opens in a new tab) | MUST | MUST | - | Tidak didukung |
| OAuth 2.0 Dynamic Client Registration Protocol (RFC 7591) (opens in a new tab) | MAY | SHOULD | SHOULD | Didukung |
| OAuth Client ID Metadata Document (Internet Draft) (opens in a new tab) | SHOULD | - | - | Didukung |
Dukungan OAuth Client ID Metadata Document di NQRust-Identity adalah fitur eksperimental. Fitur ini mungkin mengakibatkan perubahan yang merusak pada versi NQRust-Identity mendatang.
Spesifikasi MCP mengadopsi OAuth 2.0 Protected Resource Metadata (RFC 9728) (opens in a new tab). Standar ini untuk server MCP dan bukan untuk server otorisasi seperti NQRust-Identity. Oleh karena itu, tidak termasuk dalam tabel di atas.
Kepatuhan Versi MCP
Dalam panduan ini, sebagai kriteria untuk kepatuhan, "NQRust-Identity mendukung MCP" berarti NQRust-Identity memenuhi semua persyaratan MUST dan SHOULD oleh MCP.
Menurut kriteria ini, tabel berikut menunjukkan versi MCP yang didukung oleh NQRust-Identity.
| Versi MCP | Konformitas |
|---|---|
| 2025-03-26 (opens in a new tab) | Didukung |
| 2025-06-18 (opens in a new tab) | Didukung Sebagian tanpa Resource Indicators for OAuth 2.0 |
| 2025-11-25 (opens in a new tab) | Didukung Sebagian tanpa Resource Indicators for OAuth 2.0 |
Pengaturan
Untuk MCP 2025-03-26
Tidak diperlukan pengaturan khusus.
Untuk MCP 2025-06-18 dan 2025-11-25
Pengikatan dan Validasi Audiens Token
Untuk mendapatkan manfaat keamanan, spesifikasi MCP meminta token akses untuk diikat dengan audiensnya. Untuk melakukan hal ini, spesifikasi MCP meminta hal berikut:
- Sebuah klien MCP HARUS memasukkan parameter
resourceyang didefinisikan dalam Resource Indicators for OAuth 2.0 (RFC 8707) (opens in a new tab) dalam permintaan otorisasi dan permintaan token. Nilai parameter HARUS mengidentifikasi server MCP yang klien MCP bermaksud untuk menggunakan token dengan. - Sebuah server MCP HARUS memvalidasi bahwa token yang diajukan kepada mereka diterbitkan khusus untuk penggunaan mereka.
Spesifikasi MCP tidak menjelaskan bagaimana melakukan pengikatan ini. Salah satu metode untuk pengikatan ini adalah dengan menetapkan nilai parameter resource ke klaim aud dalam token akses. Namun, NQRust-Identity tidak dapat mengenali parameter resource.
Komunitas NQRust-Identity sedang berencana untuk mendukung Resource Indicators for OAuth 2.0 (RFC 8707) untuk NQRust-Identity agar NQRust-Identity dapat mengenali dan memproses parameter resource sesuai harapan spesifikasi MCP. Sebelum dukungan ini selesai, Anda dapat menggunakan parameter scope OAuth 2.0 sebagai gantinya dari parameter resource. Untuk menunjukkan pengikatan, silakan pertimbangkan situasi berikut:
- URL server MCP adalah
https://example.com/mcp - MCP mendukung tiga lingkup berikut:
mcp:tools,mcp:prompts, danmcp:resources. - Untuk mendapatkan token akses untuk mengakses server MCP, klien MCP mengirim ke NQRust-Identity permintaan otorisasi yang nilai parameter
resourceadalahhttps://example.com/mcpdan parameterscopemencakup kombinasi dari tiga lingkup tersebut. - Kami ingin NQRust-Identity untuk mengeluarkan token akses yang nilai klaim
audadalah URL server MCP, yaituhttps://example.com/mcp.
Untuk membuat NQRust-Identity mengeluarkan token akses seperti itu, kita dapat mengonfigurasi NQRust-Identity sebagai berikut:
- Tambah lingkup klien
mcp:toolsdengan tipeOptional. - Tambah ke lingkup klien pengubah
Audiencebaru dengan bidangIncluded Custom Audienceadalahhttps://example.com/mcp. - Tambah lingkup klien
mcp:promptsdengan tipeOptional. - Tambah ke lingkup klien pengubah
Audiencebaru dengan bidangIncluded Custom Audienceadalahhttps://example.com/mcp. - Tambah lingkup klien
mcp:resourcesdengan tipeOptional. - Tambah ke lingkup klien pengubah
Audiencebaru dengan bidangIncluded Custom Audienceadalahhttps://example.com/mcp.
Harap dicatat bahwa bidang Included Custom Audience lingkup klien harus sama dengan nilai parameter resource permintaan otorisasi dan URL server MCP.
Dengan konfigurasi ini, jika klien MCP mengirim ke NQRust-Identity permintaan otorisasi yang nilai parameter resource adalah https://example.com/mcp dan parameter scope mencakup mcp:resources, mcp:tools, dan mcp:prompts, NQRust-Identity dapat mengeluarkan token akses berikut:
{
...
"aud": "https://example.com/mcp",
"scope": "mcp:resources mcp:tools mcp:prompts"
...
}Integrasi Inspektor MCP
Jika Anda ingin menggunakan MCP Inspector (opens in a new tab), alat debug resmi untuk server MCP, dengan NQRust-Identity sebagai server otorisasi, Anda perlu melakukan pengaturan yang sesuai tentang CORS pada endpoint pendaftaran klien NQRust-Identity karena MCP Inspector mengeksekusi JavaScript yang diunduh dari server backend MCP Inspector untuk mendaftarkan dinamis klien MCP ke NQRust-Identity.
Anda perlu melakukan pengaturan yang sesuai untuk kebijakan akses anonim Pendaftaran Klien sebagai berikut:
- Lingkup Klien yang Diizinkan: Perlu mencakup lingkup yang didukung oleh server MCP.
- Asal Web Pendaftaran yang Diizinkan: Perlu mencakup asal web server backend Inspektor MCP.
- Host Terpercaya: Perlu mencakup nama host atau alamat IP mesin yang mengirim permintaan pendaftaran klien dinamis ke NQRust-Identity, yaitu mesin tempat browser Anda berjalan.
Untuk MCP 2025-11-25
Pendaftaran Klien
Menurut Client Registration Approaches (opens in a new tab) bagian dari spesifikasi MCP, berikut tiga mekanisme pendaftaran klien yang didukung dan Anda dapat memilih berdasarkan skenario Anda:
- Dokumen Metadata ID Klien: Ketika klien dan server tidak memiliki hubungan sebelumnya (paling umum)
- Pendaftaran Awal: Ketika klien dan server memiliki hubungan yang ada
- Pendaftaran Klien Dinamis: Untuk kompatibilitas mundur atau persyaratan tertentu
NQRust-Identity mendukung Dokumen Metadata ID OAuth Klien. Untuk menggunakan Dokumen Metadata ID Klien, Anda perlu mengaktifkan fitur dan mengatur kebijakan klien sehingga NQRust-Identity memproses parameter client_id yang diformat sebagai URL dan mengambil metadata klien dari URL itu.
Dukungan Dokumen Metadata ID OAuth adalah fitur eksperimental di NQRust-Identity. Sebagai hasilnya, itu mungkin mengakibatkan perubahan yang merusak pada versi NQRust-Identity mendatang. Untuk mengaktifkannya, jalankan NQRust-Identity dengan --features=cimd.
Mengatur profil klien untuk Dokumen Metadata ID OAuth
Untuk memproses permintaan otorisasi di mana metadata client_id adalah URL yang menunjuk ke Dokumen Metadata ID Klien, Anda perlu membuat profil termasuk client-id-metadata-document executor.
Untuk mengonfigurasi executor, buat profil kebijakan klien di Konsol Admin NQRust-Identity:
- Navigasikan ke Realm Settings → Client Policies → Profiles tab.
- Klik Create client profile.
- Beri profil nama seperti
cimd-profiledan klik Save. - Klik Add executor dan pilih
client-id-metadata-documentdari daftar. - Konfigurasikan executor dengan opsi berikut:
- Allow http scheme: Jika
ON, memungkinkan skemahttpuntuk URL ID Klien dan URL Metadata Klien (mis.,client_uri,logo_uri,tos_uri,policy_uri,jwks_uri). Hal ini hanya bolehONdi lingkungan pengembangan dan harusOFFdi lingkungan produksi. - Trusted domains: Daftar pola domain (wildcard) yang diterima executor untuk properti URL ID Klien dan URL Metadata Klien. Misalnya, gunakan
*.example.orguntuk menerima setiap subdomain dariexample.org. Jika kosong, semua domain ditolak. - Restrict same domain: Jika
ON, executor memverifikasi bahwa URL ID Klien dan URI Pengalih dalam permintaan otorisasi, serta properti URL nilai dari metadata klien, semua di bawah domain terpercaya yang sama. - Required properties: Daftar properti metadata klien yang harus ada dalam Dokumen Metadata ID Klien. Jika dokumen yang diambil tidak mencakup semua properti yang terdaftar, permintaan ditolak.
- Only Allow Confidential Client: Jika
ON, executor hanya menerima Dokumen Metadata ID Klien yang mewakili klien konfidenial. Dalam hal ini, metadata klien harus mencakup salah satu propertijwksataujwks_uridan harus menggunakanprivate_key_jwtatautls_client_authsebagai metode otentikasi endpoint token.
- Klik Save.
Mengatur kebijakan klien untuk Dokumen Metadata ID OAuth
Untuk memicu profil yang dibuat sebelumnya saat parameter client_id dalam permintaan otorisasi adalah URI yang cocok dengan skema yang ditentukan (mis., https), Anda perlu membuat kebijakan termasuk client-id-uri condition.
Untuk mengonfigurasi condition, buat kebijakan klien di Konsol Admin NQRust-Identity:
- Navigasikan ke Realm Settings → Client Policies → Policies tab.
- Klik Create client policy.
- Beri kebijakan nama seperti
cimd-policydan klik Save. - Di bawah Conditions, klik Add condition dan pilih
client-id-uridari daftar. - Konfigurasikan condition dengan opsi berikut:
- URI scheme: Daftar skema URI untuk mencocokkan dengan parameter
client_id(mis.,https). Di lingkungan produksi, hanyahttpsyang harus digunakan. - Trusted domains: Daftar pola domain (wildcard) yang condition terima untuk bagian host dari URI
client_id. Jika domain diisi, condition dinilai sebagai true hanya ketika bagian host dariclient_idcocok dengan salah satu domain. Jika tidak diisi, condition dinilai sebagai false tanpa peduli. Misalnya, gunakan*.example.orguntuk menerima setiap subdomain dariexample.org.
- Klik Save.
- Di bawah Associated client profiles, tambahkan profil
cimd-profileyang dibuat sebelumnya. - Klik Save.
Dengan konfigurasi ini, saat klien MCP mengirim permintaan otorisasi dengan nilai client_id yang merupakan URL https yang cocok dengan domain terpercaya, NQRust-Identity mengambil Dokumen Metadata ID Klien dari URL itu dan menggunakan metadata untuk memproses permintaan.
Pengaturan seluruh sistem untuk executor Dokumen Metadata ID Klien
Executor client-id-metadata-document memiliki pengaturan seluruh sistem berikut yang mengontrol pembatasan ukuran metadata dan batas waktu cache. Pengaturan ini tidak dapat dikonfigurasi melalui Konsol Admin. Sebagai gantinya, mereka dikonfigurasi sebagai opsi SPI saat memulai NQRust-Identity.
- min-cache-time: Waktu minimum (dalam detik) bahwa Dokumen Metadata ID Klien yang diambil disimpan dalam cache. Default:
300(5 menit). - max-cache-time: Waktu maksimum (dalam detik) bahwa Dokumen Metadata ID Klien yang diambil disimpan dalam cache. Default:
259200(3 hari). - upper-limit-metadata-bytes: Ukuran maksimum (dalam byte) Dokumen Metadata ID Klien yang NQRust-Identity menerima. Default:
5000(5 KB).
Untuk mengonfigurasi pengaturan ini, gunakan opsi perintah baris --spi-client-policy-executor—client-id-metadata-document--<property>=<value> saat memulai NQRust-Identity. Misalnya:
bin/kc.[sh|bat] start --spi-client-policy-executor--client-id-metadata-document--min-cache-time=600 --spi-client-policy-executor--client-id-metadata-document--max-cache-time=86400 --spi-client-policy-executor--client-id-metadata-document--upper-limit-metadata-bytes=10000Integrasi desktop Visual Studio Code
Microsoft Visual Studio Code (opens in a new tab) (VS Code) desktop adalah klien MCP yang mendukung Dokumen Metadata ID OAuth. Ketika VS Code desktop terhubung ke server MCP yang memerlukan otorisasi, ia mengirim permintaan otorisasi dengan parameter client_id yang merupakan URL https yang dihosting di vscode.dev (mis., https://vscode.dev/mcp-client). NQRust-Identity mengambil Dokumen Metadata ID Klien dari URL ini dan menggunakan metadata untuk memproses permintaan.
VS Code desktop menggunakan callback localhost untuk pengalihan OAuth. Ia memulai server HTTP lokal dan menggunakan URI pengalihan seperti http://127.0.0.1:<port>/callback. Karena URI pengalihan berada pada 127.0.0.1 bukan pada domain vscode.dev, opsi Restrict same domain pada executor profil klien harus diatur ke OFF.
Untuk mengonfigurasi NQRust-Identity untuk klien MCP VS Code desktop, ikuti langkah berikut.
VS Code desktop adalah klien publik yang menggunakan PKCE (Proof Key for Code Exchange) untuk OAuth. Ia tidak menggunakan rahasia klien.
Memulai NQRust-Identity dengan fitur CIMD
Mulai NQRust-Identity dengan flag fitur cimd yang diaktifkan:
bin/kc.[sh|bat] start --features=cimdMengatur profil klien untuk VS Code desktop
- Navigasikan ke Realm Settings → Client Policies → Profiles tab.
- Klik Create client profile.
- Beri profil nama seperti
vscode-cimd-profiledan klik Save. - Klik Add executor dan pilih
client-id-metadata-documentdari daftar. - Konfigurasikan executor dengan opsi berikut:
- Allow http scheme:
OFF - Trusted domains:
vscode.dev,127.0.0.1 - Restrict same domain:
OFF(VS Code desktop menggunakan URI pengalihan localhost sepertihttp://127.0.0.1:<port>/callback, yang tidak berada pada domain yang sama sepertivscode.dev) - Only Allow Confidential Client:
OFF(VS Code desktop adalah klien publik)
- Klik Save.
Mengatur kebijakan klien untuk VS Code desktop
- Navigasikan ke Realm Settings → Client Policies → Policies tab.
- Klik Create client policy.
- Beri kebijakan nama seperti
vscode-cimd-policydan klik Save. - Di bawah Conditions, klik Add condition dan pilih
client-id-uridari daftar. - Konfigurasikan condition dengan opsi berikut:
- URI scheme:
https - Trusted domains:
vscode.dev
- Klik Save.
- Di bawah Associated client profiles, tambahkan profil
vscode-cimd-profileyang dibuat sebelumnya. - Klik Save.
Dengan konfigurasi ini, saat VS Code desktop mengirim permintaan otorisasi, NQRust-Identity mengenali client_id sebagai URL di vscode.dev, mengambil Dokumen Metadata ID Klien, dan menggunakan callback localhost untuk menyelesaikan aliran OAuth.