Üçüncü taraf çerezlerinin kullanımdan kaldırılması, bu yöntemler de dahil olmak üzere kullanıcı yetkilendirme akışlarını etkilemez.

Kullanıcı yetkilendirmesinin işleyiş şekli

Google Kimlik Hizmetleri veya yetkilendirme konusunda bilgi sahibi değilseniz ya da aşina değilseniz Genel Bakış bölümünü okuyarak başlayın.

Google, kapsamları yönetmenize, kullanıcı izni almanıza ve standart OAuth 2.0 akışlarıyla daha kolay çalışmanıza yardımcı olacak yetkilendirme özelliklerini içeren bir JavaScript kitaplığı sunar. Kullanıcının tarayıcısında çalışan web uygulamanız OAuth 2.0 dolaylı akışını yönetmek veya arka uç platformunuzda biten yetkilendirme kodu akışını başlatmak için bu kitaplığı kullanır.

Yalnızca kimlik doğrulama kapsamları

Bazı kapsamlar yalnızca kullanıcı kimlik doğrulaması için kullanılır: email, profile ve openid. Uygulamanız yalnızca bu kapsamları kullanıyorsa JWT kimliği jetonu ile kullanıcı kaydı ve oturum açma için Google ile oturum açma özelliğinin ihtiyaçlarınızı karşılayıp karşılamadığını değerlendirin. Çoğu durumda bu, kullanıcı kimlik doğrulaması için kullanılabilecek en basit ve basit yöntemdir.

Anahtar terimler ve kavramlar

Bu kılavuzlarda, OAuth 2.0 kavramları ve RFC6749 gibi IETF standartları hakkında temel bilgiye sahip olduğunuz varsayılmaktadır. Yetkilendirme kılavuzları genelinde aşağıdaki terimler kullanılır:

  • Erişim jetonu, Google tarafından yayınlanan ve Google API'lerini güvenli bir şekilde çağırmak ve kullanıcı verilerine erişmek için kullanılan, kullanıcı başına kısa bir kimlik bilgisidir.
  • Yetkilendirme kodu, Google Hesaplarında tarayıcı kullanarak oturum açan kullanıcıları güvenli bir şekilde tanımlamak için Google tarafından verilen geçici bir koddur. Arka uç platformunuz, bu kodu erişim ve yenileme jetonları için değiş tokuş eder.
  • Yenileme jetonu, Google tarafından yayınlanan ve kullanıcı platformunuzda güvenli bir şekilde depolanan uzun süreli kimlik bilgileridir ve kullanıcı mevcut olmadığında bile yeni ve geçerli bir erişim jetonu almak için kullanılabilir.
  • Kapsam, jetonları tanımlanan ve sınırlı miktarda kullanıcı verisi ile kısıtlar. Daha fazlası için Google API'leri için OAuth 2.0 Kapsamları bölümüne bakın.
  • Pop-up modu, kullanıcının tarayıcısında çalışan bir JavaScript geri çağırmasına dayalı bir yetkilendirme kodu akışıdır. Google, geri çağırma işleyicinizi çağırır ve daha sonra kimlik doğrulama kodunu platformunuza göndermekten sorumludur. Bu işlemi nasıl yapacağınız size bağlıdır.
  • Yönlendirme modu, HTTP yönlendirmelerine dayalı bir yetkilendirme kodu akışıdır. Kullanıcı aracısı, ilk olarak Google'a yönlendirilir. Bu, Google'dan platformunuzun yetkilendirme kodu uç noktasına gönderilen ikinci bir koddur.

Jetonların kullanım ömrü, kartı veren kuruluş olarak Google tarafından belirlenir. Farklı faktörler nedeniyle, tam süre değişiklik gösterebilir.

OAuth 2.0 akışları

İki akıştan, dolaylı ve yetkilendirme kodundan bahsediliyor. Her ikisi de Google API'leriyle kullanım için uygun bir erişim jetonu döndürür.

Yetkilendirme kodu akışı, daha iyi bir kullanıcı güvenliği sağladığından önerilir. Bu akış, kullanıcı olmadan erişim jetonları almak için kullanılabilecek bir yenileme jetonu da döndürür. Bu sayede, platformunuz son dakikada planlanmış bir toplantının SMS hatırlatıcısını göndermek gibi eşzamansız işlemleri daha kolay gerçekleştirebilir. Bir yetkilendirme modeli seçin, iki akış arasındaki farkları daha ayrıntılı olarak açıklar.

Google Kimlik Hizmetleri JavaScript kitaplığı, OAuth 2.0 standardını uygulayarak aşağıdaki işlemleri gerçekleştirir:

  • Tarayıcı içi web uygulamanızın, Google API'lerini çağırmak için gerekli olan Google'dan hızlı ve kolay bir şekilde erişim jetonu almasını sağlamak amacıyla implicit akışını yönetin.
  • yetkilendirme kodu akışını kullanıcının tarayıcısından başlatın.

Sık kullanılan adımlar

Dolaylı ve yetkilendirme kodu akışı aynı şekilde başlar:

  1. Uygulamanız bir veya daha fazla kapsam için erişim isteğinde bulunuyor.
  2. Google, kullanıcıya bir rıza mesajı gösterir ve gerekirse önce kullanıcıyı Google Hesabında oturum açar.
  3. Kullanıcı, istenen her kapsamı ayrı ayrı onaylar.

Ardından her akış, farklı adımlarla biter.

Dolaylı akış kullanılırken

  • Google, izin sonucunu uygulamanıza bildirmek ve onaylanan tüm kapsamlar için erişim jetonu döndürmek amacıyla bir geri çağırma işleyicisi kullanır.

Yetkilendirme kodu akışını kullanırken

  • Google, kullanıcıya özel bir yetkilendirme koduyla yanıt verir:
    • Yönlendirme modunda, kod platformunuzun yetkilendirme kodu uç noktasına döndürülür.
    • Pop-up modunda, kod tarayıcı içindeki uygulamanızın geri çağırma işleyicisine döndürülür. Bunun için kullanıcıların web sitenizden ayrılması gerekmez.
  • 4. Adım: OAuth 2.0 sunucu yanıtını işleme tarihinden itibaren arka uç platformunuz Google ile sunucudan sunucuya bir exchange'i tamamlar ve sonuçta kullanıcı başına yenileme jetonu ile erişim jetonu platformunuza döndürülür.

Bağımsız kullanıcıların erişim jetonu almadan önce istenen kapsamlara erişmesine izin vermeniz gerekir. Google, bunu yapmak için yukarıdaki 2. Adımda bir izin iletişim kutusu gösterir ve sonucu myaccount.google.com/permissions adresine kaydeder.

Uygulama adınız, logonuz, gizlilik politikanız, hizmet şartlarınız ve istenen kapsamlarınız kullanıcıya isteği onaylama veya iptal etme seçeneğinin yanı sıra gösterilir.

Şekil 1'de tek bir kapsam için kullanıcı rızası iletişim kutusu gösterilmektedir. Tek bir kapsam istendiğinde, kapsamı onaylamak veya reddetmek için onay kutularına gerek yoktur.

İptal veya Devam düğmeleri ile tek bir kapsam içeren kullanıcı rızası iletişim kutusu, onay kutusu göstermez.

Şekil 1: Tek bir kapsamı olan kullanıcı izni iletişim kutusu.

Şekil 2'de, birden fazla kapsam için kullanıcı rızası iletişim kutusu gösterilmektedir. Birden fazla kapsam istendiğinde, kullanıcının her bir kapsamı onaylamasına veya reddetmesine izin vermek için ayrı onay kutuları gerekir.

İptal veya Devam düğmeleri ile birden fazla kapsam içeren kullanıcı izni iletişim kutusu, her kapsamda bir onay kutusu seçici bulunur.

Şekil 2: Birden çok kapsam içeren kullanıcı izni iletişim kutusu.

Kullanıcı hesapları

İzni kaydetmek ve bir erişim jetonu düzenlemek için Google Hesabı gerekir. Bunun öncesinde, kullanıcıların Google Hesabında oturum açarak kimliklerini Google'da doğrulamaları gerekir.

Zorunlu olmamakla birlikte, Google ile Oturum Açma özelliğinin web uygulamanıza veya arka uç platformunuza kaydolmak ve oturum açmak için kullanılması önerilir. Bu sayede, gerekli adımların sayısını en aza indirerek kullanıcıların sorun yaşama ihtimalini azaltır, ayrıca erişim jetonlarını platformunuzdaki bağımsız hesaplarla kolayca ilişkilendirebilirsiniz.

Örneğin, Google ile Oturum Açma özelliğini kullanmak etkin bir Google Hesabı oturumu oluşturur. Böylece, daha sonra bir yetkilendirme isteğinde bulunurken kullanıcıdan bir Google Hesabı'nda oturum açmasının istenmesi önlenir. Kullanıcıların kimliğini kullanıcı adı ve şifre gibi başka yöntemlerle veya diğer kimlik sağlayıcılarla uygulamanızda doğrulamayı tercih ederseniz önce kullanıcı rızası almak için bir Google Hesabında oturum açması gerekir.

Yetkilendirme başlatma sırasında (genellikle kullanıcının Google Hesabı'nın e-posta adresi) bir giriş ipucu eklemek, Google'ın hesap seçicinin gösterilmesini atlayarak kullanıcıları bir adım ileri kaydetmesini sağlar. Google ile Oturum Açma ile döndürülen kimlik jetonu kimlik bilgisi, kullanıcının e-posta adresini içerir.

Yalnızca tarayıcıda çalışan web uygulamaları, kullanıcı kimlik doğrulaması sistemi uygulamamayı tercih ederek kullanıcı kimlik doğrulaması için yalnızca Google'a güvenebilir. Dolaylı akış olarak bilinen bu senaryoda yenileme jetonunu bir kullanıcı hesabıyla ilişkilendirmenize ve güvenli depolama alanını yönetmenize gerek yoktur.

Yetkilendirme kodu akışı, alternatif olarak bir kullanıcı hesabı sistemi gerektirir. Kullanıcı başına yenileme jetonları, arka uç platformunuzdaki tek bir hesapla ilişkilendirilmeli ve daha sonra kullanılmak üzere depolanmalıdır. Kullanıcı hesabı sistemini uygulama, birlikte çalışma ve yönetme, platformunuza özgüdür ve daha ayrıntılı olarak ele alınmaz.

Kullanıcılar Google Hesabı ayarlarından diledikleri zaman izinleri görüntüleyebilir veya iptal edebilir.

İsteğe bağlı olarak, web uygulamanız veya platformunuz jetonları iptal etmek ve kullanıcı iznini kaldırmak için google.accounts.oauth2.revoke yöntemini çağırabilir. Kullanıcı hesabını platformunuzdan sildiğinde bu işlem faydalı olur.

Diğer yetkilendirme seçenekleri

Alternatif olarak tarayıcılar, İstemci Tarafı Web Uygulamaları için OAuth 2.0'da açıklandığı gibi Google'ın OAuth 2.0 Uç Noktalarını doğrudan çağırarak dolaylı akışı kullanarak erişim jetonları alabilir.

Benzer şekilde, yetkilendirme kodu akışı için kendi yöntemlerinizi uygulamayı ve Web Sunucusu Uygulamaları için OAuth 2.0'ı Kullanma bölümünde açıklanan adımları izlemeyi seçebilirsiniz.

Her iki durumda da geliştirme işleminizi ve zamanınızı azaltmak ve OAuth 2.0 Güvenliğiyle İlgili En İyi Uygulama bölümünde açıklananlar gibi güvenlik risklerini en aza indirmek için Google Kimlik Hizmetleri kitaplığını kullanmanızı kesinlikle öneririz.