Chat uygulamaları ve API isteklerinin kimliğini doğrulama ve yetkilendirme

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Kimlik doğrulama ve yetkilendirme işlemleri, sırasıyla kimlik ve kaynaklara erişimi doğrulamak için kullanılan mekanizmalardır. Bu dokümanda, kimlik doğrulama ve yetkilendirmenin Chat uygulamaları ve Chat API istekleri için nasıl çalıştığı açıklanmaktadır.

Sürece genel bakış

Aşağıdaki şemada, Google Chat için kimlik doğrulama ve yetkilendirmenin üst düzey adımları gösterilmektedir:

Google Chat kimlik doğrulaması ve yetkilendirme için üst düzey adımlar
Şekil 1. Google Chat kimlik doğrulaması ve yetkilendirme için üst düzey adımlar

  1. Bir Google Cloud projesi yapılandırın, Chat API'yi etkinleştirin ve Chat uygulamanızı yapılandırın: Geliştirme sırasında bir Google Cloud projesi oluşturursunuz. Google Cloud projesinde Chat API'yi etkinleştirir, Chat uygulamanızı yapılandırır ve kimlik doğrulamayı ayarlarsınız.

  2. Call API API: Uygulamanız Chat'e REST API'yi çağırdığında (genellikle Google Chat'teki bir kullanıcı uygulamayı mesaj göndererek, bir karttaki düğmeyi tıklayarak veya eğik çizgi komutu vererek) çağırdıktan sonra, kimlik doğrulama kimlik bilgileri Chat API'ye gönderilir. Uygulamanız bir hizmet hesabıyla kimlik doğrulaması yapıyorsa kimlik bilgileri, uygulama kodunun bir parçası olarak gönderilir. Uygulamanızın kullanıcı olarak kimliği doğrulanırsa kullanıcı bir oturum açma istemi alabilir.

  3. Kaynak isteme: Uygulamanız, kimlik doğrulamasını ayarlarken belirttiğiniz kapsamlarla erişim izni ister.

  4. İzin isteyin: Uygulamanızın kullanıcı olarak kimliği doğrulanıyorsa Google, kullanıcının istenen verilere erişmesine izin verip vermeyeceğine karar verebilmesi için bir OAuth izin ekranı görüntüler. Hizmet hesabıyla kimlik doğrulama için kullanıcı izni gerekmez.

  5. Onaylanan kaynaklar için istek gönderme: Kullanıcı yetkilendirme kapsamlarına izin verirse uygulamanız, kimlik bilgilerini ve kullanıcı tarafından onaylanmış kapsamları bir istek altında gruplandırır. İstek, bir erişim jetonu almak için Google yetkilendirme sunucusuna gönderilir.

  6. Google bir erişim jetonu döndürür: Erişim jetonu, izin verilen kapsamların listesini içerir. Döndürülen kapsamlar listesi istenen kapsamlardan daha sınırlıysa uygulamanız, jeton tarafından sınırlanan tüm özellikleri kapatır.

  7. İstenen kaynaklara erişim: Uygulamanız, Chat API'yi çağırmak ve Chat API kaynaklarına erişmek için Google'ın erişim jetonunu kullanır.

  8. Yenileme jetonu alma (isteğe bağlı): Tek bir erişim jetonunun süresinin ardından uygulamanızın Google Chat API'sine erişmesi gerekiyorsa yenileme jetonu alabilir.

  9. Daha fazla kaynak isteğinde bulunma: Uygulamanız daha fazla erişim iznine ihtiyaç duyuyorsa kullanıcıdan yeni kapsamlar vermesini ister. Bu da erişim jetonu almak için yeni bir istekle sonuçlanır (3-6. adımlar).

Chat uygulamaları için kimlik doğrulama gerekli olduğunda

Chat uygulamaları, Google Chat'e eşzamanlı veya eşzamansız olarak mesaj gönderebilir. Ayrıca, kullanıcı adına Chat alanı oluşturma gibi görevleri de tamamlayabilir.

Chat uygulaması bir yanıtı işlerken Chat REST API'yi veya başka bir Google API'sini çağırmadığı sürece eşzamanlı mesajlar için kimlik doğrulama gerekmez.

Eşzamansız mesajlar göndermek veya kullanıcılar adına çalışmak isteyen Chat uygulamaları, Chat REST API'ye RESTful istekleriyle kimlik doğrulama ve yetkilendirme yapılmasını ister.

Eşzamanlı iletiler için kimlik doğrulama gerekmez

Eşzamanlı mesajlar, Chat etkinliklerine verilen yanıtlardır. Google Chat uygulamaları, Chat uygulaması yapılandırma sayfasında yapılandırılıp yayınlandıktan sonra etkinlikleri alıp yanıtlayabilir ve kimlik doğrulama veya yetkilendirme gerektirmez.

Eşzamanlı Chat etkinliklerine örnekler:

  • Bir kullanıcı Google Chat'teki bir Chat uygulamasına mesaj gönderir.
  • Bir kullanıcı Chat uygulamasından bahsediyor.
  • Kullanıcı, Chat uygulamasının eğik çizgi komutlarından birini çağırır.

Aşağıdaki şemada, bir Chat kullanıcısı ile Chat uygulaması arasındaki temel eşzamanlı eşzamanlı yanıt yanıtı dizisi gösterilmektedir:

Eşzamanlı iletiler için yetkilendirme gerekmiyor
Şekil 2. Eşzamanlı iletiler için kimlik doğrulama gerekmez

  1. Kullanıcı, Google Chat'teki Chat uygulamasına mesaj gönderir.
  2. Google Chat, mesajı uygulamaya yönlendirir.
  3. Uygulama mesajı alır, işler ve Google Chat'e yanıt döndürür.
  4. Google Chat, yanıtı kullanıcı için veya bir alanda oluşturur.

Bu sıra her Chat etkinliği için tekrarlanır.

Eşzamansız iletiler kimlik doğrulama gerektirir

Bir Chat uygulaması, kimlik doğrulama ve yetkilendirme gerektiren Chat REST API'ye bir istek gönderdiğinde, eşzamansız mesajlar ortaya çıkar.

Chat uygulamaları, REST API'yi çağırarak Google Chat'te mesajlar yayınlayabilir veya görevleri tamamlayabilir ve kullanıcı adına verilere erişebilir. Örneğin, bir sunucu uygulaması sunucu kesintisi tespit ettikten sonra Chat API'yi çağırarak şunları yapabilir:

  • Kesintiyi araştırmak ve düzeltmek için bir Chat alanı oluşturun.
  • Chat alanına kullanıcı ekleyin.
  • Kesintiyle ilgili ayrıntıları paylaşmak için Chat alanında bir mesaj yayınlayın.

Aşağıdaki şemada, bir Chat uygulaması ile Chat alanı arasındaki temel eşzamansız mesaj dizisi gösterilmektedir:

Eşzamansız iletiler için kimlik doğrulaması gerekiyor
Şekil 3. Eşzamansız iletiler kimlik doğrulama gerektirir

  1. Bir Chat uygulaması, spaces.messages.create yöntemini kullanarak Chat REST API'yi çağırarak bir mesaj oluşturur ve HTTP isteğine hizmet hesabı kimlik bilgilerini ekler.
  2. Google Chat, hizmet uygulamasını veya kullanıcı kimlik bilgilerini kullanarak Chat uygulamasının kimliğini doğrular.
  3. Google Chat, uygulamanın mesajını belirli bir Chat alanına oluşturur.

Chat API kapsamları

Uygulamanıza verilen erişim düzeyini tanımlamak için yetkilendirme kapsamlarını tanımlamanız ve bildirmeniz gerekir. Yetkilendirme kapsamı, Google Workspace uygulamasının adını, hangi tür verilere eriştiğini ve erişim düzeyini içeren bir OAuth 2.0 URI dizesidir.

Google Chat aşağıdaki kapsamları destekler:

Google Chat API Kapsamı Açıklama
https://www.googleapis.com/auth/chat.bot Chat uygulamalarının sohbetleri görüntülemesine ve mesaj göndermesine izin verir.
https://www.googleapis.com/auth/chat.delete Google Chat'te görüşmeleri ve alanları silme ve ilişkili dosyalara erişimi kaldırma.
Üyelikler  
https://www.googleapis.com/auth/chat.memberships Google Chat görüşmelerindeki üyeleri görüntüleme, ekleme ve kaldırma.
https://www.googleapis.com/auth/chat.memberships.app Chat uygulamasının, Google Chat'teki görüşmelere kendisini ekleyip (diğer uygulamaları değil) kaldırmasına olanak tanır.
Mesajlar  
https://www.googleapis.com/auth/chat.messages Google Chat'te mesaj oluşturma, alma, güncelleme, silme ve listeleme.
https://www.googleapis.com/auth/chat.messages.reactions Google Chat'te mesajlara tepki ekleme, tepkileri görüntüleme ve silme.
https://www.googleapis.com/auth/chat.messages.reactions.create Google Chat'te mesajlara tepki ekleyin.
https://www.googleapis.com/auth/chat.messages.reactions.readonly Google Chat'te mesajlara verilen tepkileri görüntüleyin.
https://www.googleapis.com/auth/chat.messages.readonly Google Chat'te mesajları alabilir ve listeleyebilirsiniz.
Alanlar  
https://www.googleapis.com/auth/chat.spaces Google Chat'te görüşmeler ve alanlar oluşturun ve meta verileri (geçmiş ayarları dahil) görüntüleyin veya güncelleyin.
https://www.googleapis.com/auth/chat.spaces.create Google Chat'te görüşme oluşturun.
https://www.googleapis.com/auth/chat.spaces.readonly Google Chat'te sohbet ve alanları görüntüleyin.

Google Workspace API'leri için kapsamlar hakkında daha fazla bilgi edinmek üzere Uygulamanız için kapsam seçme başlıklı makaleyi inceleyin.

Kullanılabilir kapsamların listesi için Google API'leri için OAuth 2.0 Kapsamları'nı inceleyin.

Gerekli kimlik doğrulama türleri

Chat uygulamalarının kimliğini doğrulamak ve Chat API ile yetkilendirme yapmak için kullanabileceğiniz iki yöntem vardır: kullanıcı kimlik bilgileri veya hizmet hesapları.

Kullanıcı kimlik bilgisi yetkilendirmesiyle Chat uygulaması, belirtilen kullanıcı verilerine erişebilir ve kullanıcı adına belirtilen işlemleri tamamlayabilir. Yetkilendirilen veriler ve işlemler, kapsamlar tarafından belirtilir.

Hizmet hesabı yetkilendirmesiyle bir Chat uygulaması, hizmet hesabı kimlik bilgilerini kullanarak uygulama olarak API'ye erişir.

Alan yöneticisiyseniz her kullanıcının izin vermesi gerekmeksizin bir uygulamanın hizmet hesabına kullanıcılarınızın verilerine erişim yetkisi vermek için alan genelinde yetki verme izni verebilirsiniz. Alan genelinde yetkiyi yapılandırdıktan sonra kullanıcı hesaplarını taklit etmek için hizmet hesabınızı kullanarak API çağrıları yapabilirsiniz. Kimlik doğrulama için hizmet hesabı kullanılıyor olsa da, alan genelinde yetki bir kullanıcının kimliğine bürünür ve bu nedenle kullanıcı kimlik doğrulaması olarak kabul edilir. Kullanıcı kimlik doğrulaması gerektiren tüm işlevler için alan genelinde yetkiyi kullanabilirsiniz.

Aşağıdaki tabloda, Chat uygulamalarının karşılaştığı yaygın senaryolar, kimlik doğrulama gerektirip gerektirmedikleri ve gerekliyse listelenmektedir:

Senaryo Kimlik doğrulama gerekmez Kullanıcı kimlik doğrulaması destekleniyor Hizmet hesabı destekleniyor
Şu kişilerden mesaj alın:
Chat etkinlikleri
Apps Komut Dosyası geri çağırmaları
Google Cloud Pub/Sub
Mesajları yanıtlama:
Eşzamanlı olarak, Chat etkinliği üzerinden
Eşzamanlı olarak, Apps Komut Dosyası geri çağırma dönüş değeri aracılığıyla
Eşzamansız olarak Chat REST API aracılığıyla
Yeni mesaj gönderme:
Gelen webhook'lar ile
Chat REST API ile
Chat alanı oluşturma:
Chat REST API ile
Chat alanına kullanıcı ve uygulama ekleme:
Chat REST API ile

Sonraki adım

Kullanıcı kimlik bilgileri veya hizmet hesabı ile kimlik doğrulama ve yetkilendirme ayarlarını yapın.