Bu sayfada OAuth 2.0 ile entegrasyona yönelik bazı genel en iyi uygulamalar ele alınmaktadır. Uygulama ve geliştirme platformunuzun türü için özel kılavuzlara ek olarak bu en iyi uygulamalardan yararlanın. Uygulamanızı üretime hazırlama tavsiyesine ve Google'ın OAuth 2.0 politikalarına da göz atın.
İstemci kimlik bilgilerini güvenli bir şekilde işleyin
OAuth istemci kimlik bilgileri, uygulamanızın kimliğini tanımlar ve dikkatli bir şekilde ele alınmalıdır. Bu kimlik bilgilerini yalnızca güvenli depolama alanında depolayın (örneğin Google Cloud Secret Manager gibi bir gizli anahtar yöneticisi kullanarak). Kimlik bilgilerini kod deposuna gömmeyin, bir kod deposuna kaydetmeyin veya herkese açık olarak yayınlayın.
Kullanıcı jetonlarını güvenli bir şekilde işleyin
Kullanıcı jetonları, hem yenileme jetonlarını hem de uygulamanız tarafından kullanılan erişim jetonlarını içerir. Jetonları kullanımda değilken güvenli bir şekilde saklayın ve asla düz metin olarak iletmeyin. Android'de Keystore, iOS ve macOS'te Anahtar Zinciri Hizmetleri veya Windows'da Credential Locker gibi platformunuza uygun güvenli bir depolama sistemi kullanın.
Artık ihtiyaç duyulmadığı anda jetonları iptal edin ve sistemlerinizden kalıcı olarak silin.
Ayrıca, platformunuz için aşağıdaki en iyi uygulamaları da göz önünde bulundurun:
- Birçok kullanıcının jetonlarını depolayan sunucu tarafı uygulamaları kullanımda değilken şifreleyin ve veri deponuzun internet üzerinde herkesin erişimine açık olmadığından emin olun.
- Yerel masaüstü uygulamalarında, erişim jetonları ile değiştirilebilecek yetkilendirme kodları almak için Kod Değişimi İçin Kanıt Anahtarı (PKCE) protokolünü kullanmanız kesinlikle önerilir.
Yenileme jetonu iptali ve geçerlilik süresini işleme
Uygulamanız çevrimdışı erişim için yenileme jetonu istediyse bu jetonların geçersiz kılma veya geçerlilik süresinin sona ermesiyle de ilgilenmeniz gerekir. Jetonlar farklı nedenlerle geçersiz kılınabilir. Örneğin, jetonların süresi dolmuş veya uygulamalarınıza erişim kullanıcı tarafından ya da otomatik bir işlem tarafından iptal edilmiş olabilir. Bu durumda, bir sonraki girişte kullanıcıyı istemek veya verilerini temizlemek de dahil olmak üzere uygulamanızın nasıl yanıt vermesi gerektiğini dikkatlice düşünün. Jeton iptali hakkında bildirim almak için Hesaplar Arası Koruma hizmetini entegre edin.
Artımlı yetkilendirme kullan
Uygulamanızın işlevsel olması gerektiğinde uygun OAuth kapsamlarını istemek için artımlı yetkilendirme'yi kullanın.
Uygulamanızın temel işlevi için gerekli olmadığı sürece kullanıcı ilk kez kimlik doğrulaması yaptığında verilere erişim isteğinde bulunmamalısınız. Bunun yerine, mümkün olan en küçük ve en sınırlı kapsamları seçme ilkesini uygulayarak yalnızca bir görev için gereken belirli kapsamları isteyin.
Kullanıcılarınızın, uygulamanızın neden erişim istediğini ve verilerin nasıl kullanılacağını anlamalarına yardımcı olmak için kapsamları her zaman bağlam içinde isteyin.
Örneğin, uygulamanız şu modeli izleyebilir:
- Kullanıcı, uygulamanızla kimlik doğrular.
- Ek kapsam istenmez. Uygulama, kullanıcının ek veri veya erişim gerektirmeyen özellikleri keşfetmesini ve kullanmasını sağlayan temel işlevler sağlar.
- Kullanıcı, ek verilere erişim gerektiren bir özellik seçerse
- Uygulamanız, bu özellik için gereken bu spesifik OAuth kapsamı için bir yetkilendirme isteğinde bulunuyor. Bu özellik birden fazla kapsam gerektiriyorsa aşağıdaki en iyi uygulamaları izleyin.
- Kullanıcı isteği reddederse uygulama, özelliği devre dışı bırakır ve kullanıcıya yeniden erişim istemesi için ek bağlam sağlar.
Birden fazla kapsam için izni işleme
Kullanıcılar tek seferde birden çok kapsam isteğinde bulunurken, istediğiniz tüm OAuth kapsamlarını vermeyebilir. Uygulamanız, ilgili işlevleri devre dışı bırakarak kapsam reddi işlemlerini gerçekleştirmelidir.
Uygulamanızın temel işlevi birden fazla kapsam gerektiriyorsa izin istemeden önce bunu kullanıcıya açıklayın.
Yalnızca kapsamı gerektiren belirli özelliği kullanma niyetini açıkça belirttiğinde kullanıcıyı tekrar isteyebilirsiniz. Uygulamanız, OAuth kapsamlarını istemeden önce kullanıcıya ilgili bağlamı ve gerekçesini sunmalıdır.
Uygulamanızın istediği kapsam sayısını bir defada en aza indirmelisiniz. Bunun yerine, özellikler ve işlevler bağlamında kapsam istemek için artımlı yetkilendirmeden yararlanın.
Güvenli tarayıcılar kullanma
Web'de OAuth 2.0 yetkilendirme istekleri yalnızca tam özellikli web tarayıcılarından yapılmalıdır. Diğer platformlarda doğru OAuth istemci türünü seçtiğinizden ve OAuth'u platformunuza uygun şekilde entegre ettiğinizden emin olun. İsteği, Android'de WebView veya iOS'te WKWebView gibi mobil platformlardaki web görünümleri dahil olmak üzere yerleştirilmiş tarama ortamları üzerinden yönlendirmeyin. Bunun yerine, platformunuz için yerel OAuth kitaplıklarını veya Google ile Oturum Açma'yı kullanın.
OAuth istemcilerinin manuel olarak oluşturulması ve yapılandırılması
Kötüye kullanımı önlemek amacıyla, OAuth istemcileri programatik olarak oluşturulamaz veya değiştirilemez. Hizmet şartlarını açıkça onaylamak, OAuth istemcinizi yapılandırmak ve OAuth doğrulamasına hazırlanmak için Google Developers Console'u kullanmanız gerekir.
Otomatik iş akışları için bunun yerine hizmet hesaplarını kullanabilirsiniz.