En İyi Uygulamalar

Bu sayfada, OAuth 2.0 ile entegrasyona ilişkin bazı genel en iyi uygulamalar ele alınmaktadır. Uygulama türünüz ve geliştirme platformunuz için özel olarak hazırlanmış kılavuzlara ek olarak bu en iyi uygulamaları dikkate alın. Ayrıca uygulamanızı üretime hazırlama tavsiyesine ve Google'ın OAuth 2.0 politikalarına da bakı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 depolamada depolayın (ör. Google Cloud Secret Manager gibi bir gizli anahtar yöneticisi kullanarak). Kimlik bilgilerini kod deposuna gömmeyin, bir kod deposuna kaydedin 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 hiçbir zaman 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:

  • Çok sayıda kullanıcının jetonlarını depolayan sunucu tarafı uygulamaları, kullanımda değilken şifreleyin ve veri deponuzun internet üzerinde herkese 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ü kullanmak önemle tavsiye edilir.

Yenileme jetonu iptalini ve geçerlilik süresini işleme

Uygulamanız çevrimdışı erişim için yenileme jetonu istediyse bu jetonların geçersiz kılınması veya süresinin sona ermesi ile de işlem yapmanız gerekir. Jetonlar farklı nedenlerle geçersiz kılınabilir. Örneğin, jetonların süresi dolmuş veya uygulamalarınıza erişimi kullanıcı 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 hizmetiyle entegrasyon yapın.

Artımlı yetkilendirmeyi kullan

Uygulamanızın işlev gerektirdiği durumlarda uygun OAuth kapsamlarını istemek için artımlı yetkilendirme özelliğini 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 ilkesine uyarak 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:

  1. Kullanıcı, uygulamanızla kimlik doğrular.
    1. 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.
  2. Kullanıcı, ek verilere erişim gerektiren bir özellik seçerse
    1. Uygulamanız, bu özellik için gereken bu OAuth kapsamıyla ilgili bir yetkilendirme isteğinde bulunuyor. Bu özellik birden fazla kapsam gerektiriyorsa aşağıdaki en iyi uygulamaları izleyin.
    2. Kullanıcı isteği reddederse uygulama, özelliği devre dışı bırakır ve kullanıcıya tekrar erişim isteğinde bulunabilmesi için ek bağlam sağlar.

Birden fazla kapsam için izni işleme

Tek seferde birden çok kapsam isteğinde bulunurken kullanıcılar istediğiniz tüm OAuth kapsamlarını vermeyebilir. Uygulamanız, kapsam reddi işlemlerini ilgili işlevleri devre dışı bırakarak 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 özelliği kullanmak istediğini açıkça belirten bir kullanıcıdan tekrar istekte bulunabilirsiniz. Uygulamanız, OAuth kapsamlarını istemeden önce kullanıcıya ilgili bağlamı ve gerekçeyi sunmalıdır.

Uygulamanızın bir defada istediği kapsam sayısını en aza indirmeniz gerekir. Bunun yerine, özellik ve işlev bağlamında kapsam talep etmek için artımlı yetkilendirmeden yararlanın.

Güvenli tarayıcılar kullanın

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 Web Görünümü 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.