Genel Bakış

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

Güvenli OAuth 2.0 protokolü, bir kullanıcının Google Hesabını platformunuzdaki hesaba güvenli bir şekilde bağlayabilmenizi sağlar. Böylece Google uygulamaları ve cihazları, hizmetlerinize erişebilir.

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

Kullanım alanları

Google Hesabı Bağlama'yı uygulamanın nedenlerinden bazıları şunlardır:

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

  • Video ve film içeriğinizi Google TV'yi kullanarak oynatın.

  • Google Home uygulamasını ve Google Asistan'ı kullanarak Google Smart Home'a bağlı cihazları yönetin ve kontrol edin. "Ok Google, ışıkları aç".

  • Sohbet İşlemleri ile kullanıcı tarafından özelleştirilmiş Google Asistan deneyimleri ve işlevleri oluşturma, "Ok Google, her zamankinizi Starbucks'tan sipariş et".

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

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

Desteklenen özellikler

Bu özellikler Google Hesabı Bağlama özelliği tarafından desteklenir:

  • OAuth Bağlama gizli akışını kullanarak verilerinizi hızlı ve kolay bir şekilde paylaşın.

  • OAuth Bağlama yetkilendirme kodu akışıyla daha yüksek güvenlik sağlayın.

  • Mevcut kullanıcıların oturum açmasını sağlayın veya Google tarafından doğrulanmış yeni kullanıcıları platformunuza kaydedin, izinlerini alın ve Basitleştirilmiş bağlantı ile verileri güvenli bir şekilde paylaşın.

  • Uygulama Çeviri ile zorlukları azaltın. Güvenilir Google uygulamasından tek bir dokunuşla doğrulanmış Android veya iOS uygulamanızı güvenli bir şekilde açabilir, tek bir dokunuşla kullanıcılara izin verebilir ve hesapları bağlayabilirsiniz.

  • Yalnızca gerekli verilerin paylaşılması için özel kapsamlar tanımlayarak kullanıcının gizliliğini iyileştirin, verilerinin nasıl kullanıldığını açıkça 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ı jeton iptal uç noktası uygulamak, Google tarafından başlatılan etkinliklerle senkronize kalmanızı sağlarken Hesaplar Arası Koruma (RISC), platformunuzda gerçekleşen tüm bağlantı kaldırma etkinliklerini Google'a bildirmenize olanak tanır.

Hesap bağlama akışları

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

Bağlama işlemi sırasında, hesap sahiplerinin hesaplarını bağlamalarına ve veri paylaşmalarına izin vermenizin ardından bireysel Google Hesapları için erişim jetonları yayınlarsınız.

OAuth Bağlantısı ('Web OAuth')

Bu, kullanıcıları bağlantı için web sitenize gönderen 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ı, verilerini hizmetinizde Google ile paylaşmayı kabul eder. Bu noktada kullanıcının Google Hesabı ve hizmetiniz bağlanır.

OAuth Bağlantısı, yetkilendirme kodunu ve örtülü OAuth akışlarını destekler. Hizmetiniz, dolaylı 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şim uç noktasını göstermelidir.

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

OAuth tabanlı Uygulama çevirme bağlantısı ('App Flip')

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

OAuth tabanlı Uygulama Takası, doğrulanmış Android veya iOS mobil uygulamalarınız ile Google'ın platformu arasında hareket eden kullanıcıları, önerilen veri erişimi değişikliklerini incelemek ve platformlarındaki hesaplarını Google hesaplarına bağlamalarına izin vermek için yönlendirir. Uygulama Dönüşümünü etkinleştirmek için hizmetinizin yetkilendirme kodu akışını kullanarak OAuth Bağlantısı veya OAuth tabanlı Google Oturum Açma Bağlantısı'nı desteklemesi gerekir.

Uygulama Çevirme, hem Android hem de iOS için desteklenir.

İşleyiş şekli:

Google uygulaması, uygulamanızın kullanıcının cihazında yüklü olup olmadığını kontrol eder:

  • Uygulama bulunursa kullanıcı uygulamanıza "çevrilir". Uygulamanız, hesabı Google'a bağlamak için kullanıcıdan izin alır ve ardından 'Google yüzeyine ters çevirir.
  • Uygulama bulunamazsa veya uygulama çevirme bağlantı işlemi sırasında bir hata oluşursa kullanıcı Modern veya Web OAuth akışına yönlendirilir.

2. Şekil. Uygulama Çevirici ile bir kullanıcının telefonunda Hesap Bağlama

OAuth tabanlı Kolay Bağlantı ('Kolaylaştırılmış')

OAuth tabanlı Google Oturum Açma Kolay Bağlantı, OAuth bağlamanın üzerine Google ile Oturum Açma özelliğini ekler. Böylece kullanıcıların bağlantı oluşturma işlemini Google yüzeyinden ayrılmadan tamamlamalarını sağlar, böylece zorlukları ve ayrılma durumlarını azaltır. OAuth tabanlı Modern Bağlantı Oluşturma, Google Oturum Açma özelliğini OAuth bağlantısıyla birleştirerek sorunsuz oturum açma, hesap oluşturma ve hesap bağlama özellikleriyle en iyi kullanıcı deneyimini sunar. Hizmetiniz OAuth 2.0 uyumlu yetkilendirme ve jeton değişimi uç noktalarını desteklemelidir. Ayrıca, jeton değişimi uç noktanız JSON Web Jetonu (JWT) onaylarını desteklemeli ve check, create ve get amaçlarını uygulamalıdır.

İşleyiş şekli:

Google, kullanıcı hesabını talep eder ve size şu bilgileri iletir:

  • Veritabanınızdaki kullanıcı için bir hesap varsa kullanıcı, Google hesabını hizmetinizdeki hesaba başarıyla bağlar.
  • Veritabanınızda kullanıcı için herhangi bir hesap yoksa kullanıcı, Google'ın sağladığı bilgilerle (e-posta, ad ve profil resmi) yeni bir 3. taraf hesabı oluşturabilir veya oturum açıp başka bir e-posta adresiyle bağlantı kurmayı seçebilir (bu işlem, kullanıcının Web OAuth üzerinden hizmetinizde oturum açmasını gerektirir).

3. Şekil. Kolay Bağlantı ile bir 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. Kullanıcılar bağlantı oluşturma işlemini yalnızca birkaç adımda tamamlayabildiğinden, Kolaylaştırılmış ve Uygulama çevirme akışları bağlantı oluşturma sorunlarını azaltır. Web OAuth bağlantısı en düşük düzeyde çabaya sahiptir ve sonrasında diğer bağlantı akışlarını ekleyebileceğiniz iyi bir yerdir.

Jetonlarla çalışma

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

Hesap sahiplerinin hesaplarını bağlama ve veri paylaşma konusunda izinlerini aldıktan sonra bireysel Google Hesapları için erişim jetonlarını Google'a verirsiniz.

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 kaydolma

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