MCP OAuth kimlik doğrulama
Bob Shell, kullanıcı adına erişim gerektiren MCP sunucuları için OAuth 2.1'i destekler. Bob, token yenileme dahil kimlik doğrulama akışını otomatik olarak yönetir; token'ları manuel olarak yönetmeniz gerekmez.
Genel MCP yapılandırması için bkz. MCP sunucularını yapılandır.
Genel bakış
Bazı MCP sunucuları, örneğin GitHub repository'lerinizi okumak veya Google Drive dosyalarınıza erişmek için sizin adınıza hareket etmesi gerekir. Bu sunucular, herhangi bir veriye erişmeden önce onayınızı istemek için OAuth 2.1 kullanır.
Bob tam OAuth akışını otomatik olarak yönetir. OAuth gerektiren bir sunucuya bağlandığınızda Bob, tarayıcınızda yetkilendirme akışını açar. Yetkilendirdikten sonra Bob, herhangi bir manuel adım olmadan token depolamayı ve yenilemeyi yönetir.
Bu, süresi dolmayan hizmet hesapları veya token'lar için uygun olan headers içindeki Bearer token veya env içindeki API anahtarı gibi statik kimlik doğrulama yöntemlerinden farklıdır. Şu durumlarda OAuth kullanın:
- Sunucunun kullanıcı hesabınıza ait kaynaklara erişmesi gerektiğinde
- Sunucunun yetkilendirme sunucusu yenilenmesi gereken kısa ömürlü token'lar yayınladığında
- MCP yapılandırma dosyalarınızda uzun ömürlü gizli anahtarlar saklamaktan kaçınmak istediğinizde
Kimlik doğrulama akışı nasıl çalışır
- Yapılandırma dosyanıza OAuth özellikli bir MCP sunucusu eklersiniz (
headersveyaenvkimlik bilgileri gerekmez) - Bob sunucuya ilk bağlandığında sunucunun OAuth yetkilendirme meta verilerini algılar
- Bob, oturum açmanızı ve onay vermenizi isteyen tarayıcı tabanlı bir kimlik doğrulama istemi açar
- Yetkilendirdikten sonra Bob, erişim ve yenileme token'larını oturumlar arasında güvenli şekilde depolar
- Bob, token'ları sona ermeden önce otomatik olarak yeniler. Yenileme başarısız olmadıkça tekrar istem görmezsiniz.
Bob Shell Yetkilendirme Sunucusu MCP Sunucusu
| | |
|-- sunucuya bağlan ------------>| |
|<-- OAuth meta verisi (401) ----| |
|-- kimlik doğrulama istemi açıl>| |
| (kullanıcı oturum açar ve | |
| onay verir) | |
|<-- yetkilendirme kodu ---------| |
|-- token'larla değiştir ------->| |
|<-- erişim + yenileme token'ları| |
|-- kimlik doğrulanmış istekler -----------------------> |
| (gerektiğinde otomatik yenileme) |OAuth özellikli sunucuyu yapılandırma
OAuth özellikli MCP sunucuları, yetkilendirme gereksinimlerini otomatik olarak duyurur. Çoğu durumda yalnızca sunucu URL'si yeterlidir; OAuth alanları isteğe bağlıdır. Bob aşağıdaki isteğe bağlı OAuth özelliklerini de destekler:
oauth: Bir sunucu için OAuth'u devre dışı bırakmak içinfalseolarak, açıkça etkinleştirmek içintrueolarak ayarlayınclientId: Yetkilendirme sunucusu gerektiriyorsa OAuth istemci kimliğiclientSecret: Yetkilendirme sunucusu gerektiriyorsa OAuth istemci gizli anahtarıscope: İstenen OAuth kapsamlarının boşlukla ayrılmış listesi
~/.bob/mcp_settings.json (genel) veya .bob/mcp.json (proje) içinde örnek yapılandırma:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://your-server-url.com/mcp"
}
}
}Bob, bağlandığında OAuth gereksinimini algılar ve akışı başlatır. headers veya env kimlik bilgisi gerekmez.
OAuth özellikli bir sunucuya statik Authorization başlığı eklemek otomatik OAuth'u tamamen devre dışı bırakır. Bob OAuth akışını denemez. Buna karşılık OAuth etkinken Bob, istek göndermeden önce statik Authorization başlığını kaldırır. Yalnızca bir yöntem kullanın.
İstem geldiğinde kimlik doğrulama
Bob OAuth özellikli bir sunucuya ilk kez bağlandığında:
- Tarayıcı penceresinde yetkilendirme istemi açılır
- Sunucunun talep ettiği izinleri gözden geçirin
- Gerekli hesapla oturum açın ve onay verin
- Bob token'ları depolar ve bağlantıyı otomatik olarak tamamlar
İstem varsayılan tarayıcınızda açılır. Yetkilendirmeyi tamamladıktan sonra Bob Shell bağlantıya otomatik olarak devam eder.
Sorun giderme
Kimlik doğrulama istemi görünmüyor
- Sunucunun yapılandırmanızda devre dışı olarak işaretlenmediğini doğrulayın
- Sunucu bağlantısını yeniden başlatmak için Bob Shell'i yeniden başlatın
- Tarayıcınızın yetkilendirme sayfasını engellemediğini kontrol edin
Kimlik doğrulama başarılı ancak sunucu bağlanamıyor
- Sunucu URL'sinin doğru ve erişilebilir olduğunu doğrulayın
- Onay adımında gerekli tüm izinleri verdiğinizi kontrol edin
- Ek kurulum gereksinimleri için sunucunun belgelerini inceleyin
Token'lar sık sık sona eriyor ve yeniden kimlik doğrulama gerekiyor
- Yetkilendirme sunucusunun yenileme token'larını destekleyip desteklemediğini doğrulayın. Bazı sunucular yalnızca kısa ömürlü erişim token'ları yayınlar.
- Saat sapması erken token süresinin dolmasına neden olabileceğinden sistem saatinizin doğru olduğunu kontrol edin
Oturumu kapatmak veya hesap değiştirmek istiyorsunuz
Yapılandırma dosyanızdaki sunucu girdisini kaldırın veya yeniden adlandırın ve tekrar ekleyin. Bu, Bob'un sunucuyu yeni olarak değerlendirmesini ve bir sonraki bağlantıda yeni bir kimlik doğrulama istemi başlatmasını sağlar.