Genel bakış

Hesap bağlama, Google Hesabı sahiplerinin hizmetlerinize hızlı, sorunsuz ve güvenli bir şekilde bağlanmasını sağlar. Bir 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ü, kullanıcının Google Hesabı'nı platformunuzdaki hesabına güvenli bir şekilde bağlamanıza olanak tanır. Böylece Google uygulamalarına ve cihazlarına hizmetlerinize erişim izni verilir.

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

Kullanım alanları

Google Hesabı bağlantısını uygulamanın bazı nedenleri şunlardır:

  • Platformunuzdaki kullanıcı verilerini Google uygulamaları ve hizmetleriyle paylaşma

  • Video ve film içeriklerinizi Google TV'yi kullanarak oynatın.

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

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

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

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

Desteklenen özellikler

Google Hesap Bağlama şu özellikleri destekler:

  • OAuth Linking implicit akışını kullanarak verilerinizi hızlıca paylaşın.

  • OAuth Bağlantısı yetkilendirme kodu akışıyla daha iyi güvenlik sağlar.

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

  • Uygulama Geçişi 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. Tek dokunuşla kullanıcı izni verilir ve hesaplar bağlanır.

  • 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ıların güvenini artırın.

  • Platformunuzda barındırılan verilere ve hizmetlere erişim, hesapların bağlantısı kaldırılarak iptal edilebilir. İsteğe bağlı bir jeton iptali uç noktası uygulamak, Google'ın başlattığı etkinliklerle senkronize kalmanızı sağlar. Hesaplar Arası Koruma (RISC) ise platformunuzda gerçekleşen bağlantı kaldırma etkinliklerini Google'a bildirmenize olanak tanır.

Hesap bağlama akışları

Üç Google Hesabı bağlantısı akışı vardır. Bunların tümü OAuth tabanlıdır ve OAuth 2.0 uyumlu yetkilendirme ve jeton değişimi uç noktalarını yönetmenizi veya kontrol etmenizi gerektirir.

Bağlantı oluşturma süreci sırasında, hesap sahiplerinin hesaplarını bağlama ve verileri paylaşma iznini aldıktan sonra Google'a tek tek Google Hesapları için erişim jetonları verirsiniz.

OAuth Bağlantısı ("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 kodu ve örtülü OAuth akışlarını destekler. Hizmetiniz, dolaylı akış için OAuth 2.0 uyumlu bir yetkilendirme uç noktasına ev sahipliği yapmalı ve yetkilendirme kodu akışı kullanılırken hem yetkilendirme hem de jeton değişimi uç noktası sunmalıdır.

Şekil 1. Web OAuth ile kullanıcının telefonunda hesap bağlama

OAuth tabanlı uygulama bağlama ("Uygulama Bağlama")

Kullanıcıları bağlantı oluşturmak için uygulamanıza yönlendiren bir OAuth akışı.

OAuth tabanlı uygulama geçişi bağlantısı, kullanıcıları doğrulanmış Android veya iOS mobil uygulamalarınız ile Google'ın platformu arasında geçiş yaparken yönlendirerek önerilen veri erişimi değişikliklerini incelemelerini ve platformunuzdaki hesaplarını Google Hesaplarıyla bağlamak için izin vermelerini sağlar. Uygulama Geçişi'ni etkinleştirmek için hizmetiniz, OAuth Bağlantısı'nı veya yetkilendirme kodu akışını kullanarak OAuth tabanlı Google ile Oturum Açma Bağlantısı'nı desteklemelidir.

Uygulama Değiştirme özelliği hem Android hem de iOS'te 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 "yönlendirilir". Uygulamanız, hesabı Google'a bağlamak için kullanıcıdan izin alır ve ardından Google yüzeyine "geri yönlendirilir".
  • Uygulama bulunamazsa veya uygulama bağlama bağlantı oluşturma süreci sırasında bir hata oluşursa kullanıcı, basitleştirilmiş veya web OAuth akışına yönlendirilir.

Şekil 2. Uygulama Geçişi ile kullanıcının telefonunda hesap bağlama

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

OAuth tabanlı Google ile Oturum Açma özelliği, bağlantı oluşturma sürecini kolaylaştırır. Bu özellik, OAuth bağlantısının üzerine Google ile Oturum Açma'yı ekleyerek kullanıcıların bağlantı oluşturma sürecini Google arayüzünden ayrılmadan tamamlamasına olanak tanır. Böylece, sorunlar ve kullanıcı kaybı azaltılır. OAuth tabanlı basitleştirilmiş bağlama, Google ile oturum açma ve OAuth bağlamayı birleştirerek sorunsuz oturum açma, hesap oluşturma ve hesap bağlama ile 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 Token (JWT) onaylarını desteklemeli ve check, create, ve get, amaçlarını uygulamalıdır.

İşleyiş şekli:

Google, kullanıcı hesabını onaylar ve bu bilgileri size iletir:

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

Şekil 3. Basitleştirilmiş 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 elde etmesini sağlamak için tüm akışları uygulamanızı öneririz. Basitleştirilmiş ve uygulama bağlama akışları, kullanıcılar bağlantı oluşturma sürecini çok az adımda tamamlayabildiğinden bağlantı oluşturma sürecindeki zorlukları azaltır. Web OAuth bağlantısı en az çaba gerektiren yöntemdir ve diğer bağlantı akışlarını ekleyebileceğiniz iyi bir başlangıç noktasıdır.

Jetonlarla çalışma

Google Hesabı bağlantısı, OAuth 2.0 endüstri standardını temel alır.

Hesap sahiplerinin hesaplarını bağlama ve veri paylaşma iznini aldıktan sonra Google'a bireysel Google Hesapları için erişim jetonları 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 ile kaydolma

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