{"id":45535,"date":"2026-11-03T21:14:41","date_gmt":"2026-11-03T18:14:41","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/"},"modified":"2026-11-03T21:14:41","modified_gmt":"2026-11-03T18:14:41","slug":"canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/","title":{"rendered":"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor?"},"content":{"rendered":"<h2>Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor?<\/h2>\n<p>\n        Bir web uygulamas\u0131n\u0131 veya API&#8217;yi canl\u0131 ve uzak bir sunucuda \u00e7al\u0131\u015ft\u0131rmak, genellikle kimlik do\u011frulama ve yetkilendirme gibi g\u00fcvenlik mekanizmalar\u0131n\u0131 devreye sokmay\u0131 gerektirir. \u0130\u015fte tam da bu noktada OAuth 2.0 devreye giriyor. Peki, bu soyut protokol, ger\u00e7ek d\u00fcnyada, \u00f6zellikle de uzak ve canl\u0131 bir MCP (Muhtemelen &#8220;Managed Cloud Platform&#8221; veya benzeri bir ortam\u0131 kastediyoruz) sunucusunda tam olarak nas\u0131l i\u015fliyor? Bu makalede, OAuth&#8217;un bu spesifik senaryodaki pratik uygulamalar\u0131n\u0131, kar\u015f\u0131la\u015f\u0131labilecek zorluklar\u0131 ve \u00e7\u00f6z\u00fcm \u00f6nerilerini ad\u0131m ad\u0131m inceleyece\u011fiz. Amac\u0131m\u0131z, bu karma\u015f\u0131k konuyu anla\u015f\u0131l\u0131r bir dille a\u00e7\u0131klayarak, hem yeni ba\u015flayanlar\u0131n hem de deneyimli geli\u015ftiricilerin bilgi birikimine katk\u0131da bulunmak.\n    <\/p>\n<h2>OAuth 2.0 Nedir ve Neden \u00d6nemlidir?<\/h2>\n<p>\n        OAuth 2.0, basit\u00e7e ifade etmek gerekirse, bir kullan\u0131c\u0131n\u0131n kendi bilgilerini \u00fc\u00e7\u00fcnc\u00fc taraf bir uygulama ile g\u00fcvenli bir \u015fekilde payla\u015fmas\u0131n\u0131 sa\u011flayan bir yetkilendirme \u00e7er\u00e7evesidir. Anahtar nokta \u015fudur: Kullan\u0131c\u0131, hassas \u015fifrelerini do\u011frudan \u00fc\u00e7\u00fcnc\u00fc taraf uygulamayla payla\u015fmak zorunda kalmaz. Bunun yerine, bir yetkilendirme sunucusu (Authorization Server) arac\u0131l\u0131\u011f\u0131yla bir &#8220;eri\u015fim jetonu&#8221; (access token) al\u0131r. Bu jeton, \u00fc\u00e7\u00fcnc\u00fc taraf uygulaman\u0131n, kullan\u0131c\u0131n\u0131n ad\u0131na belirli kaynaklara (\u00f6rne\u011fin, profil bilgileri, e-posta listesi vb.) eri\u015fmesine izin verir. Bu, \u00f6zellikle g\u00fcn\u00fcm\u00fcz\u00fcn entegre dijital d\u00fcnyas\u0131nda, kullan\u0131c\u0131 gizlili\u011fini korumak ve uygulama g\u00fcvenli\u011fini art\u0131rmak i\u00e7in kritik \u00f6neme sahiptir. OAuth&#8217;un \u00f6nemi, sadece kullan\u0131c\u0131lar\u0131n de\u011fil, ayn\u0131 zamanda hizmet sa\u011flay\u0131c\u0131lar\u0131n da kendi sistemlerini \u00fc\u00e7\u00fcnc\u00fc taraf entegrasyonlar\u0131na kar\u015f\u0131 daha g\u00fcvenli hale getirmesinden kaynaklan\u0131r. \u00d6rne\u011fin, bir sosyal medya platformu, kullan\u0131c\u0131lar\u0131n ba\u015fka bir uygulamaya kendi hesaplar\u0131 \u00fczerinden giri\u015f yapmas\u0131na izin verirken, bu eri\u015fimi ne kadar s\u00fcrece\u011fini ve hangi verilere eri\u015filebilece\u011fini kontrol edebilir. Bu, &#8220;tek \u015fifreyle her yere girme&#8221; riskini azalt\u0131r ve kullan\u0131c\u0131ya daha fazla kontrol imkan\u0131 sunar. Uzak ve canl\u0131 bir MCP sunucusunda OAuth&#8217;un uygulanmas\u0131, bu temel prensiplerin, genellikle daha karma\u015f\u0131k altyap\u0131lar ve da\u011f\u0131t\u0131k sistemler \u00fczerinde nas\u0131l hayata ge\u00e7ti\u011fini anlamam\u0131z\u0131 sa\u011flar. Bu t\u00fcr ortamlarda, g\u00fcvenlik katmanlar\u0131 daha fazla olabilir ve a\u011f yap\u0131lar\u0131 daha karma\u015f\u0131k hale gelebilir. Bu nedenle, OAuth&#8217;un bu ortamlardaki i\u015fleyi\u015fini anlamak, modern web uygulamalar\u0131n\u0131n g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131 i\u00e7in elzemdir. Bu protokol, sadece bir kimlik do\u011frulama y\u00f6ntemi olman\u0131n \u00f6tesinde, modern mikroservis mimarilerinde ve bulut tabanl\u0131 uygulamalarda yetkilendirme ak\u0131\u015flar\u0131n\u0131n temel ta\u015f\u0131 haline gelmi\u015ftir. Kullan\u0131c\u0131lar, farkl\u0131 platformlardaki hesaplar\u0131n\u0131 birbirine ba\u011flarken, arka planda \u00e7al\u0131\u015fan bu mekanizman\u0131n fark\u0131nda bile olmayabilirler. Ancak bu mekanizma, veri g\u00fcvenli\u011finin ve kullan\u0131c\u0131 deneyiminin sorunsuz bir \u015fekilde sa\u011flanmas\u0131nda kilit rol oynar. MCP gibi y\u00f6netilen bulut platformlar\u0131, bu t\u00fcr g\u00fcvenlik protokollerini uygulamak i\u00e7in gerekli altyap\u0131y\u0131 sunar, ancak geli\u015ftiricilerin bu protokolleri do\u011fru \u015fekilde yap\u0131land\u0131rmas\u0131 ve entegre etmesi yine de b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r.<\/p>\n<h2>Canl\u0131 Uzak MCP Sunucusunda OAuth Ak\u0131\u015f\u0131: Ad\u0131m Ad\u0131m<\/h2>\n<p>\n        Bir MCP sunucusunda OAuth 2.0&#8217;\u0131 canl\u0131 olarak d\u00fc\u015f\u00fcnelim. Bu senaryoda, bir &#8220;Kullan\u0131c\u0131&#8221; (User), bir &#8220;\u0130stemci Uygulamas\u0131&#8221; (Client Application &#8211; sizin web veya mobil uygulaman\u0131z) ve bir &#8220;Yetkilendirme Sunucusu&#8221; (Authorization Server &#8211; genellikle MCP&#8217;nin kendi kimlik do\u011frulama hizmeti veya entegre edilmi\u015f bir kimlik sa\u011flay\u0131c\u0131s\u0131) bulunur. Ak\u0131\u015f genellikle \u015fu ad\u0131mlar\u0131 izler:\n    <\/p>\n<h3>1. \u0130stemci Uygulamas\u0131 Kullan\u0131c\u0131y\u0131 Yetkilendirme Sunucusuna Y\u00f6nlendirir<\/h3>\n<p>\n        Kullan\u0131c\u0131, istemci uygulaman\u0131zda belirli bir kayna\u011fa eri\u015fmek istedi\u011finde (\u00f6rne\u011fin, &#8220;Hesab\u0131m&#8221; b\u00f6l\u00fcm\u00fcne gitmek istedi\u011finde), istemci uygulamas\u0131 kullan\u0131c\u0131y\u0131 MCP&#8217;nin yetkilendirme sunucusuna y\u00f6nlendirir. Bu y\u00f6nlendirme s\u0131ras\u0131nda, istemci uygulamas\u0131 baz\u0131 temel bilgileri (kullan\u0131c\u0131n\u0131n hangi bilgilere eri\u015fmek istedi\u011fi, kendi kimli\u011fi vb.) parametre olarak g\u00f6nderir. Bu parametreler aras\u0131nda genellikle \u015funlar bulunur:<\/p>\n<ul>\n<li><code>client_id<\/code>: \u0130stemci uygulaman\u0131z\u0131n MCP taraf\u0131ndan tan\u0131mlanan benzersiz kimli\u011fi.<\/li>\n<li><code>redirect_uri<\/code>: Yetkilendirme tamamland\u0131ktan sonra kullan\u0131c\u0131n\u0131n geri y\u00f6nlendirilece\u011fi URL. Bu, g\u00fcvenli\u011fi sa\u011flamak i\u00e7in \u00e7ok \u00f6nemlidir ve \u00f6nceden kaydedilmi\u015f olmal\u0131d\u0131r.<\/li>\n<li><code>response_type<\/code>: Genellikle <code>code<\/code> olarak ayarlan\u0131r, bu da bir yetkilendirme kodu (authorization code) al\u0131naca\u011f\u0131n\u0131 belirtir.<\/li>\n<li><code>scope<\/code>: \u0130stemci uygulamas\u0131n\u0131n eri\u015fmek istedi\u011fi izinlerin kapsam\u0131 (\u00f6rne\u011fin, <code>read_profile<\/code>, <code>write_email<\/code>).<\/li>\n<li><code>state<\/code> (iste\u011fe ba\u011fl\u0131 ama \u00f6nerilir): Olas\u0131 CSRF (Cross-Site Request Forgery) sald\u0131r\u0131lar\u0131n\u0131 \u00f6nlemek i\u00e7in kullan\u0131lan rastgele bir de\u011fer.<\/li>\n<\/ul>\n<p>        Bu ad\u0131m, kullan\u0131c\u0131 deneyiminin ilk etkile\u015fim noktas\u0131d\u0131r. Kullan\u0131c\u0131, taray\u0131c\u0131s\u0131nda MCP&#8217;nin kimlik do\u011frulama sayfas\u0131na y\u00f6nlendirilir. Bu sayfa, kullan\u0131c\u0131n\u0131n MCP hesab\u0131na giri\u015f yapmas\u0131n\u0131 ve istemci uygulaman\u0131z\u0131n talep etti\u011fi izinleri onaylamas\u0131n\u0131 ister. Bu, kullan\u0131c\u0131n\u0131n kimlik bilgilerinin (kullan\u0131c\u0131 ad\u0131 ve \u015fifre gibi) do\u011frudan sizin uygulaman\u0131zla payla\u015f\u0131lmad\u0131\u011f\u0131 kritik bir ad\u0131md\u0131r. MCP&#8217;nin kendi g\u00fcvenli altyap\u0131s\u0131 bu bilgileri i\u015fler. Bu s\u00fcre\u00e7, kullan\u0131c\u0131ya hangi uygulaman\u0131n hangi verilere eri\u015fece\u011fini net bir \u015fekilde g\u00f6stererek \u015feffafl\u0131k sa\u011flar ve kullan\u0131c\u0131n\u0131n kontrol\u00fc elinde tutmas\u0131na olanak tan\u0131r.\n    <\/p>\n<h3>2. Kullan\u0131c\u0131 Yetkilendirmeyi Onaylar<\/h3>\n<p>\n        Kullan\u0131c\u0131, MCP&#8217;nin kimlik do\u011frulama sayfas\u0131nda ba\u015far\u0131l\u0131 bir \u015fekilde giri\u015f yapt\u0131ktan sonra, istemci uygulaman\u0131z\u0131n talep etti\u011fi izinleri g\u00f6zden ge\u00e7irir. E\u011fer izinleri onaylarsa, yetkilendirme sunucusu kullan\u0131c\u0131y\u0131, ilk ad\u0131mda belirtti\u011finiz <code>redirect_uri<\/code>&#8216;ye geri y\u00f6nlendirir. Bu geri y\u00f6nlendirme s\u0131ras\u0131nda, yetkilendirme sunucusu, <code>code<\/code> parametresiyle birlikte bir &#8220;yetkilendirme kodu&#8221; (authorization code) g\u00f6nderir. Bu kod, tek kullan\u0131ml\u0131k ve s\u0131n\u0131rl\u0131 bir s\u00fcre ge\u00e7erli olan bir anahtar gibidir. Bu kodu almak, kullan\u0131c\u0131n\u0131n yetkilendirme s\u00fcrecinin ba\u015far\u0131l\u0131 oldu\u011funu g\u00f6sterir.\n    <\/p>\n<h3>3. \u0130stemci Uygulamas\u0131 Yetkilendirme Kodunu Eri\u015fim Jetonu ile De\u011fi\u015ftirir<\/h3>\n<p>\n        Kullan\u0131c\u0131 <code>redirect_uri<\/code>&#8216;nize geri d\u00f6nd\u00fc\u011f\u00fcnde, istemci uygulaman\u0131z URL&#8217;den bu yetkilendirme kodunu al\u0131r. Ancak bu kod tek ba\u015f\u0131na kaynaklara eri\u015fmek i\u00e7in yeterli de\u011fildir. \u0130stemci uygulaman\u0131z, bu kodu kullanarak do\u011frudan MCP&#8217;nin yetkilendirme sunucusunun bir &#8220;jeton u\u00e7 noktas\u0131&#8221;na (token endpoint) bir istek g\u00f6nderir. Bu istek, genellikle POST metoduyla yap\u0131l\u0131r ve \u015fu bilgileri i\u00e7erir:<\/p>\n<ul>\n<li><code>grant_type<\/code>: <code>authorization_code<\/code> olarak ayarlan\u0131r.<\/li>\n<li><code>code<\/code>: Kullan\u0131c\u0131n\u0131n ald\u0131\u011f\u0131 yetkilendirme kodu.<\/li>\n<li><code>redirect_uri<\/code>: Ba\u015flang\u0131\u00e7ta kullan\u0131lan <code>redirect_uri<\/code>.<\/li>\n<li><code>client_id<\/code>: \u0130stemci uygulaman\u0131z\u0131n kimli\u011fi.<\/li>\n<li><code>client_secret<\/code> (gizli): \u0130stemci uygulaman\u0131z\u0131n MCP&#8217;de \u00f6nceden kaydedilmi\u015f gizli anahtar\u0131. Bu, uygulaman\u0131z\u0131n kimli\u011fini do\u011frulamak i\u00e7in kullan\u0131l\u0131r ve asla istemci taraf\u0131nda (taray\u0131c\u0131da) saklanmamal\u0131d\u0131r.<\/li>\n<\/ul>\n<p>        Bu ad\u0131m, istemci uygulamas\u0131n\u0131n sunucu taraf\u0131nda ger\u00e7ekle\u015ftirilir. \u00c7\u00fcnk\u00fc <code>client_secret<\/code>&#8216;in g\u00fcvenli\u011fi esast\u0131r. E\u011fer bu anahtar istemci taraf\u0131nda olursa, k\u00f6t\u00fc niyetli ki\u015filer taraf\u0131ndan ele ge\u00e7irilebilir ve yetkilendirme s\u00fcrecini manip\u00fcle etmek i\u00e7in kullan\u0131labilir. MCP&#8217;nin yetkilendirme sunucusu bu iste\u011fi ald\u0131\u011f\u0131nda, hem yetkilendirme kodunun ge\u00e7erlili\u011fini hem de istemci kimlik bilgilerinin do\u011frulu\u011funu kontrol eder. Her \u015fey yolundaysa, yetkilendirme sunucusu istemci uygulamas\u0131na bir &#8220;eri\u015fim jetonu&#8221; (access token) ve iste\u011fe ba\u011fl\u0131 olarak bir &#8220;yenileme jetonu&#8221; (refresh token) d\u00f6nd\u00fcr\u00fcr. Eri\u015fim jetonu, belirli bir s\u00fcre boyunca kaynaklara eri\u015fmek i\u00e7in kullan\u0131l\u0131rken, yenileme jetonu, eri\u015fim jetonunun s\u00fcresi doldu\u011funda yeni bir eri\u015fim jetonu almak i\u00e7in kullan\u0131labilir.\n    <\/p>\n<h3>4. \u0130stemci Uygulamas\u0131 Eri\u015fim Jetonunu Kullanarak Kaynaklara Eri\u015fir<\/h3>\n<p>\n        Elde edilen eri\u015fim jetonu (access token), art\u0131k istemci uygulaman\u0131z\u0131n kullan\u0131c\u0131n\u0131n ad\u0131na MCP&#8217;deki korumal\u0131 kaynaklara eri\u015fmesini sa\u011flar. Her API iste\u011finde, istemci uygulamas\u0131 bu eri\u015fim jetonunu bir &#8220;Authorization&#8221; ba\u015fl\u0131\u011f\u0131 (header) arac\u0131l\u0131\u011f\u0131yla MCP&#8217;nin API u\u00e7 noktas\u0131na g\u00f6nderir. Bu ba\u015fl\u0131k genellikle \u015fu formatta olur:<\/p>\n<pre><code>Authorization: Bearer [eri\u015fim_jetonu]<\/code><\/pre>\n<p>        MCP&#8217;nin API sunucusu bu iste\u011fi ald\u0131\u011f\u0131nda, &#8220;Authorization&#8221; ba\u015fl\u0131\u011f\u0131ndaki eri\u015fim jetonunu do\u011frular. Jeton ge\u00e7erliyse, istenen i\u015flemi ger\u00e7ekle\u015ftirir (\u00f6rne\u011fin, kullan\u0131c\u0131 profili bilgilerini d\u00f6nd\u00fcr\u00fcr) ve sonucu istemci uygulamas\u0131na g\u00f6nderir. Eri\u015fim jetonlar\u0131n\u0131n genellikle k\u0131sa bir kullan\u0131m \u00f6mr\u00fc vard\u0131r (\u00f6rne\u011fin, 1 saat). Bu, bir jeton ele ge\u00e7irilse bile, zarar verme s\u00fcresinin s\u0131n\u0131rl\u0131 olmas\u0131n\u0131 sa\u011flar. Eri\u015fim jetonunun s\u00fcresi doldu\u011funda, istemci uygulamas\u0131 (e\u011fer bir yenileme jetonu ald\u0131ysa) bu yenileme jetonunu kullanarak yeni bir eri\u015fim jetonu talep edebilir. Bu &#8220;yenileme&#8221; s\u00fcreci, kullan\u0131c\u0131n\u0131n her seferinde tekrar giri\u015f yapma zahmetinden kurtulmas\u0131n\u0131 sa\u011flar.\n    <\/p>\n<h2>MCP&#8217;ye \u00d6zg\u00fc Zorluklar ve \u00c7\u00f6z\u00fcmler<\/h2>\n<p>\n        Canl\u0131 bir MCP sunucusunda OAuth uygulamak, genel prensiplerin yan\u0131 s\u0131ra baz\u0131 kendine \u00f6zg\u00fc zorluklar\u0131 da beraberinde getirebilir. Bu zorluklar, MCP&#8217;nin mimarisine, sundu\u011fu hizmetlere ve g\u00fcvenlik politikalar\u0131na ba\u011fl\u0131 olarak de\u011fi\u015fiklik g\u00f6sterebilir.\n    <\/p>\n<h3>1. Kimlik Sa\u011flay\u0131c\u0131s\u0131 Entegrasyonu<\/h3>\n<p>\n        MCP&#8217;ler genellikle kendi yerel kimlik do\u011frulama sistemlerini veya pop\u00fcler \u00fc\u00e7\u00fcnc\u00fc taraf kimlik sa\u011flay\u0131c\u0131lar\u0131n\u0131 (\u00f6rne\u011fin, Google Identity, Azure AD, Okta) entegre etme yetene\u011fi sunar. Hangi kimlik sa\u011flay\u0131c\u0131s\u0131n\u0131n kullan\u0131ld\u0131\u011f\u0131, OAuth ak\u0131\u015f\u0131n\u0131n detaylar\u0131n\u0131 etkileyebilir. Baz\u0131 MCP&#8217;ler, standart OAuth 2.0 protokol\u00fcn\u00fc desteklerken, baz\u0131lar\u0131 kendi \u00f6zel API&#8217;lerini veya farkl\u0131 ak\u0131\u015flar\u0131 gerektirebilir.<\/p>\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong> MCP&#8217;nin belgelerini dikkatlice inceleyin. Hangi OAuth 2.0 ak\u0131\u015flar\u0131n\u0131n (\u00f6rne\u011fin, Authorization Code Grant, Client Credentials Grant) desteklendi\u011fini ve hangi kimlik sa\u011flay\u0131c\u0131lar\u0131n\u0131n entegre edilebildi\u011fini \u00f6\u011frenin. Entegrasyon i\u00e7in gerekli olan <code>client_id<\/code>, <code>client_secret<\/code> gibi bilgilerin nas\u0131l al\u0131naca\u011f\u0131n\u0131 anlay\u0131n.<\/li>\n<\/ul>\n<p>        \u00d6rne\u011fin, bir MCP&#8217;nin yerel kullan\u0131c\u0131 y\u00f6netimi yerine Azure Active Directory (Azure AD) ile entegre oldu\u011funu varsayal\u0131m. Bu durumda, istemci uygulaman\u0131z\u0131n Azure AD&#8217;nin OAuth 2.0 u\u00e7 noktalar\u0131yla konu\u015fmas\u0131 gerekecektir. Bu, yetkilendirme ve jeton u\u00e7 noktalar\u0131n\u0131n adreslerinin farkl\u0131 olaca\u011f\u0131 anlam\u0131na gelir. Ayr\u0131ca, Azure AD&#8217;nin kendi izin modelini ve talep (claim) yap\u0131s\u0131n\u0131 anlamak da \u00f6nemlidir. MCP&#8217;nin sundu\u011fu bu esneklik, mevcut kurumsal kimlik altyap\u0131s\u0131yla kolay entegrasyon sa\u011flayabilir, ancak bu entegrasyonun do\u011fru yap\u0131land\u0131r\u0131lmas\u0131 kritik \u00f6nem ta\u015f\u0131r. Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir kimlik sa\u011flay\u0131c\u0131s\u0131, g\u00fcvenlik a\u00e7\u0131klar\u0131na yol a\u00e7abilir veya kullan\u0131c\u0131lar\u0131n uygulaman\u0131za eri\u015fimini engelleyebilir. Bu nedenle, MCP&#8217;nin belgelerindeki entegrasyon k\u0131lavuzlar\u0131n\u0131 ad\u0131m ad\u0131m takip etmek ve gerekirse MCP&#8217;nin destek ekibiyle ileti\u015fime ge\u00e7mek en iyi yakla\u015f\u0131md\u0131r.\n    <\/p>\n<h3>2. G\u00fcvenli Yap\u0131land\u0131rma ve Gizli Bilgilerin Y\u00f6netimi<\/h3>\n<p>\n        <code>client_secret<\/code> gibi hassas bilgilerin g\u00fcvenli bir \u015fekilde saklanmas\u0131 ve y\u00f6netilmesi, canl\u0131 bir sunucuda en kritik konulardan biridir. Bu bilgiler, istemci uygulaman\u0131z\u0131n kimli\u011fini do\u011frulamak i\u00e7in kullan\u0131l\u0131r ve ele ge\u00e7irilmesi durumunda ciddi g\u00fcvenlik ihlallerine yol a\u00e7abilir. MCP ortamlar\u0131nda, bu bilgileri y\u00f6netmek i\u00e7in genellikle \u00f6zel ara\u00e7lar veya servisler bulunur.<\/p>\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong> MCP&#8217;nin sundu\u011fu &#8220;Secrets Management&#8221; (Gizli Bilgi Y\u00f6netimi) veya &#8220;Key Vault&#8221; gibi hizmetleri kullan\u0131n. Bu hizmetler, hassas bilgileri g\u00fcvenli bir \u015fekilde saklaman\u0131za ve uygulaman\u0131z\u0131n \u00e7al\u0131\u015fma zaman\u0131nda bu bilgilere g\u00fcvenli bir \u015fekilde eri\u015fmesine olanak tan\u0131r. Kodunuzda <code>client_secret<\/code>&#8216;i do\u011frudan g\u00f6mmekten kesinlikle ka\u00e7\u0131n\u0131n.<\/li>\n<\/ul>\n<p>        Bir\u00e7ok MCP, \u00f6zellikle Azure, AWS veya Google Cloud gibi b\u00fcy\u00fck bulut sa\u011flay\u0131c\u0131lar\u0131, bu t\u00fcr gizli bilgileri y\u00f6netmek i\u00e7in \u00f6zel servisler sunar. \u00d6rne\u011fin, Azure Key Vault, \u015fifreleri, sertifikalar\u0131 ve anahtarlar\u0131 g\u00fcvenli bir \u015fekilde depolamak ve eri\u015fimi kontrol etmek i\u00e7in kullan\u0131l\u0131r. \u0130stemci uygulaman\u0131z, bu servise kimli\u011fini do\u011frultarak (genellikle bir y\u00f6netilen kimlik veya servis prensibi arac\u0131l\u0131\u011f\u0131yla) gizli bilgilere eri\u015febilir. Bu yakla\u015f\u0131m, hassas bilgilerin kod taban\u0131ndan ayr\u0131lmas\u0131n\u0131 sa\u011flayarak genel g\u00fcvenlik duru\u015funu \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir. Ayr\u0131ca, MCP&#8217;lerin sundu\u011fu &#8220;Managed Identity&#8221; (Y\u00f6netilen Kimlik) gibi \u00f6zellikler, uygulaman\u0131z\u0131n kimli\u011fini MCP altyap\u0131s\u0131 taraf\u0131ndan otomatik olarak y\u00f6netmesini sa\u011flayarak, <code>client_secret<\/code> gibi bilgileri manuel olarak yap\u0131land\u0131rma ihtiyac\u0131n\u0131 ortadan kald\u0131rabilir. Bu, \u00f6zellikle da\u011f\u0131t\u0131k sistemlerde ve mikroservis mimarilerinde g\u00fcvenlik y\u00f6netimini basitle\u015ftirir.\n    <\/p>\n<h3>3. Eri\u015fim Jetonu Y\u00f6netimi ve S\u00fcre Sonu<\/h3>\n<p>\n        Eri\u015fim jetonlar\u0131n\u0131n s\u0131n\u0131rl\u0131 bir kullan\u0131m \u00f6mr\u00fc olmas\u0131, iyi bir g\u00fcvenlik uygulamas\u0131d\u0131r, ancak istemci uygulaman\u0131z\u0131n bu durumu y\u00f6netmesini gerektirir. Jetonun s\u00fcresi doldu\u011funda, API istekleri ba\u015far\u0131s\u0131z olacakt\u0131r. Bu nedenle, istemci uygulaman\u0131z\u0131n jetonlar\u0131 ak\u0131ll\u0131ca y\u00f6netmesi gerekir.<\/p>\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong> Yenileme jetonlar\u0131n\u0131 (refresh tokens) etkin bir \u015fekilde kullan\u0131n. Eri\u015fim jetonunun s\u00fcresi dolmak \u00fczereyken veya doldu\u011funda, yenileme jetonu ile yeni bir eri\u015fim jetonu al\u0131n. Bu i\u015flemi arka planda ve otomatik olarak yapacak bir mekanizma geli\u015ftirin. MCP&#8217;nin sundu\u011fu SDK&#8217;lar veya k\u00fct\u00fcphaneler genellikle bu jeton y\u00f6netimini kolayla\u015ft\u0131ran i\u015flevler sunar.<\/li>\n<\/ul>\n<p>        Bir web uygulamas\u0131nda bu \u015fu anlama gelebilir: Kullan\u0131c\u0131 uygulaman\u0131zda gezinirken, arka planda \u00e7al\u0131\u015fan bir servis, mevcut eri\u015fim jetonunun ne zaman s\u00fcresinin dolaca\u011f\u0131n\u0131 kontrol eder. E\u011fer s\u00fcre dolmaya yak\u0131nsa, arka planda sessizce yeni bir eri\u015fim jetonu almak i\u00e7in yenileme jetonunu kullan\u0131r. Bu i\u015flem, kullan\u0131c\u0131ya herhangi bir ek ad\u0131m sormadan tamamlan\u0131r. E\u011fer yenileme jetonu da ge\u00e7ersiz hale gelirse (\u00f6rne\u011fin, kullan\u0131c\u0131 MCP hesab\u0131nda belirli bir g\u00fcvenlik eylemi ger\u00e7ekle\u015ftirdiyse), o zaman kullan\u0131c\u0131dan tekrar giri\u015f yapmas\u0131 istenebilir. Bu t\u00fcr bir otomasyon, kullan\u0131c\u0131 deneyimini kesintiye u\u011fratmadan uygulaman\u0131n s\u00fcrekli eri\u015filebilir olmas\u0131n\u0131 sa\u011flar. MCP&#8217;nin sundu\u011fu API istemci k\u00fct\u00fcphaneleri genellikle bu ak\u0131\u015flar\u0131 y\u00f6netmek i\u00e7in haz\u0131r bile\u015fenler i\u00e7erir, bu da geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r.\n    <\/p>\n<h3>4. Hata Y\u00f6netimi ve Geri Bildirim D\u00f6ng\u00fcs\u00fc<\/h3>\n<p>\n        OAuth ak\u0131\u015flar\u0131 karma\u015f\u0131k olabilir ve \u00e7e\u015fitli noktalarda hatalar olu\u015fabilir. MCP sunucusunun API&#8217;lerinden veya yetkilendirme sunucusundan gelen hatalar\u0131 do\u011fru bir \u015fekilde anlamak ve kullan\u0131c\u0131ya veya geli\u015ftiriciye anlaml\u0131 geri bildirim sa\u011flamak \u00f6nemlidir.<\/p>\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong> MCP&#8217;nin API belgelerindeki hata kodlar\u0131n\u0131 ve mesajlar\u0131n\u0131 \u00f6\u011frenin. Hata durumlar\u0131n\u0131 yakalay\u0131n, loglay\u0131n ve kullan\u0131c\u0131ya anla\u015f\u0131l\u0131r bir dilde a\u00e7\u0131klama sunun. Geli\u015ftirme ortam\u0131nda, detayl\u0131 hata mesajlar\u0131n\u0131 g\u00f6rmek i\u00e7in loglama seviyesini y\u00fckseltin.<\/li>\n<\/ul>\n<p>        \u00d6rne\u011fin, bir kullan\u0131c\u0131 yanl\u0131\u015fl\u0131kla kendi <code>redirect_uri<\/code>&#8216;sini MCP&#8217;ye kaydetmediyse, yetkilendirme sunucusu bir hata d\u00f6nd\u00fcrecektir. Bu hatan\u0131n nedeni, genellikle MCP&#8217;nin hata yan\u0131t\u0131 i\u00e7inde belirtilir (\u00f6rne\u011fin, <code>invalid_request<\/code> veya <code>redirect_uri_mismatch<\/code>). Bu hatay\u0131 yakalayan istemci uygulaman\u0131z, kullan\u0131c\u0131ya &#8220;Uygulama yap\u0131land\u0131rma hatas\u0131. L\u00fctfen sistem y\u00f6neticisi ile ileti\u015fime ge\u00e7in.&#8221; gibi bir mesaj g\u00f6sterebilir. Geli\u015ftirme s\u0131ras\u0131nda ise, bu hatan\u0131n nedenini daha detayl\u0131 anlamak i\u00e7in sunucu loglar\u0131n\u0131 incelemek faydal\u0131 olacakt\u0131r. MCP&#8217;lerin sundu\u011fu izleme (monitoring) ve loglama ara\u00e7lar\u0131, bu t\u00fcr sorunlar\u0131 te\u015fhis etmek i\u00e7in paha bi\u00e7ilmezdir.\n    <\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Bir E-ticaret Platformu ve MCP Entegrasyonu<\/h2>\n<p>\n        Diyelim ki bir e-ticaret \u015firketi, m\u00fc\u015fterilerinin MCP \u00fczerinde bar\u0131nd\u0131r\u0131lan kendi hesap bilgilerine (sipari\u015f ge\u00e7mi\u015fi, adresler vb.) eri\u015febilece\u011fi bir mobil uygulama geli\u015ftirmek istiyor. Bu durumda, OAuth 2.0 ak\u0131\u015f\u0131 \u015fu \u015fekilde i\u015fleyebilir:\n    <\/p>\n<h3>Senaryo: Sipari\u015f Ge\u00e7mi\u015fine Eri\u015fim<\/h3>\n<p>\n        1.  <strong>Kullan\u0131c\u0131 Giri\u015fi:<\/strong> M\u00fc\u015fteri, mobil uygulamay\u0131 a\u00e7ar ve &#8220;MCP Hesab\u0131mla Giri\u015f Yap&#8221; se\u00e7ene\u011fini t\u0131klar.<br \/>\n        2.  <strong>Y\u00f6nlendirme:<\/strong> Mobil uygulama, m\u00fc\u015fteriyi MCP&#8217;nin kimlik do\u011frulama sunucusuna y\u00f6nlendirir. Bu y\u00f6nlendirme s\u0131ras\u0131nda, uygulaman\u0131n kimli\u011fi (<code>client_id<\/code>), geri d\u00f6n\u00fclecek URL (<code>redirect_uri<\/code>), istenen izinler (\u00f6rne\u011fin, <code>read_orders<\/code>, <code>read_profile<\/code>) ve bir <code>state<\/code> de\u011feri g\u00f6nderilir.<br \/>\n        3.  <strong>Kimlik Do\u011frulama ve Yetkilendirme:<\/strong> M\u00fc\u015fteri, MCP&#8217;nin oturum a\u00e7ma ekran\u0131nda kimlik bilgilerini girer. MCP, m\u00fc\u015fterinin kimli\u011fini do\u011frular ve mobil uygulaman\u0131n talep etti\u011fi izinleri onaylay\u0131p onaylamayaca\u011f\u0131n\u0131 sorar. M\u00fc\u015fteri onaylar.<br \/>\n        4.  <strong>Yetkilendirme Kodu Al\u0131m\u0131:<\/strong> MCP, m\u00fc\u015fteriyi mobil uygulaman\u0131n <code>redirect_uri<\/code>&#8216;sine geri y\u00f6nlendirir ve bir <code>code<\/code> ile birlikte.<br \/>\n        5.  <strong>Eri\u015fim Jetonu De\u011fi\u015fimi:<\/strong> Mobil uygulaman\u0131n arka u\u00e7 sunucusu (g\u00fcvenli oldu\u011fu i\u00e7in), ald\u0131\u011f\u0131 <code>code<\/code>&#8216;u kullanarak MCP&#8217;nin jeton u\u00e7 noktas\u0131na bir POST iste\u011fi g\u00f6nderir. Bu istek, <code>client_id<\/code>, <code>client_secret<\/code> (g\u00fcvenli bir \u015fekilde y\u00f6netilen), <code>code<\/code> ve <code>redirect_uri<\/code>&#8216;yi i\u00e7erir.<br \/>\n        6.  <strong>Eri\u015fim Jetonu Al\u0131m\u0131:<\/strong> MCP&#8217;nin jeton u\u00e7 noktas\u0131, iste\u011fi do\u011frulayarak mobil uygulaman\u0131n arka u\u00e7 sunucusuna bir <code>access_token<\/code> ve bir <code>refresh_token<\/code> d\u00f6nd\u00fcr\u00fcr.<br \/>\n        7.  <strong>Sipari\u015flere Eri\u015fim:<\/strong> Mobil uygulaman\u0131n arka u\u00e7 sunucusu, ald\u0131\u011f\u0131 <code>access_token<\/code>&#8216;\u0131 kullanarak MCP&#8217;nin sipari\u015f API&#8217;sine bir istek g\u00f6nderir (<code>Authorization: Bearer [access_token]<\/code> ba\u015fl\u0131\u011f\u0131 ile).<br \/>\n        8.  <strong>Veri D\u00f6n\u00fc\u015f\u00fc:<\/strong> MCP API, <code>access_token<\/code>&#8216;\u0131 do\u011frular ve m\u00fc\u015fterinin sipari\u015f ge\u00e7mi\u015fini mobil uygulamaya g\u00f6nderir.<br \/>\n        9.  <strong>Jeton S\u00fcresi Doldu\u011funda:<\/strong> E\u011fer <code>access_token<\/code>&#8216;\u0131n s\u00fcresi dolarsa, mobil uygulaman\u0131n arka u\u00e7 sunucusu, saklad\u0131\u011f\u0131 <code>refresh_token<\/code>&#8216;\u0131 kullanarak yeni bir <code>access_token<\/code> talep eder ve bu s\u00fcreci tekrarlar.<\/p>\n<p>        Bu senaryoda, m\u00fc\u015fterinin \u015fifresi asla mobil uygulama veya onun arka u\u00e7 sunucusu ile payla\u015f\u0131lmaz. T\u00fcm hassas i\u015flemler MCP&#8217;nin g\u00fcvenli ortam\u0131nda ger\u00e7ekle\u015fir. MCP&#8217;nin sundu\u011fu g\u00fcvenlik \u00f6zellikleri ve API&#8217;ler, bu entegrasyonu hem g\u00fcvenli hem de \u00f6l\u00e7eklenebilir hale getirir.\n    <\/p>\n<h2>Geli\u015fmi\u015f Konular ve En \u0130yi Uygulamalar<\/h2>\n<p>\n        Temel OAuth ak\u0131\u015f\u0131n\u0131 anlad\u0131ktan sonra, canl\u0131 bir MCP ortam\u0131nda daha sa\u011flam ve g\u00fcvenli uygulamalar geli\u015ftirmek i\u00e7in baz\u0131 ileri d\u00fczey konulara ve en iyi uygulamalara g\u00f6z atal\u0131m.\n    <\/p>\n<h3>1. Farkl\u0131 OAuth Ak\u0131\u015flar\u0131<\/h3>\n<p>\n        OAuth 2.0, farkl\u0131 senaryolar i\u00e7in \u00e7e\u015fitli ak\u0131\u015flar sunar. Yukar\u0131da bahsetti\u011fimiz &#8220;Authorization Code Grant&#8221; ak\u0131\u015f\u0131, kullan\u0131c\u0131lar\u0131n dahil oldu\u011fu web ve mobil uygulamalar i\u00e7in en yayg\u0131n olan\u0131d\u0131r. Ancak, ba\u015fka ak\u0131\u015flar da vard\u0131r:<\/p>\n<ul>\n<li><strong>Client Credentials Grant:<\/strong> Kullan\u0131c\u0131lar\u0131n dahil olmad\u0131\u011f\u0131, uygulaman\u0131n kendi ad\u0131na kaynaklara eri\u015fmesi gerekti\u011fi durumlar i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin, bir arka plan servisi, MCP&#8217;deki bir veri deposundan s\u00fcrekli veri \u00e7ekiyorsa bu ak\u0131\u015f\u0131 kullanabilir.<\/li>\n<li><strong>Implicit Grant (Art\u0131k \u00d6nerilmiyor):<\/strong> Daha eski ak\u0131\u015flardan biridir ve eri\u015fim jetonunu do\u011frudan taray\u0131c\u0131ya d\u00f6nd\u00fcr\u00fcr. G\u00fcvenlik riskleri nedeniyle modern uygulamalarda genellikle \u00f6nerilmez.<\/li>\n<li><strong>Resource Owner Password Credentials Grant:<\/strong> Kullan\u0131c\u0131n\u0131n kullan\u0131c\u0131 ad\u0131 ve \u015fifresini do\u011frudan istemci uygulamas\u0131na vermesini gerektiren bir ak\u0131\u015ft\u0131r. Kullan\u0131c\u0131 g\u00fcveni tam de\u011filse veya ba\u015fka bir se\u00e7enek yoksa kullan\u0131l\u0131r, ancak genellikle ka\u00e7\u0131n\u0131lmas\u0131 \u00f6nerilir.<\/li>\n<\/ul>\n<p>        MCP&#8217;nizin hangi ak\u0131\u015flar\u0131 destekledi\u011fini ve hangi senaryolar i\u00e7in hangi ak\u0131\u015f\u0131n en uygun oldu\u011funu anlamak, uygulaman\u0131z\u0131n g\u00fcvenli\u011fini ve i\u015flevselli\u011fini optimize etmenize yard\u0131mc\u0131 olur.\n    <\/p>\n<h3>2. G\u00fcvenli Token Saklama<\/h3>\n<p>\n        Eri\u015fim jetonlar\u0131 ve yenileme jetonlar\u0131, hassas bilgilerdir. Bunlar\u0131 istemci uygulaman\u0131zda g\u00fcvenli bir \u015fekilde saklamak kritik \u00f6neme sahiptir.<\/p>\n<ul>\n<li><strong>Sunucu Taraf\u0131 Uygulamalar:<\/strong> E\u011fer uygulaman\u0131z\u0131n bir arka u\u00e7 sunucusu varsa, jetonlar\u0131 sunucu taraf\u0131nda, g\u00fcvenli bir veritaban\u0131nda veya MCP&#8217;nin sundu\u011fu gizli bilgi y\u00f6netim servislerinde saklay\u0131n.<\/li>\n<li><strong>Tek Sayfa Uygulamalar\u0131 (SPA):<\/strong> SPA&#8217;larda jetonlar\u0131 saklamak daha zordur. <code>localStorage<\/code> veya <code>sessionStorage<\/code> gibi taray\u0131c\u0131 depolama mekanizmalar\u0131, XSS (Cross-Site Scripting) sald\u0131r\u0131lar\u0131na kar\u015f\u0131 savunmas\u0131z olabilir. Bu nedenle, SPA&#8217;larda genellikle g\u00fcvenli bir arka u\u00e7la ileti\u015fim kurularak jetonlar y\u00f6netilir (\u00f6rne\u011fin, arka u\u00e7 sunucu, yetkilendirme kodunu al\u0131p jetonu saklar ve ard\u0131ndan taray\u0131c\u0131ya g\u00fcvenli bir \u00e7erez (HTTP-only cookie) arac\u0131l\u0131\u011f\u0131yla iletir).<\/li>\n<\/ul>\n<p>        MCP&#8217;nin sundu\u011fu g\u00fcvenlik \u00f6zellikleri, \u00f6zellikle g\u00fcvenli \u00e7erez y\u00f6netimi veya y\u00f6netilen kimlikler gibi mekanizmalar, bu zorluklar\u0131n \u00fcstesinden gelmede yard\u0131mc\u0131 olabilir.\n    <\/p>\n<h3>3. Kapsam (Scope) Y\u00f6netimi<\/h3>\n<p>\n        Uygulaman\u0131z\u0131n ihtiya\u00e7 duydu\u011fu minimum kapsam\u0131 (scope) talep etmek, &#8220;En Az Ayr\u0131cal\u0131k Prensibi&#8221; (Principle of Least Privilege) a\u00e7\u0131s\u0131ndan \u00f6nemlidir. Kullan\u0131c\u0131dan sadece belirli bir g\u00f6revi yerine getirmek i\u00e7in gerekli olan izinleri isteyin. \u00d6rne\u011fin, sadece sipari\u015fleri listelemek istiyorsan\u0131z, kullan\u0131c\u0131n\u0131n e-posta adresini veya profilini g\u00fcncelleme iznini istemeyin.<\/p>\n<ul>\n<li><strong>Fayda:<\/strong> Kullan\u0131c\u0131lar\u0131n uygulaman\u0131za g\u00fcveni artar \u00e7\u00fcnk\u00fc hassas verilerine gereksiz yere eri\u015filmedi\u011fini bilirler. G\u00fcvenlik ihlali durumunda zarar da s\u0131n\u0131rl\u0131 olur.<\/li>\n<\/ul>\n<p>        MCP&#8217;nin kimlik do\u011frulama ak\u0131\u015f\u0131nda, kullan\u0131c\u0131lara talep edilen izinlerin net bir listesi sunulur. Bu liste ne kadar anla\u015f\u0131l\u0131r ve makul olursa, kullan\u0131c\u0131n\u0131n onay verme olas\u0131l\u0131\u011f\u0131 o kadar y\u00fcksek olur.\n    <\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>\n        Canl\u0131 bir uzak MCP sunucusunda OAuth 2.0 uygulamak, modern web ve mobil uygulamalar\u0131n g\u00fcvenli bir \u015fekilde kimlik do\u011frulama ve yetkilendirme i\u015flemlerini ger\u00e7ekle\u015ftirmesi i\u00e7in temel bir gerekliliktir. Bu s\u00fcre\u00e7, istemci uygulamas\u0131n\u0131n, kullan\u0131c\u0131n\u0131n kimlik bilgilerini do\u011frudan ele almadan, MCP&#8217;nin yetkilendirme sunucusu arac\u0131l\u0131\u011f\u0131yla kullan\u0131c\u0131 ad\u0131na kaynaklara eri\u015fim izni almas\u0131 prensibine dayan\u0131r. MCP&#8217;nin kendine \u00f6zg\u00fc yap\u0131s\u0131, kimlik sa\u011flay\u0131c\u0131s\u0131 entegrasyonu, gizli bilgilerin y\u00f6netimi ve jeton y\u00f6netimi gibi konularda \u00f6zel dikkat gerektirebilir. Ancak, MCP&#8217;nin sundu\u011fu ara\u00e7lar ve hizmetler (gizli bilgi y\u00f6netimi, y\u00f6netilen kimlikler, SDK&#8217;lar) bu s\u00fcreci \u00f6nemli \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131rabilir ve g\u00fcvenli\u011fi art\u0131rabilir. Ad\u0131m ad\u0131m ak\u0131\u015f\u0131 anlamak, farkl\u0131 OAuth ak\u0131\u015flar\u0131n\u0131 bilmek ve en iyi g\u00fcvenlik uygulamalar\u0131n\u0131 takip etmek, ba\u015far\u0131l\u0131 ve g\u00fcvenli bir entegrasyonun anahtar\u0131d\u0131r. Unutmay\u0131n, g\u00fcvenlik s\u00fcrekli bir s\u00fcre\u00e7tir ve MCP&#8217;nin sundu\u011fu en g\u00fcncel g\u00fcvenlik \u00f6zelliklerinden faydalanmak, uygulaman\u0131z\u0131n uzun vadede g\u00fcvende kalmas\u0131n\u0131 sa\u011flayacakt\u0131r.\n    <\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<ul>\n<li>\n            <strong>Soru:<\/strong> MCP&#8217;de <code>client_secret<\/code>&#8216;i nerede saklamal\u0131y\u0131m?<br \/>\n            <br \/>\n            <strong>Cevap:<\/strong> <code>client_secret<\/code>&#8216;i asla istemci taraf\u0131nda (taray\u0131c\u0131da veya mobil uygulamada) saklamay\u0131n. MCP&#8217;nin sundu\u011fu &#8220;Secrets Management&#8221; veya &#8220;Key Vault&#8221; gibi g\u00fcvenli gizli bilgi y\u00f6netim hizmetlerini kullan\u0131n veya sunucu taraf\u0131 uygulaman\u0131z\u0131n g\u00fcvenli bir veritaban\u0131nda saklay\u0131n.\n        <\/li>\n<li>\n            <strong>Soru:<\/strong> Eri\u015fim jetonumun s\u00fcresi doldu, ne yapmal\u0131y\u0131m?<br \/>\n            <br \/>\n            <strong>Cevap:<\/strong> E\u011fer bir yenileme jetonu (refresh token) ald\u0131ysan\u0131z, bu jetonu kullanarak MCP&#8217;nin jeton u\u00e7 noktas\u0131ndan yeni bir eri\u015fim jetonu talep edin. E\u011fer yenileme jetonunuz da yoksa veya ge\u00e7ersizse, kullan\u0131c\u0131dan tekrar giri\u015f yapmas\u0131n\u0131 istemeniz gerekecektir.\n        <\/li>\n<li>\n            <strong>Soru:<\/strong> Hangi OAuth 2.0 ak\u0131\u015f\u0131n\u0131 kullanmal\u0131y\u0131m?<br \/>\n            <br \/>\n            <strong>Cevap:<\/strong> Kullan\u0131c\u0131lar\u0131n dahil oldu\u011fu web ve mobil uygulamalar i\u00e7in genellikle &#8220;Authorization Code Grant&#8221; ak\u0131\u015f\u0131 \u00f6nerilir. Kullan\u0131c\u0131lar\u0131n olmad\u0131\u011f\u0131 durumlar i\u00e7in &#8220;Client Credentials Grant&#8221; ak\u0131\u015f\u0131 kullan\u0131labilir. MCP belgelerinizi kontrol ederek hangi ak\u0131\u015flar\u0131n desteklendi\u011fini ve senaryonuza en uygun olan\u0131 belirleyin.\n        <\/li>\n<li>\n            <strong>Soru:<\/strong> OAuth ak\u0131\u015f\u0131 s\u0131ras\u0131nda kullan\u0131c\u0131ya hangi bilgileri g\u00f6stermeliyim?<br \/>\n            <br \/>\n            <strong>Cevap:<\/strong> Kullan\u0131c\u0131ya, uygulaman\u0131z\u0131n hangi bilgilere eri\u015fmek istedi\u011fini (kapsamlar) ve bu bilgilerin nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 net bir \u015fekilde a\u00e7\u0131klay\u0131n. MCP&#8217;nin kimlik do\u011frulama ekran\u0131 bu bilgileri zaten g\u00f6sterecektir, ancak uygulaman\u0131z\u0131n kendi aray\u00fcz\u00fcnde de \u015feffaf olmak \u00f6nemlidir.\n        <\/li>\n<\/ul>\n<p>#OAuth #MCP #WebGeli\u015ftirme #G\u00fcvenlik #API #BulutBili\u015fim #Yetkilendirme<\/p>\n","protected":false},"excerpt":{"rendered":"Bir web uygulamas\u0131n\u0131 veya API&#8217;yi canl\u0131 ve uzak bir sunucuda \u00e7al\u0131\u015ft\u0131rmak, genellikle kimlik do\u011frulama ve yetkilendirme gibi g\u00fcvenlik mekanizmalar\u0131n\u0131 devreye sokmay\u0131 gerektirir.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-45535","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor?\" \/>\n<meta property=\"og:description\" content=\"Bir web uygulamas\u0131n\u0131 veya API&#039;yi canl\u0131 ve uzak bir sunucuda \u00e7al\u0131\u015ft\u0131rmak, genellikle kimlik do\u011frulama ve yetkilendirme gibi g\u00fcvenlik mekanizmalar\u0131n\u0131 devreye sokmay\u0131 gerektirir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-03T18:14:41+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor?\",\"datePublished\":\"2026-11-03T18:14:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/\"},\"wordCount\":3933,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/\",\"name\":\"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-11-03T18:14:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/","og_locale":"tr_TR","og_type":"article","og_title":"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor?","og_description":"Bir web uygulamas\u0131n\u0131 veya API'yi canl\u0131 ve uzak bir sunucuda \u00e7al\u0131\u015ft\u0131rmak, genellikle kimlik do\u011frulama ve yetkilendirme gibi g\u00fcvenlik mekanizmalar\u0131n\u0131 devreye sokmay\u0131 gerektirir.","og_url":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-11-03T18:14:41+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor?","datePublished":"2026-11-03T18:14:41+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/"},"wordCount":3933,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/","url":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/","name":"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-11-03T18:14:41+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/canli-uzak-mcp-sunucusunda-oauth-gercekten-nasil-gorunuyor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Canl\u0131 Uzak MCP Sunucusunda OAuth Ger\u00e7ekten Nas\u0131l G\u00f6r\u00fcn\u00fcyor?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/45535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=45535"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/45535\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=45535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=45535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=45535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}