Bu sayfada, OAuth 2.0 ile entegrasyonla ilgili bazı genel en iyi uygulamalar ele alınmaktadır. Uygulama türünüze ve geliştirme platformunuza yönelik özel yönergelere ek olarak bu en iyi uygulamaları da göz önünde bulundurun. Ayrıca uygulamanızı üretime hazırlamayla ilgili tavsiyelere ve Google'ın OAuth 2.0 politikalarına da göz atın.
İstemci kimlik bilgilerini güvenli bir şekilde işleme
OAuth istemcisi 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 saklayın (ör. Google Cloud Secret Manager gibi bir gizli yönetici kullanarak). Kimlik bilgilerini sabit bir şekilde kodlamayın, bir kod deposuna kaydetmeyin veya herkese açık olarak yayınlamayın.
Kullanıcı jetonlarını güvenli bir şekilde işleme
Kullanıcı jetonları, uygulamanız tarafından kullanılan hem yenileme jetonlarını hem de erişim jetonlarını içerir. Jetonları kullanımda değilken güvenli bir şekilde depolayın ve asla düz metin olarak iletmeyin. Android'de Keystore, iOS ve macOS'te Anahtar Zinciri Hizmetleri veya Windows'ta Kimlik Bilgisi Dolabı gibi platformunuza uygun güvenli bir depolama sistemi kullanın.
İhtiyaç kalmadığında jetonları iptal edin ve sistemlerinizden kalıcı olarak silin.
Ayrıca platformunuz için aşağıdaki en iyi uygulamalardan da yararlanabilirsiniz:
- Birçok kullanıcının jetonunu depolayan sunucu tarafı uygulamalarda, jetonları dinlenme durumunda şifreleyin ve veri deponuzun internette herkese açık olmadığından emin olun.
- Yerel masaüstü uygulamaları için erişim jetonlarıyla takas edilebilen yetkilendirme kodları elde etmek amacıyla Proof Key for Code Exchange (PKCE) protokolünün kullanılması önemle tavsiye edilir.
Yenileme jetonunun iptal edilmesi ve süresinin dolması ile ilgili işlemleri yapma
Uygulamanız çevrimdışı erişim için yenileme jetonu istediyse bunların geçersiz kılınması veya geçerlilik süresinin sona ermesiyle ilgili de işlem yapmanız gerekir. Jetonlar çeşitli nedenlerle geçersiz kılınabilir. Örneğin, süresi dolmuş olabilir veya uygulamalarınızın erişimi kullanıcı tarafından ya da otomatik bir süreç tarafından iptal edilmiş olabilir. Bu durumda, kullanıcıyı bir sonraki oturum açışında uyarma veya verilerini temizleme de dahil olmak üzere uygulamanızın nasıl yanıt vermesi gerektiğini dikkatlice düşünün. Jetonun iptal edildiği konusunda bildirim almak için Hesaplar Arası Koruma hizmetini entegre edin.
Artımlı yetkilendirmeyi kullanma
Uygulamanız bu işlevlere ihtiyaç duyduğunda uygun OAuth kapsamlarını istemek için artan yetkilendirme 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, 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 her zaman bağlam içinde kapsam isteyin.
Örneğin, uygulamanız şu modeli izleyebilir:
- Kullanıcı, uygulamanızla kimliğini doğrular
- Ek kapsam istenmez. Uygulama, kullanıcının ek veri veya erişim gerektirmeyen özellikleri keşfetmesine ve kullanmasına olanak tanıyan temel işlevler sunar.
- Kullanıcı, ek verilere erişim gerektiren bir özellik seçer
- Uygulamanız, bu özellik için gereken OAuth kapsamıyla ilgili bir yetkilendirme isteği gönderiyor. Bu özellik için birden fazla kapsam gerekiyorsa aşağıdaki en iyi uygulamaları izleyin.
- Kullanıcı isteği reddederse uygulama özelliği devre dışı bırakır ve kullanıcıya tekrar erişim isteğinde bulunması için ek bağlam bilgisi verir.
Birden fazla kapsam için izinleri işleme
Tek seferde birden fazla kapsam isteğinde bulunurken kullanıcılar istediğiniz tüm OAuth kapsamlarını sağlayamayabilir. Uygulamanız, ilgili işlevleri devre dışı bırakarak kapsamların reddedilmesini ele almalıdır.
Uygulamanızın temel işlevi için birden fazla kapsam gerekiyorsa izin istemeden önce bunu kullanıcıya açıklayın.
Kullanıcıya yalnızca kapsam gerektiren belirli bir özelliği kullanma niyetini açıkça belirttikten sonra tekrar istem gönderebilirsiniz. Uygulamanız, OAuth kapsamları istemeden önce kullanıcıya alakalı bağlam bilgisi ve gerekçe sağlamalıdır.
Uygulamanızın tek seferde istediği kapsam sayısını en aza indirmeniz gerekir. Bunun yerine, özellikler ve işlevler bağlamında kapsam isteğinde bulunmak için artımlı yetkilendirmeyi kullanın.
Güvenli tarayıcılar kullanın
Web'de OAuth 2.0 yetkilendirme istekleri yalnızca tam özellikli web tarayıcılarından gönderilmelidir. 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'deki WebView veya iOS'teki WKWebView gibi mobil platformlardaki web görünümleri dahil olmak üzere yerleşik 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ımları önlemek için OAuth istemcileri programatik olarak oluşturulamaz veya değiştirilemez. Hizmet şartlarını açıkça kabul etmek, 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.