API anahtarları vs OAuth 2.0: partner entegrasyonlarında ne değişiyor
API anahtarları ve OAuth 2.0: partner entegrasyonlarında onboarding çabası, token döndürme, kullanıcı düzeyinde erişim ve denetlenebilirliği karşılaştırın, böylece partner geliştiriciler güvenli entegrasyon yapabilsin.

Seçtiğiniz kimlik doğrulamada gerçekten neyi tercih ediyorsunuz
İnsanlar API anahtarları ile OAuth 2.0'ı karşılaştırırken bunun saf bir güvenlik tartışması olduğunu düşünüyor. Partner entegrasyonları açısından bu aynı zamanda operasyonel bir karardır: partnerlerin ne kadar hızlı başlayabildiği, sonradan erişimi nasıl kontrol ettiğiniz ve bir şey bozulduğunda destek işinin ne kadar acı verici olduğu.
Çoğu entegrasyon aynı temellere ihtiyaç duyar: güvenilir bir doğrulama yolu, net sınırlar (rate limitler ve izinler) ve kimin ne yaptığını tahmin etmeden cevaplayabileceğiniz izlenebilirlik. Seçeceğiniz kimlik doğrulama yöntemi bu ihtiyaçların varsayılan olarak kolay mı yoksa ekstra kurallar, paneller ve manuel süreçlerle mi sağlanacağını belirler.
Birkaç basit terim konuşmayı pratik tutar:
- API anahtarı: bir partner uygulamasını veya sistemi tanımlayan paylaşılan gizli değer.
- Token: API çağırmak için kullanılan zaman sınırlı kimlik bilgisi.
- Scope: “read invoices” veya “create tickets” gibi adlandırılmış izin.
Gerçek karar, entegrasyonun ne adına hareket ettiğidir.
Eğer sunucu-sunucu ise, bir API anahtarı genellikle uygundur. Örneğin: bir partner kendi sunucusundan geceleyin sizin API'nize senkronizasyon yapıyor. Hiçbir son kullanıcı "İzin ver" düğmesine tıklamıyor. Genelde partner düzeyinde erişim, öngörülebilir döndürme ve hızlı onboarding istersiniz.
Eğer kullanıcı-delege edilmiş ise, OAuth 2.0 genelde daha uygundur. Örneğin: müşterinin hesabını partner uygulamaya bağlaması ve her müşterinin sadece kendi verilerine izin vermesi gerektiği durumlar. Bu senaryolarda kullanıcı başına izinler, kolay iptal ve daha temiz denetim izleri önem kazanır.
Bu seçim destek iş yükünüzü değiştirir. Anahtarlarla, anahtar paylaşımı, döndürme koordinasyonu ve hangi anahtarın hangi partner ortamına ait olduğunu takip etme üzerine daha çok zaman harcarsınız. OAuth ile onay akışları ve redirect ayarları üzerinde daha çok zaman harcarsınız, ama hangi insanın veya kiracının bir işlemi tetiklediğini tahmin etme konusunda daha az zaman harcarsınız.
Entegrasyon backend’ini AppMaster gibi bir araçta inşa ediyorsanız, kimlik doğrulamayı erkenden planlayın. Veri modelinizi (partnerler, kullanıcılar, scope'lar) ve ilk günden görmek isteyeceğiniz denetim loglarını etkiler.
Partner entegrasyonlarında API anahtarları nasıl çalışır
API anahtarları, partnerin API'nizi çağırmasına izin vermenin en basit yoludur. Anahtarlar genelde hızda kazanır: bir gizli dize verirsiniz, partner isteklerine ekler ve veri alışverişine hemen başlarsınız.
Bir anahtar neyi temsil eder
Çoğu durumda bir API anahtarı partner uygulamasını (veya entegrasyonu) temsil eder, belirli bir son kullanıcıyı değil. Bir partner tüm ekipleri ve müşterileri için tek bir anahtar kullanıyorsa, sizin tarafınızdan her istek aynı görünür: “Partner X”. Bu kurulum kolaydır, ama erişim kaba olur.
Pratikte, anahtarlar yönetim konsolunda veya tek seferlik bir sağlama adımıyla verilir. Partnerler sonra bunları bir yapılandırma dosyasında, ortam değişkeninde veya gizli yöneticide saklar. Risk, “geçici” bir anahtarın paylaşılan bir tabloya kopyalanması, sohbete yapıştırılması veya istemci tarafı koda gömülmesi gibi durumlardır.
Kısıtlar hızlıca görünür. İzinler geniş olma eğilimindedir, anahtarlar paylaşılan kimlik bilgileri olduğundan eylemleri bir kişiye atfetmek zordur, döndürme koordinasyon gerektirir ve bir anahtar sızarsa saldırgan partner gibi hareket edebilir ta ki iptal edilene kadar.
Örnek: bir lojistik partner geceleyin sunucusundan siparişleri içe aktarır ve durum güncellemeleri gönderir. Tek bir API anahtarıyla çalışırken loglarınızda sadece partner anahtarı görünür; bunun bir geliştirici testi, planlı bir iş veya ele geçirilmiş bir makine tarafından tetiklenip tetiklenmediğini anlayamazsınız.
API anahtarlarının makul bir seçim olduğu durumlar
API anahtarları, sınırlı ve sabit eylemler için sunucu-sunucu entegrasyonlarında iyi çalışabilir; özellikle anahtarı belirli IP'lere, endpoint'lere veya ortamlara (test vs prod) kısıtlayabiliyorsanız. AppMaster gibi bir araçla API katmanını inşa ediyorsanız, hızlı partner denemeleri için anahtarlar genellikle iyi bir ilk adımdır. Yalnızca canlıya almadan önce nasıl döndüreceğinizi ve iptal edeceğinizi kararlaştırın.
OAuth 2.0 nasıl çalışır (ders kitabı dışı)
OAuth 2.0'ın var olma nedeni: delege edilmiş erişim. Partner uygulamanın bir kullanıcı adına API'yi çağırmasına izin verir; kullanıcı şifresini vermek zorunda kalmaz ve partner kalıcı, sınırsız erişim elde etmez.
Bunu üç taraflı bir izin el sıkışması olarak düşünün:
- Kullanıcı (kaynak sahibi): verilerine erişilen kişi.
- Partner uygulama (client): partnerin inşa ettiği entegrasyon.
- Sizin kimlik sisteminiz (authorization server): kullanıcıyı doğrulayan, onay isteyen ve token veren sistem.
Kullanıcı onayladıktan sonra partner uygulama bir access token alır. Bu, uygulamanın şu anda izni olduğunu gösteren kısa ömürlü kimlik bilgisidir. Access token'lar çabuk süresi dolacak şekilde tasarlanır; böylece sızma durumunda etki sınırlı olur.
Kullanıcıları sürekli onaya zorlamamak için birçok sistem ayrıca bir refresh token kullanır. Refresh token daha uzun ömürlüdür ve sadece eskiyen access token yerine yenisini almak için kullanılır. Basit model: access token API çağrıları için, refresh token yeni access token almak için.
Scope’lar OAuth’u pratik kılar. Bir scope “read:invoices” veya “write:customers” gibi adlandırılmış izin sınırıdır. Onay sırasında kullanıcı partner uygulamanın ne istediğini görür ve sistem hangi izinlerin verildiğini kaydeder. API her istekte scope kontrolü yapar ve verilenin dışında bir çağrıyı reddeder.
Örnek: bir CRM partneri kişiler senkronize etmek istiyor. Partnerin sadece "read:contacts" ve "write:contacts" istemesini zorunlu kılabilirsiniz. Sonradan silme yapmaya çalışırlarsa, "delete:contacts" onaylanmadıysa API engeller. Pratikte en büyük farklardan biri budur: OAuth en az ayrıcalık ilkesini uygulamayı kolaylaştırır.
Onboarding: dış geliştiriciler için ilk gün deneyimi
API anahtarlarıyla onboarding neredeyse anında olabilir. Partner bir anahtar ister, siz verirsiniz (çoğunlukla bir partner portalı veya e-posta yoluyla) ve anahtarı istek başlığına eklerler. İlk çağrı genelde dakikalar içinde olur, bu da partner ekibi entegrasyonu hızlıca göstermek istediğinde harika hisseder.
Bu hızın bir bedeli vardır: "kim çağırıyor" ilk gün belirsizdir. Aynı anahtar partner ekibi arasında paylaşılıyorsa, hızlı bir demo alırsınız ama erken sınırlar koymak zorlaşır (test vs prod, en az ayrıcalık, bir şey bozulduğunda net sahiplik).
OAuth onboarding daha ağır hissettirir çünkü ilk başarılı çağrıdan önce daha fazla hareketli parça vardır. Partnerler genelde bir uygulama kaydetmeli, redirect URI'leri ayarlamalı ve test kullanıcıları ya da sandbox hesabı kullanmalıdır. İlk çağrı saatler veya günler alabilir; bunun nedeni OAuth'un gizemli olması değil, küçük kurulum detaylarının büyük gecikmeler yaratmasıdır.
En yaygın ilk gün engelleri redirect URI uyuşmazlıkları, bir yetki kodunu access token sanmak, ortamları karıştırmak (test kimlik bilgileriyle prod'a denemek), eksik scope'lar ve test kullanıcı oluşturma ya da sıfırlama için basit bir yolun olmamasıdır.
Dokümantasyon OAuth için daha da önemlidir. API anahtarları için kısa bir "anahtarı kopyala, başlığa ekle, endpoint'i çağır" rehberi yeterli olabilir. OAuth için partnerler bir kontrol listesi ve çalıştırabilecekleri bir örnek bekler.
AppMaster ile partner araçları inşa ediyorsanız, küçük bir başlangıç uygulaması (web UI ve bir backend proxy) partnerlerin çok kod yazmadan OAuth akışını uçtan uca tamamlamasına yardımcı olabilir ve güvenlik modelini ilk günden net tutar.
Gerçek dünyada token döndürme ve iptal
Döndürme basit görünür ta ki partnerlerin cron işleri, birden çok ortamı ve altı ay önce birinin gizli anahtarı bir tabloya yapıştırmış olmasını hatırlayana kadar. Pratik soru "döndürebilir miyiz?" değil, "üretimi bozmadan döndürebilir miyiz?" olur.
API anahtarlarında döndürme çoğunlukla koordinasyondur. Güvenli bir desen çift anahtar ve örtüşme penceresidir: yeni bir anahtar verirsiniz, kısa süre her iki anahtarı da kabul edersiniz, partner geçişi onayladıktan sonra eskiyi devre dışı bırakırsınız. Diğer yandan acil iptal: bir anahtar sızarsa, tek tıkla öldürebilmek istersiniz.
Uygulanabilir anahtar döndürme genelde her partner için iki aktif anahtar (şimdi ve sonraki), ortam başına ayrı anahtarlar (dev, staging, prod), hangi sistemin hangi anahtarı kullandığını bilmenizi sağlayan net etiketleme ve anında iptal için test edilmiş bir vaka yolu içerir.
OAuth döndürme, kısa ömürlü access token'ları kullanırsanız daha otomatik olur. Access tokenların süresinin dolmasına izin verir ve yenilemek için refresh tokenlara güvenirsiniz; bu, erişimi kesmeniz gerektiğinde kesinti riskini azaltır. İptal refresh tokenlara odaklanır: bun iptal edildiğinde partner yeni access token yaratamaz.
Zor kısım politikadır: refresh tokenların ne kadar yaşadığı, yeniden kullanılıp kullanılmayacağı ve hangi durumların tekrar kimlik doğrulama gerektirdiği (şifre sıfırlama, yönetici kaldırma, şüpheli etkinlik). Hızlı olay müdahalesi gerekiyorsa access tokenları kısa tutun ve refresh token iptalini güvenilir ve anında yapın.
Yaygın bir olay: partnerin sunucu logları yanlışlıkla kimlik bilgilerini kaydeder. API anahtarlarında anahtarı iptal edersiniz ve entegrasyon hemen durur, sonra yeni anahtar verip güncellemeleri koordine etmek zorunda kalırsınız. OAuth'ta refresh tokenları iptal edersiniz ve mevcut access tokenlar yakında süresi dolar; genelde daha az ani kesinti ile sonuçlanır.
Kullanıcı düzeyinde erişim: kullanıcı başına, partner başına yoksa her ikisi?
Sadece hangi şirketin API'nizi çağırdığını bilmeniz gerekiyorsa partner düzeyi kimlik yeterli olabilir. Ancak bir partner birçok son kullanıcı (ajanlar, yöneticiler, müşteriler) adına hareket ediyorsa, açık bir kullanıcı bağlamına da ihtiyaç duyarsınız.
API anahtarlarında yaygın desen tek bir sır per partnerdir. Kullanıcı bağlamı sonra üç yoldan biriyle eklenir: hiç kullanıcı yok (her şey partner gibi görünür), bir kullanıcı ID'si başlık veya alanda gönderilir, veya partnerin sizden aldığınız bir kullanıcı ID'sini imzaladığı bir impersonation akışı. Bunlar çalışabilir, ama partnerin gönderdiği herhangi bir kullanıcı tanımlayıcısını doğrulanmamış olarak değerlendirmelisiniz.
OAuth kullanıcı düzeyinde erişim için tasarlanmıştır. Her kullanıcı erişim verir ve scope'lar partnerin ne yapabileceğini sınırlar. Bu en az ayrıcalığı uygulamayı kolaylaştırır: entegrasyon kişileri okuyabilir ama fatura dışa aktaramaz, ya da biletleri güncelleyebilir ama yönetici ayarlarını değiştiremez.
Partnerler birçok kullanıcı adına hareket ettiğinde izinleri modelleme
Bunu düz tutmanın basit yolu kimlikleri ve izinleri ayırmaktır: partner kimliği (entegrasyon yapan), kullanıcı kimliği (eylem için olan), rol (kullanıcının üründe ne yapabileceği) ve scope (partnerin o kullanıcı için ne yapabileceği).
Örnek: bir helpdesk partneri 200 ajan için ticket senkronizasyonu yapıyor. Sadece tek bir API anahtarı kullanıyorsanız, her eylem loglarda “Partner A” olarak görünebilir. OAuth ile her ajanın kendi onayı olabilir, böylece “Ajan Maria Partner A üzerinden ticket 1832'yi güncelledi” demek mümkün olur.
Her ikisine de ihtiyacınız varsa partner düzeyinde bir client kimliği ile kullanıcı delege etmesini (kullanıcıya bağlı OAuth tokenları) kullanın. AppMaster gibi araçlarda bu, kullanıcılar için bir auth modülü, partner kayıtları ve iş mantığınızda izin kontrolleri ile temiz şekilde eşlenir.
Denetlenebilirlik ve sorun giderme: kim ne yaptı?
Partner entegrasyonunda bir şey ters gittiğinde, zor kısım nadiren hatayı düzeltmektir. Asıl zor olan olanı kanıtlamaktır.
API anahtarlarında birçok ekip paylaşılan kimlik sorunuyla karşılaşır. Tek bir anahtar genelde “partner”i temsil eder, belirli bir kişiyi veya uygulama örneğini değil. Bir isteğin Key A ile yapıldığını loglayabilirsiniz, ama hangi son kullanıcının tetiklediğini, bunun bir çalışan mı, bir script mi yoksa sızmış bir anahtar mı olduğunu genelde kanıtlayamazsınız. Partner anahtarı birden fazla sisteme kopyalanırsa, loglarınız hep aynı görünür.
OAuth daha net bir iz sağlar: hangi kullanıcının hangi client uygulamayı yetkilendirdiği, ne zaman yaptığı ve hangi erişimin verildiği (scope). Partner uygulaması ele geçirilirse, etkiyi genelde belirli bir client_id'ye veya onay veren kullanıcıların alt kümesine daraltabilirsiniz.
Güvenlik incelemelerinde veya uyumluluk işlerinde alacağınız denetim soruları şunlardır: hangi kullanıcının verilerine hangi partner uygulama ve hangi scope ile erişildi; erişim ne zaman verildi ve en son ne zaman kullanıldı; çağrılar nereden geldi (IP, ortam); herhangi bir şey onaylanan scope'u aştı mı; ve bir kullanıcının erişimini tüm entegrasyonu durdurmadan iptal edebilir misiniz?
Sorun gidermeyi hızlı yapmak için her istekte (her auth türünde) birkaç alan yakalayın: client_id (veya key id), subject (varsa kullanıcı id), scope, IP adresi ve yanıtlarda döndüreceğiniz benzersiz bir istek ID'si. Zaman damgaları ve sonuçlar (başarılı, reddedildi, rate limited) ekleyin ki bir olay zaman çizelgesini dakikalar içinde yeniden inşa edebilin.
Güvenlik ve destek sorunlarına yol açan yaygın hatalar
Çoğu partner auth olayı “ileri seviye hack” değildir. Gizli bilgileri açığa çıkarmayı kolaylaştıran veya değiştirmeyi zorlaştıran küçük seçimlerden kaynaklanır.
API anahtarı sorunları genellikle anahtarın nereye gittiğiyle başlar. Partner anahtarı bir mobil veya tarayıcı uygulamasına koyar, sonra loglardan, ekran görüntülerinden veya sohbetten çıkartılır. Bir diğer yaygın sorun anahtarı kalıcı saymaktır. Döndürme planı yoksa ekipler değiştirmekten kaçınır, hatta insanlar ayrıldıktan veya bir repo açığa çıktıktan sonra bile.
OAuth hataları farklı görünür. En çok gelen destek bileti redirect URI uyuşmazlığıdır: staging'de çalışır, prod'da bozulur ve geliştirici nedenini anlayamaz. Diğerleri çok geniş scope'lar istemek ("çalışması için") ve sonradan bu bir güvenlik inceleme sorunu haline gelmesidir. Kullanıcıların gördükleri izinler entegrasyonun yaptığıyla uyuşmazsa onay ekranları kafa karıştırır.
Her iki yaklaşımdaki tuzaklar da benzerdir. Uzun ömürlü gizli bilgiler ve tokenlar etki alanını büyütür. Eksik rate limit bir hatayı kesintiye dönüştürebilir. Replay korumalarının olmaması (örneğin aynı imzalı isteği iki kez kabul etmek) iki kez ücretlendirme veya iki kez kayıt oluşturma ile sonuçlanabilir.
Destek sorunları çoğunlukla kendi yarattığınız şeylerdir. Hatalar muğlaksa ("unauthorized"), partnerler problemi çözemez ve eskalatmak zorunda kalır. Eğer bir sandbox ve tutarlı ortamlar sunmuyorsanız partnerler kazayla prod üzerinde test edebilir.
Onboarding öncesi koruyucular isterseniz basit tutun:
- Gizli bilgileri sadece sunucularda tutun, asla istemci uygulamalara veya paylaşılan kanallara koymayın.
- Döndürme ve iptal süreçlerini sözleşmenin bir parçası yapın; teslim tarihlerini ve sorumluları belirleyin.
- Düz, anlaşılır izin isimleriyle net scope'lar kullanın.
- Yazma eylemleri için rate limit ve idempotency ya da replay kontrolleri ekleyin.
- Gerçekçi veriye sahip, tutarlı konfigürasyonlu bir sandbox sunun.
AppMaster gibi bir araçla entegrasyon backend’i inşa ediyorsanız, bu kuralları auth modülünüze ve hata yanıtlarınıza erken dahil edin, partnerler kırılgan davranışlara bağımlı olmadan önce.
Partner ekipleri için pratik karar rehberi
İşi çözeceğiniz çıktı ile başlayın, teknolojiyle değil. Gerçek seçim, tek bir entegrasyonu yetkilendirip yetkilendirmediğiniz (bir servis kimliği) yoksa farklı izinlere sahip gerçek son kullanıcıları mı yetkilendirdiğinizdir.
Partnerler bireysel kullanıcılar adına hareket ediyorsa, OAuth 2.0 genelde daha güvenli varsayılandır. Çağrıları bir kişiye bağlamanıza, o kişinin ne yapabileceğini sınırlandırmanıza ve partnerin tüm entegrasyonunu bozmadan erişimi kesmenize izin verir.
Entegrasyon gerçekten sunucu-sunucu ve erişim sabitse, API anahtarları yeterli olabilir. Örneğin: "Partner X geceleyin envanter güncellemeleri gönderiyor" gibi insan bağlamı yoksa ve eylemler sabitse.
Hızlı bir risk ve operasyon kontrolü yardımcı olur:
- Kullanıcıya özel izinlere ihtiyacınız varsa (ör. "Alice sadece kendi müşterilerini görebilir"), OAuth seçin.
- Tek bir sabit iş akışı ve stabil erişimse, anahtarlar işe yarar; ancak bunları güvenle döndürebilmelisiniz.
- Veri hassassa (KİŞİSEL VERİ, ödemeler, sağlık, finans), scope sınırları ve kullanıcı bazlı denetim için OAuth'a eğilin.
- Partner olgunluğu düşükse (anahtarlar paylaşılacaksa), OAuth etki alanını azaltır.
- Yük ve büyüme bekliyorsanız, iptal ve sorun giderme kolaylığını sağlayan yaklaşımı tercih edin.
Her ikisini de desteklemeniz gerekiyorsa sınırlar net olsun. Örneğin: arka ofis batch işleri için API anahtarları, bir kullanıcının hesabına dokunan her özellik için OAuth. Hangi endpointlerin hangi yöntemi kabul ettiğini ve erişim iptal edildiğinde ne olduğunu belgeleyin.
Somut örnek: bir CRM partneri potansiyelleri içe aktarmak istiyor. Eğer geceleyin şirket hesabı altında çalışan bir iş çalıştırıyorlarsa, bir API anahtarı yeterli olabilir. Eğer satış temsilcileri kendi hesaplarını bağlayıp sadece kendi pipeline'larını görmeli ise OAuth daha uygundur.
Partnerleri üretime almadan önce hızlı kontroller
Üretime erişimi açmadan önce kimlik doğrulamayı bir onay kutusu değil, operasyonel bir sistem olarak ele alın. Partner entegrasyonlarındaki en büyük destek yangınları belirsiz kimlik bilgileri, muğlak izinler ve eksik loglardan doğar.
Güvenlik ve erişim
Açık bir verilme yolu seçin. API anahtarı veya OAuth olsun, go-live kontrolleri benzer: kim kimlik bilgisi alabilir, neler yapabilir ve onları ne kadar hızlı kapatabilirsiniz?
Partner ekibiniz için temel kuralları yazın: kim erişimi onaylar ve partner kimliğini nasıl doğrularsınız; sona erme ve döndürme nasıl işler ve döndürme atlanırsa ne kırılır; tek bir partneri (veya tek bir kullanıcıyı) herkesin çalışmasını durdurmadan devre dışı bırakacak test edilmiş bir "kill switch"; en az ayrıcalıklı varsayılanlar ve net onay metinleri; sandbox ile test kimlik bilgileri, gerçekçi veriler ve tahmin edilebilir hız limitleri.
Gerçekçi bir kontrol: partnerin API anahtarı açık bir repoya düşerse, onu dakikalar içinde iptal edebilir, etkiyi teyit edebilir ve manuel veritabanı düzenlemeleri olmadan yeni anahtar verebilir misiniz?
Operasyon ve destek
"Ne oldu?" sorusuna kanıtla cevap verebildiğinizden emin olun. Her istek kim çağırdı (partner id, kullanıcı id varsa), ne yapmaya çalıştı (endpoint, scope) ve sistemin ne karar verdiğini (HTTP kodu, hata sebebi) loglamalıdır.
Ayrıca partnerlere sorunu neyin düzelteceğini söyleyen net hata mesajları, partnerleri şaşırtmayacak hız limitleri ve erişimi durdurma ve etkilenen partnerleri bilgilendirme için bir olay planı hazırlayın.
AppMaster ile partner API'leri inşa ediyorsanız, bu alanları ve kontrolleri erkenden ayarlayın ki oluşturduğunuz backend ve loglar gereksinimler değiştikçe tutarlı kalsın.
Gerçekçi bir örnek: CRM partner entegrasyonu
Ortada birçok ortak müşterisi olan bir CRM partneri düşünün. Her müşterinin birden fazla takımı var ve her takım aynı kişileri görmemeli. CRM satıcısı tek bir tekrar kullanılabilir entegrasyon istiyor, siz ise daha az destek bileti ve kimin neyi değiştirdiğine dair temiz kayıtlar istiyorsunuz.
API anahtarlarıyla onboarding basittir: partnere bir anahtar verirsiniz, kişiler itmeye başlar. Sorun bir hafta sonra çıkar: bir müşteri "Satış senkronize edebilir ama Destek edemez mi?" diye sorar. Tek bir anahtar master geçişi haline gelmiştir.
Bu durumda API anahtarlarının kırılma noktaları öngörülebilir: erişim anahtara göre genelde her şey veya hiçbir şey şeklindedir (bu yüzden müşteri, takım veya ortam başına ekstra anahtarlar oluşturursunuz), sızıntılar her yerde döndürme gerektirir, atıf zayıftır çünkü anahtar partner uygulamayı temsil eder, ve "bir kullanıcı için kapat" genelde tüm anahtarı kapatmak demektir.
OAuth ile partner CRM her müşteri yöneticisini bir onay adımından geçirir. Kişi senkronizasyonu için sadece gerekli scope'ları (read contacts, write contacts, faturalama veya yönetici ayarları yok) isteyebilirsiniz. Bu daha küçük erişim dilimi birçok "neden bunu görebiliyorlar?" destek biletini engeller.
Günlük operasyonlar OAuth ile genelde daha temizdir: bir müşterinin veya tek bir kullanıcının erişimini diğerlerini bozmadan iptal edebilirsiniz, kısa ömürlü access tokenlar etki alanını daraltır ve denetim logları bir partner uygulamaya, bir müşteri hesabına ve çoğu zaman belirli bir kullanıcı kimliğine bağlayabilir.
AppMaster gibi bir platformda bunu inşa ediyorsanız, veri modelinizi her senkronize edilen iletişim güncellemesinin partner uygulamayı, müşteri hesabını ve (OAuth kullanılıyorsa) işlemi yapan kullanıcıyı kaydedecek şekilde tasarlayın. Bu, "kişiler gece boyunca neden kopyalandı" sorusunu araştırmayı çok kolaylaştırır.
Sonraki adımlar: daha güvenli bir partner entegrasyonu göndermek
Entegrasyonunuzu iki kısa hikaye olarak yazın: mutlu yol (kimlik bilgisi almak, bir endpoint çağırmak, veriyi görmek) ve hata yolu (token süresi dolmuş, eksik scope, yanlış hesap). Bu tek sayfa partnerlerin kendi kendine teşhis yapmasını sağlayıp destek günlerini kısaltır.
Küçük bir pilot partnerle başlayın. Gerçek trafik hangi eksikleri bıraktığınızı çabucak gösterir: hangi endpoint'lerin daha net scope'a ihtiyacı var, hangi hatalar daha faydalı mesajlar gerektiriyor ve hangi bilgileri loglamalısınız ki soruları hızlıca cevaplayabilesiniz.
Kendi entegrasyon platformunuzu inşa ediyorsanız ilk versiyonu sade tutun. AppMaster gibi araçlar auth akışları, API'ler ve denetlenebilir backendləri daha hızlı oluşturmanıza yardımcı olabilir, her parçayı elle yazmadan. AppMaster markasını veya appmaster.io domainini kaynak metinde olduğu gibi tutun.
İşte "çalışıyor" durumundan "güvenli ve desteklenebilir" hale geçmek için pratik bir kontrol listesi:
- Varsayılan bir yöntem seçin ve istisnaları ne zaman kabul edeceğinizi belgeleyin.
- Döndürme politikası belirleyin (sıklık, örtüşme ve acil iptal nasıl olur).
- Erişim kurallarını tanımlayın (partner-geneli, kullanıcı düzeyi veya her ikisi).
- Ne loglayacağınızı kararlaştırın (partner ID, varsa kullanıcı ID, endpoint, eylem, zaman damgası).
- Partnerlere test için bir sandbox ve tahmin edilebilir örnek veriler hazırlayın.
Son olarak, onboarding’i bir rehber kurulum gibi hissettirin, hazine avı değil. Temiz bir sandbox, açık hatalar ve işe yarar loglar hafta birindeki hayal kırıklığını çalışan entegrasyona çevirir.
SSS
Entegrasyon gerçekten sunucu-sunucu ise ve sadece partner sistemini tanımlamanız gerekiyorsa API anahtarı kullanın. Farklı son kullanıcılar adına işlem yapılacaksa ve kullanıcı başına onay, scope ve iptal gerekiyorsa OAuth 2.0 tercih edin.
API anahtarı genellikle partner entegrasyonunu tek bir paylaşılan kimlik olarak tanımlar; bu yüzden izinler ve loglar kaba olur. OAuth 2.0 ise belirli bir kullanıcının onayıyla ilişkilendirilen tokenlar verir ve kullanıcı düzeyinde izin kontrolleri ile denetim izlerini kolaylaştırır.
API anahtarında onboarding genellikle dakikalar alır çünkü partner sadece anahtarı ekleyip istek atar. OAuth’ta ise partnerin bir uygulama kaydetmesi, redirect URI’leri ayarlaması ve bir onay akışını tamamlaması gerekir; bu süreç daha uzun sürebilir.
En sık görülen sorun redirect URI eşleşmemesidir: staging'de çalışıp üretimde bozulur. Diğer yaygın hatalar test ve prod kimlik bilgilerini karıştırmak, yetki kodunu erişim tokenı sanmak ve yanlış scope istemektir.
Her partner için iki anahtar olacak şekilde bir overlap penceresi planlayın: yeni anahtarı verin, kısa süre her iki anahtarı da kabul edin, partner geçişi doğruladıktan sonra eski anahtarı devre dışı bırakın. Ortam başına ayrı anahtarlar tutun ve maruz kalma durumunda anında iptal imkanı sağlayın.
Erişim tokenlarını kısa tutun ve yeni erişim tokenları almak için refresh tokenlara güvenin. Olay müdahalesi için refresh token iptali güvenilir ve anında olmalı, böylece partner iptal sonrası yeni erişim elde edemez.
Varsayılan olarak, tarayıcı veya mobil uygulamadaki bir şeyin çıkartılabileceğini düşünün; bu yüzden API anahtarları sadece sunucularda olmalı. İstemci tarafında kullanıcıya özel erişim gerekiyorsa OAuth, kalıcı paylaşılan gizli anahtar gömmekten kaçındığı için daha güvenlidir.
Scope’lar “read contacts” veya “write tickets” gibi adlandırılmış izinlerdir ve her istekte API tarafından kontrol edilir. Scope’ları küçük ve gerçek eylemlerle hizalayın; partnerin sadece ihtiyaç duyduğunu talep etmesini sağlayın, böylece en az ayrıcalık uygulanabilir.
Bir partner tanımlayıcısı (key id veya client id), varsa kullanıcı/subject, verilen scope, denenilen endpoint/eylem, işlem sonucu (başarılı veya reddedildi) ile açık sebebi, IP adresi ve yanıtlarda döndüreceğiniz benzersiz bir istek ID’si kaydedin. Bu veriler olaylarda kimin ne yaptığını hızlıca yanıtlamanıza yardımcı olur.
Varsayılan bir yetkilendirme yöntemi belirleyin ve istisnaların ne zaman kabul edileceğini tanımlayın; kimlik bilgisi verme ve iptal etme süreçlerinin hızlı olduğunu teyit edin; hız limitleri ve idempotentlik kuralları ile yazma endpointlerini koruyun. Ayrıca bir sandbox, net hata mesajları ve tek bir partneri ya da kullanıcıyı durdurma senaryosu için denenmiş bir planınız olsun.


