Genel bakış

Hesap bağlama, Google Hesabı sahiplerinin hizmetlerinize hızlı, sorunsuz ve güvenli bir şekilde bağlanmasını sağlar. Kullanıcının platformunuzdaki verilerini Google uygulamaları ve hizmetleriyle paylaşmak için Google Hesabı Bağlantısı'nı uygulamayı seçebilirsiniz.

Güvenli OAuth 2.0 protokolü, bir kullanıcının Google Hesabı'nı platformunuzdaki hesabına güvenli bir şekilde bağlamanıza olanak tanır. Böylece Google uygulamalarının ve cihazlarının hizmetlerinize erişmesine izin vermiş olursunuz.

Kullanıcılar, Google Hesabı Bağlama özelliğiyle hesaplarını bağlayabilir veya bağlantılarını kaldırabilir ve isteğe bağlı olarak platformunuzda yeni hesap oluşturabilir.

Kullanım alanları

Google Hesabı Bağlamanın bazı nedenleri şunlardır:

  • Platformunuzdaki bir kullanıcının verilerini Google uygulamaları ve hizmetleriyle paylaşabilirsiniz.

  • Google TV'yi kullanarak video ve film içeriklerinizi oynatabilirsiniz.

  • Google Home uygulamasını ve Google Asistan'ı kullanarak Google Akıllı Ev'e bağlı cihazları yönetin ve kontrol edin. "Ok Google, ışıkları aç" demeniz yeterlidir.

  • "Ok Google, Starbucks'tan her zamanki siparişimi ver" gibi sohbet işlemleri ile kullanıcıya özel Google Asistan deneyimleri ve işlevleri oluşturun.

  • Kullanıcıların, Google Hesaplarını bir ödül iş ortağı hesabına bağladıktan sonra YouTube'da uygun canlı yayınları görüntüleyerek ödül kazanmasını sağlayın.

  • Kayıt sırasında yeni hesapları, Google Hesabı profilinden rızayla paylaşılan verilerle önceden doldurabilirsiniz.

Desteklenen özellikler

Google Hesabı Bağlama özelliği şu özellikleri destekler:

  • OAuth Bağlantısı örtülü akışını kullanarak verilerinizi hızlı ve kolay bir şekilde paylaşın.

  • OAuth Bağlantı yetkilendirme kodu akışı ile daha iyi güvenlik sağlayın.

  • Kolay bağlantı oluşturma özelliğiyle mevcut kullanıcıların oturum açmasını sağlayın veya Google tarafından doğrulanmış yeni kullanıcıları platformunuza kaydettirin, izinlerini alın ve verileri güvenli bir şekilde paylaşın.

  • Uygulama Flip ile zorlukları azaltın. Güvenilir bir Google uygulamasında tek dokunuşla doğrulanmış Android veya iOS uygulamanız güvenli bir şekilde açılır, bir dokunuşla kullanıcı izni verilir ve hesaplar arasında bağlantı kurulur.

  • Yalnızca gerekli verileri paylaşmak için özel kapsamlar tanımlayarak kullanıcı gizliliğini iyileştirin, verilerinin nasıl kullanıldığını net bir şekilde tanımlayarak kullanıcı güvenini artırın.

  • Platformunuzda barındırılan verilere ve hizmetlere erişim, hesapların bağlantısını kaldırarak iptal edilebilir. İsteğe bağlı bir jeton iptali uç noktası uygulamak, Google tarafından başlatılan etkinliklerle senkronizasyonu korumanızı sağlar. Hesaplar Arası Koruma (RISC) ise platformunuzda gerçekleşen bağlantı kaldırma etkinlikleri hakkında Google'ı bilgilendirmenizi sağlar.

Hesap bağlama akışları

Hepsi OAuth tabanlı olan ve OAuth 2.0 uyumlu yetkilendirme ve jeton değişimi uç noktalarını yönetmenizi veya kontrol etmenizi gerektiren 3 Google Hesabı Bağlama akışı vardır.

Bağlantı işlemi sırasında, hesap sahiplerinden hesaplarını bağlama ve veri paylaşma izni aldıktan sonra her bir Google Hesabı için Google'a erişim jetonları gönderirsiniz.

OAuth Bağlama ("Web OAuth")

Bu, kullanıcıları bağlantı oluşturmak için web sitenize yönlendiren temel OAuth akışı'dır. Kullanıcı, hesabında oturum açmak için web sitenize yönlendirilir. Oturum açtıktan sonra kullanıcı, hizmetinizdeki verilerinin Google ile paylaşılmasına izin verir. Bu noktada kullanıcının Google Hesabı ile hizmetiniz bağlanır.

OAuth Bağlama, yetkilendirme kodunu ve dolaylı OAuth akışlarını destekler. Hizmetiniz, örtülü akış için OAuth 2.0 uyumlu bir yetkilendirme uç noktası barındırmalı ve yetkilendirme kodu akışını kullanırken hem yetkilendirme hem de jeton değişimi uç noktasını göstermelidir.

Şekil 1. Web OAuth ile kullanıcının telefonunda Hesap Bağlama

OAuth Tabanlı Uygulama Çevirme Bağlantısı ("Uygulama Çevir")

Kullanıcıları bağlantı oluşturmaları için uygulamanıza gönderen OAuth akışı.

OAuth tabanlı uygulama geçişi bağlama, kullanıcıların doğrulanmış Android veya iOS mobil uygulamalarınız ile Google'ın platformu arasında geçiş yaparken önerilen veri erişimi değişikliklerini incelemelerine ve platformunuzdaki hesaplarını Google Hesaplarıyla bağlamalarına izin vermelerine rehberlik eder. App Flip'i etkinleştirmek için hizmetinizin yetkilendirme kodu akışını kullanarak OAuth Bağlantısı veya OAuth Tabanlı Google ile Oturum Açma Bağlantısı'nı desteklemesi gerekir.

Uygulama Flip, hem Android hem de iOS'te desteklenir.

İşleyiş şekli:

Google uygulaması, uygulamanızın kullanıcının cihazına yüklenip yüklenmediğini kontrol eder:

  • Uygulama bulunursa kullanıcı uygulamanıza "yönlendirilir". Uygulamanız, hesabı Google'a bağlamak için kullanıcıdan izin alır ve ardından kullanıcıyı Google yüzeyine "geri yönlendirir".
  • Uygulama bulunmazsa veya uygulama çevirme bağlantısı oluşturulurken bir hata oluşursa kullanıcı, Geliştirilmiş veya Web OAuth akışına yönlendirilir.

Şekil 2. Uygulama Flip ile kullanıcının telefonunda hesap bağlama

OAuth tabanlı basitleştirilmiş bağlantı ("Basitleştirilmiş")

OAuth tabanlı Google ile oturum açma özelliğiyle bağlantı oluşturma işlemini kolaylaştırma, OAuth bağlantısına Google ile oturum açma özelliğini ekleyerek kullanıcıların Google platformundan ayrılmadan bağlantı oluşturma işlemini tamamlamasını sağlar. Böylece, bağlantı oluşturma işleminde yaşanan aksaklıklar ve kullanıcıların bağlantı oluşturma işlemini yarıda bırakması azaltılır. OAuth tabanlı basitleştirilmiş bağlantı, Google ile oturum açma özelliğini OAuth bağlantısıyla birleştirerek sorunsuz oturum açma, hesap oluşturma ve hesap bağlama işlemleriyle en iyi kullanıcı deneyimini sunar. Hizmetiniz OAuth 2.0 uyumlu yetkilendirmeyi ve jeton değişimi uç noktalarını desteklemelidir. Ayrıca, jeton değişimi uç noktanız JSON Web Jetonu (JWT) iddialarını desteklemeli ve check, create ve get intent'lerini uygulamalıdır.

İşleyiş şekli:

Google, kullanıcı hesabı üzerinde hak iddia eder ve şu bilgileri size iletir:

  • Kullanıcının veritabanınızda bir hesabı varsa kullanıcı, Google Hesabını hizmetinizdeki hesabına başarıyla bağlar.
  • Kullanıcının veritabanınızda hesabı yoksa kullanıcı, Google'ın sağladığı bilgilerle (e-posta, ad ve profil resmi) yeni bir üçüncü taraf hesabı oluşturabilir veya oturum açıp başka bir e-posta ile bağlantı kurmayı seçebilir (bu durumda kullanıcının Web OAuth üzerinden hizmetinizde oturum açması gerekir).

Şekil 3. Kolaylaştırılmış Bağlantı ile kullanıcının telefonunda Hesap Bağlama

Hangi akışı kullanmalısınız?

Kullanıcıların en iyi bağlantı deneyimini yaşamasını sağlamak için tüm akışları uygulamanızı öneririz. Basitleştirilmiş ve uygulama çevirme akışları, kullanıcıların bağlantı oluşturma işlemini çok az adımda tamamlayabilmesi sayesinde bağlantı oluşturma sürecinin zorluklarını azaltır. Web OAuth bağlantısı, en az çaba gerektiren bağlantı yöntemidir ve başlangıç için iyi bir yerdir. Daha sonra diğer bağlantı akışlarını ekleyebilirsiniz.

Jetonlarla çalışma

Google Hesabı Bağlama, OAuth 2.0 endüstri standardını temel alır.

Hesap sahiplerinden hesaplarını bağlama ve veri paylaşma izni aldıktan sonra, Google Hesapları için Google'a erişim jetonları gönderirsiniz.

Token types

OAuth 2.0 uses strings called tokens to communicate between the user agent, the client application, and the OAuth 2.0 server.

Three types of OAuth 2.0 tokens can be used during account linking:

  • Authorization code. A short-lived token that can be exchanged for an access and a refresh token. For security purposes, Google calls your authorization endpoint to obtain a single use or very short-lived code.

  • Access token. A token that grants the bearer access to a resource. To limit exposure that could result from the loss of this token, it has a limited lifetime, usually expiring after an hour or so.

  • Refresh token. A long-lived token that can be exchanged for a new access token when an access token expires. When your service integrates with Google, this token is exclusively stored and used by Google. Google calls your token exchange endpoint to exchange refresh tokens for access tokens, which are in turn used to access user data.

Token handling

Race conditions in clustered environments and client-server exchanges can result in complex timing and error handling scenarios when working with tokens. For example:

  • You receive a request for a new access token, and you issue a new access token. Concurrently, you receive a request for access to your service's resource using the previous, unexpired access token.
  • Your refresh token reply is yet to be received (or is never received) by Google. Meanwhile, the previously valid refresh token is used in a request from Google.

Requests and replies can arrive in any order, or not at all due to asynchronous services running in a cluster, network behavior, or other means.

Immediate and fully consistent shared state both within, and between, your and Google's token handling systems cannot be guaranteed. Multiple valid, unexpired tokens can coexist within or across systems short period of time. To minimize negative user impact we recommend you do the following:

  • Accept unexpired access tokens, even after a newer token is issued.
  • Use alternatives to Refresh Token Rotation.
  • Support multiple, concurrently valid access and refresh tokens. For security, you should limit the number of tokens and token lifetime.
Maintenance and outage handling

During maintenance or unplanned outages Google might be unable to call your authorization or token exchange endpoints to obtain access and refresh tokens.

Your endpoints should respond with a 503 error code and empty body. In this case, Google retries failed token exchange requests for a limited time. Provided that Google is later able to obtain refresh and access tokens, failed requests are not visible to users.

Failing requests for an access token result in a visible error, if initiated by a user. Users will be required to retry linking failures if the implicit OAuth 2.0 flow is used.

Recommendations

There are many solutions to minimize maintenance impact. Some options to consider:

  • Maintain your existing service and route a limited number of requests to your newly updated service. Migrate all requests only after confirming expected functionality.

  • Reduce the number of token requests during the maintenance period:

    • Limit maintenance periods to less than the access token lifetime.

    • Temporarily increase the access token lifetime:

      1. Increase token lifetime to greater than maintenance period.
      2. Wait twice the duration of your access token lifetime, enabling users to exchange short lived tokens for longer duration tokens.
      3. Enter maintenance.
      4. Respond to token requests with a 503 error code and empty body.
      5. Exit maintenance.
      6. Decrease token lifetime back to normal.

Google'a kaydolun

OAuth 2.0 kurulumunuzla ilgili ayrıntılara ihtiyacımız var ve hesap bağlamayı etkinleştirmek için kimlik bilgilerini paylaşmamız gerekiyor. Ayrıntılar için kayıt bölümüne bakın.