Autentikasi OAuth MCP
Terhubung ke server MCP yang memerlukan akses yang didelegasikan oleh pengguna dengan OAuth 2.1. Bob mengelola proses autentikasi dan token refresh sehingga kamu tidak perlu mengelola token secara manual.
Untuk konfigurasi MCP umum, lihat Menggunakan MCP di Bob.
Gambaran umum
Kamu dapat menghubungkan Bob ke server Model Context Protocol (MCP) yang bertindak atas namamu, seperti mengakses repositori kode, layanan cloud, atau alat internal milikmu. Server ini menggunakan OAuth 2.1 sehingga kamu dapat sign in dan menyetujui akses.
Bob mengelola alur autentikasi secara langsung. Saat kamu mengonfigurasi server yang memerlukan OAuth, Bob menampilkan permintaan autentikasi di pengaturan MCP. Kamu dapat mengeklik tombol untuk membuka identity provider di jendela browser, menyelesaikan sign-in, dan menyetujui izin. Bob menyimpan dan me-refresh token aksesmu tanpa mengharuskanmu menangani kredensial secara manual.
Gunakan OAuth ketika:
- Kamu perlu mengakses resource yang terkait dengan akun pengguna pribadi atau enterprise milikmu
- Server menggunakan token berumur pendek yang memerlukan token refresh otomatis
- Kamu ingin menjaga kredensial statis dan secret tetap berada di luar file konfigurasi
Ketika kamu sudah memiliki token API statis atau personal access token yang tidak kedaluwarsa, kamu dapat menggunakan Bearer token di headers sebagai gantinya.
Cara kerja alur autentikasi
- Kamu menambahkan URL remote server MCP ke file konfigurasi tanpa kredensial
headersatauenv. - Saat Bob terhubung ke server, Bob mendeteksi persyaratan OAuth.
- Bob membuka jendela sign-in browser tempat kamu meninjau izin yang diminta dan menyetujui akses.
- Bob menerima token otorisasi dan menyimpannya secara aman lintas sesimu.
- Bob secara otomatis me-refresh token sebelum kedaluwarsa sehingga kamu dapat bekerja tanpa gangguan.
Bob IDE Authorization Server MCP Server
| | |
|-- connect to server ---------->| |
|<-- OAuth metadata (401) -------| |
|-- open auth prompt ----------->| |
| (user signs in & consents) | |
|<-- authorization code ---------| |
|-- exchange for tokens -------->| |
|<-- access + refresh tokens ----| |
|-- authenticated requests ---------------------------------> |
| (auto-refresh when needed) |Mengonfigurasi server yang mendukung OAuth
Kamu dapat mengonfigurasi server MCP baik di konfigurasi global (~/.bob/mcp_settings.json) maupun konfigurasi proyek (.bob/mcp.json).
Konfigurasi minimal (penemuan otomatis)
Saat server MCP menyediakan penemuan metadata OAuth otomatis, kamu hanya perlu menentukan url:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://mcp.example.com/mcp"
}
}
}Bob mendeteksi persyaratan OAuth saat koneksi dan memandumu melalui proses sign-in browser.
Parameter OAuth kustom
Saat identity provider memerlukan client ID yang telah didaftarkan sebelumnya, scope kustom, atau client secret, konfigurasikan objek oauth:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://mcp.example.com/mcp",
"oauth": {
"enabled": true,
"clientId": "your-client-id-from-idp",
"clientSecret": "your-client-secret-if-required",
"scope": "mcp:connect read:data"
}
}
}
}Properti konfigurasi
| Properti | Tipe | Deskripsi |
|---|---|---|
url | string | URL endpoint remote MCP (wajib). |
oauth.enabled | boolean | Set ke false untuk menonaktifkan OAuth, atau true untuk mewajibkan OAuth. Diaktifkan secara default saat tidak ada header Authorization. |
oauth.clientId | string | Client ID OAuth yang telah didaftarkan sebelumnya yang diterbitkan oleh identity provider-mu. |
oauth.clientSecret | string | OAuth client secret, jika authorization server-mu memerlukannya untuk confidential client. |
oauth.scope | string | Daftar scope OAuth yang dipisahkan spasi yang ingin kamu minta. |
Menambahkan header Authorization statis ke konfigurasi server MCP akan mematikan OAuth. Saat header Authorization ada, Bob tidak memulai alur OAuth. Saat OAuth aktif, Bob menghapus header Authorization statis sebelum mengirim permintaan. Gunakan hanya satu metode autentikasi per server.
Mendaftarkan Bob dengan identity provider kamu
Saat identity provider (IdP) mengharuskanmu mendaftarkan Bob sebagai aplikasi klien sebelum terhubung, gunakan pengaturan aplikasi berikut:
| Pengaturan | Nilai |
|---|---|
| Tipe aplikasi atau klien | Public, Native, atau Loopback (Authorization Code dengan PKCE) |
| Redirect URI | http://127.0.0.1:33418/callback |
| Redirect URI tambahan | http://127.0.0.1:33419/callback hingga http://127.0.0.1:33427/callback (direkomendasikan jika port 33418 sedang digunakan) |
| Grant type | Authorization Code (authorization_code) dan Refresh Token (refresh_token) |
| Scope | Scope yang ditentukan dalam dokumentasi server MCP milikmu |
Salin client ID yang diterbitkan ke dalam oauth.clientId di file konfigurasi kamu.
Autentikasi saat diminta
Saat kamu terhubung ke server yang mendukung OAuth untuk pertama kalinya:
- Tinjau prompt autentikasi yang terbuka di IDE atau browser kamu.
- Verifikasi izin yang diminta server.
- Sign in ke akunmu dan setujui akses.
- Bob menyimpan kredensialmu dan terhubung ke tool server.
Melihat dan mengelola status autentikasi
Kamu dapat memeriksa atau mengubah autentikasi untuk server MCP:
- Klik ikon di panel Bob.
- Pilih tab MCP.
- Temukan server dalam daftar.
Server yang terhubung menampilkan indikator status. Saat autentikasi kedaluwarsa atau izin berubah, kamu dapat memperbarui koneksimu.
Untuk autentikasi ulang: Klik di samping nama server untuk memulai ulang koneksi dan sign in lagi.
Pemecahan masalah
Prompt autentikasi tidak terbuka
- Verifikasi bahwa kamu tidak menandai server sebagai dinonaktifkan dalam konfigurasi kamu.
- Periksa bahwa file konfigurasi kamu tidak menyertakan header
Authorizationstatis diheaders. - Restart server dari tab pengaturan MCP.
- Periksa bahwa browser atau firewall kamu tidak memblokir koneksi loopback lokal pada
127.0.0.1.
Identity provider mengembalikan error ketidakcocokan redirect URI
- Verifikasi bahwa pendaftaran klien identity provider kamu menyertakan
http://127.0.0.1:33418/callback. - Jika port 33418 sedang sibuk, daftarkan port tambahan dari
33419hingga33427.
Autentikasi berhasil tetapi server gagal terhubung
- Verifikasi bahwa URL server sudah benar dan dapat diakses dari jaringanmu.
- Periksa bahwa kamu telah menyetujui semua scope yang diperlukan selama langkah sign-in.
- Tinjau log server atau dokumentasi untuk peran atau izin pengguna prasyarat.
Token sering kedaluwarsa dan kamu harus mengautentikasi ulang
- Konfirmasikan bahwa authorization server kamu menerbitkan refresh token.
- Periksa bahwa jam sistemmu telah disinkronkan untuk mencegah kedaluwarsa token sebelum waktunya.
Kamu ingin sign out atau beralih akun
Hapus atau ganti nama entri server di file konfigurasi kamu dan tambahkan lagi. Tindakan ini menyebabkan Bob memperlakukannya sebagai server baru dan memintamu untuk sign in pada koneksi berikutnya.