MCP OAuth kimlik doğrulama
OAuth 2.1 ile kullanıcı tarafından yetkilendirilmiş erişim gerektiren MCP sunucularına Bob Shell'i bağlayın. Bob Shell, kimlik doğrulama ve token yenileme sürecini yönetir; token'ları manuel olarak yönetmenize gerek kalmaz.
Genel MCP yapılandırması için bkz. MCP sunucularını yapılandır.
Genel bakış
Bob Shell'i, repository'lerinize, bulut kaynaklarınıza veya kurumsal hizmetlerinize erişim gibi sizin adınıza hareket eden Model Context Protocol (MCP) sunucularına bağlayabilirsiniz. Bu sunucular OAuth 2.1 kullanır; böylece oturum açıp erişimi onaylayabilirsiniz.
Bob Shell, kimlik doğrulama akışını doğrudan yönetir. OAuth gerektiren bir sunucu yapılandırdığınızda Bob Shell, varsayılan tarayıcınızda bir yetkilendirme penceresi açar. Oturum açıp izinleri onayladıktan sonra Bob Shell, kimlik bilgilerini manuel olarak yönetmenizi gerektirmeden erişim token'larınızı depolar ve yeniler.
Şu durumlarda OAuth kullanın:
- Kişisel veya kurumsal kullanıcı hesabınızla ilişkili kaynaklara erişmeniz gerektiğinde
- Sunucu, otomatik token yenileme gerektiren kısa ömürlü token'lar kullandığında
- Statik kimlik bilgilerini ve gizli anahtarları yapılandırma dosyalarınızın dışında tutmak istediğinizde
Süresi dolmayan statik bir API token'ı veya kişisel erişim token'ınız zaten varsa, headers içinde bir Bearer token kullanabilirsiniz.
Kimlik doğrulama akışı nasıl çalışır
headersveyaenvkimlik bilgileri olmadan uzak MCP sunucusu URL'sini yapılandırma dosyanıza ekleyin.- Bob Shell sunucuya bağlandığında OAuth gereksinimlerini algılar.
- Bob Shell, istenen izinleri inceleyebileceğiniz ve erişimi onaylayabileceğiniz bir tarayıcı oturum açma penceresi açar.
- Bob Shell, yetkilendirme token'larını alır ve bunları oturumlarınız arasında güvenli şekilde depolar.
- Bob Shell, kesintisiz çalışabilmeniz için token'ları süresi dolmadan önce otomatik olarak yeniler.
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
MCP sunucularınızı global yapılandırmanızda (~/.bob/mcp_settings.json) veya proje yapılandırmanızda (.bob/mcp.json) yapılandırabilirsiniz.
Minimum yapılandırma (otomatik keşif)
MCP sunucunuz otomatik OAuth meta veri keşfini desteklediğinde, yalnızca url belirtmeniz yeterlidir:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://mcp.example.com/mcp"
}
}
}Bob Shell, bağlantı kurulduğunda OAuth gereksinimlerini algılar ve sizi tarayıcı oturum açma sürecinde yönlendirir.
Özel OAuth parametreleri
Kimlik sağlayıcınız önceden kaydedilmiş bir istemci kimliği, özel kapsamlar veya istemci gizli anahtarı gerektirdiğinde oauth nesnesini yapılandırın:
{
"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"
}
}
}
}Yapılandırma özellikleri
| Özellik | Tür | Açıklama |
|---|---|---|
url | string | Uzak MCP endpoint URL'si (gerekli). |
oauth.enabled | boolean | OAuth'u devre dışı bırakmak için false, OAuth'u zorunlu kılmak için true olarak ayarlayın. Authorization başlığı olmadığında varsayılan olarak etkindir. |
oauth.clientId | string | Kimlik sağlayıcınız tarafından verilen önceden kaydedilmiş OAuth istemci kimliği. |
oauth.clientSecret | string | Yetkilendirme sunucunuz gizli istemciler için gerektiriyorsa OAuth istemci gizli anahtarı. |
oauth.scope | string | İstediğiniz OAuth kapsamlarının boşlukla ayrılmış listesi. |
Bir MCP sunucusu yapılandırmasına statik Authorization başlığı eklemek OAuth'u devre dışı bırakır. Authorization başlığı mevcut olduğunda Bob Shell OAuth akışını başlatmaz. OAuth etkin olduğunda Bob Shell, istek göndermeden önce statik Authorization başlıklarını kaldırır. Sunucu başına yalnızca bir kimlik doğrulama yöntemi kullanın.
Bob'u kimlik sağlayıcınıza kaydetme
Kimlik sağlayıcınız (IdP) bağlanmadan önce Bob'u bir istemci uygulaması olarak kaydetmenizi gerektirdiğinde, aşağıdaki uygulama ayarlarını kullanın:
| Ayar | Değer |
|---|---|
| Uygulama veya istemci türü | Public, Native veya Loopback (PKCE'li Authorization Code) |
| Yönlendirme URI | http://127.0.0.1:33418/callback |
| Ek yönlendirme URI'leri | http://127.0.0.1:33419/callback ile http://127.0.0.1:33427/callback arasındaki adresleri ekleyin (33418 portu kullanımdaysa önerilir) |
| Yetki türleri | Authorization Code (authorization_code) ve Refresh Token (refresh_token) |
| Kapsamlar | MCP sunucusu belgelerinde belirtilen kapsamlar |
Verilen istemci kimliğini yapılandırma dosyanızdaki oauth.clientId alanına kopyalayın.
İstem geldiğinde kimlik doğrulama
OAuth etkin bir sunucuya ilk kez bağlandığınızda:
- Tarayıcı penceresinde yetkilendirme istemi açılır.
- Sunucunun talep ettiği izinleri gözden geçirin.
- Hesabınıza oturum açın ve erişimi onaylayın.
- Bob Shell kimlik bilgilerinizi kaydeder ve sunucu araçlarına otomatik olarak bağlanır.
Sorun giderme
Kimlik doğrulama istemi açılmıyor
- Yapılandırmanızda sunucuyu devre dışı olarak işaretlemediğinizi doğrulayın.
- Yapılandırma dosyanızın
headersiçinde statik birAuthorizationbaşlığı içermediğini kontrol edin. - Bağlantıyı yeniden başlatmak için Bob Shell'i yeniden başlatın.
- Tarayıcınızın veya güvenlik duvarınızın
127.0.0.1üzerindeki yerel loopback bağlantılarını engellemediğini kontrol edin.
Kimlik sağlayıcı yönlendirme URI'si uyuşmazlığı hatası döndürüyor
- Kimlik sağlayıcı istemci kaydınızın
http://127.0.0.1:33418/callbackadresini içerdiğini doğrulayın. - 33418 portu meşgulse,
33419ile33427arasındaki ek portları kaydedin.
Kimlik doğrulama başarılı ancak sunucu bağlanamıyor
- Sunucu URL'sinin doğru ve ağınızdan erişilebilir olduğunu doğrulayın.
- Oturum açma adımında gerekli tüm kapsamları onayladığınızı kontrol edin.
- Ön koşul kullanıcı rolleri veya izinleri için sunucu loglarını veya belgelerini inceleyin.
Token'lar sık sık sona eriyor ve yeniden kimlik doğrulama yapmanız gerekiyor
- Yetkilendirme sunucunuzun yenileme token'ları verdiğini onaylayın.
- Erken token süresinin dolmasını önlemek için sistem saatinizin senkronize 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. Bob Shell bunu yeni bir sunucu olarak değerlendirir ve bir sonraki bağlantıda oturum açmanızı ister.