Yetkilendirme

Developer'ler, Google Nest cihazlarını useradına görüntülemek ve yönetmek için SDM API'yi kullanabilir. SDM API, user erişim sağlanan cihazları yönettiğini, user her cihazın özelliklerini okumayı veya yazmayı kabul ettiğini ve her özelliğe erişim için izin verilenler listesine eklenmiş olduğunu doğrular.developer developer

SDM API'yi cihaz yönetimi için kullanmak üzere öncelikledeveloper usertarafından yetkilendirilmelidir.

Yetkilendirme sürecinin adım adım açıklamalı kılavuzu için Device Access Hızlı Başlangıç Kılavuzu'nunHesap Yetkilendirme sayfasına bakın.

Yetkilendirme hatalarını giderme konusunda yardım almak için Yetkilendirme Hataları bölümüne bakın.

OAuth akışı

SDM API'si,user yetkilendirme için üç aşamalı Google OAuth akışı kullanır:

  • Nest cihazlarının yönetimi için a user yetkilendirme a developer istendiğinde developer user , PCM'ye gönderilir ve userbu kişinin Google Hesabına giriş yapar.
  • PCM'de user , developerverilecek izinleri seçer.
  • user , OAuth aracılığıyla yetkilendirme sağlayarakdeveloper bir Yetkilendirme Kodu verir.
  • developer , bir Erişim Jetonu almak için Yetkilendirme Kodunu kullanır.
  • developer , Erişim Jetonu'nu cihaz yönetimi için SDM API'ye yapılan çağrılarla kullanır.

Google OAuth ve nasıl ayarlanacağı hakkında daha fazla bilgi edinmek için Google API'lerine Erişmek için OAuth 2.0'ı Kullanma bölümüne bakın.

İş Ortağı Bağlantıları Yöneticisi (PCM)

PCM, SDM API tarafından sağlanır.user tarafından kullanılabilen tüm yapılar, cihazlar ve erişim seçeneklerinin listelendiği bir görünümdür. developeruser, yetkilendirme işlemi sırasında nelere izin verileceğini seçer ve bu erişimi kontrol eder.

PCM'de seçilen seçenekler, erişim verilecek özellik koleksiyonları olan developer özellik gruplarıyla eşlenir.developer bazı entegrasyon grupları user için entegrasyon türüne bağlı olarak birbirlerine bağlıdır ve userbu entegrasyonu etkinleştirmek için bu bağlı özellik gruplarına izin vermelidir. Aksi takdirde kullanıcı istediği şekilde, tek tek bağlı olmayan özellik grupları için izinler verebilir.

PCM'yi etkinleştir

Bir useriçin PCM görünümünü etkinleştirmek üzere Yetkilendirme İsteği için standart Google API OAuth 2.0 uç noktasını bu yeni OAuth uç noktasıyla değiştirin:

https://nestservices.google.com/partnerconnections/project-id/auth

URL'de şu parametreleri kullanın:

Parametre Açıklama
redirect_uri Başarılı yetkilendirmeden sonra user yönlendirilecek olan URI.
client_id Google Cloud projenizden OAuth 2.0 istemci kimliği. Bu kimliğin Project ile ilişkilendirilmiş olduğundan emin olun. OAuth İstemci Kimliği'nin geçerli ve projectile aynı olması gerektiğini, ayrıca diğer projectlerle paylaşılamayacağını unutmayın.
access_type Kullanılacak değer: offline
prompt Kullanılacak değer: consent
response_type Kullanılacak değer: code
Bunun için bir yetkilendirme kodu verilmesi beklenir.
scope Kullanılacak değer: https://www.googleapis.com/auth/sdm.service
SDM API kapsamı.
state İsteğe bağlıdır. İstek ve geri çağırma arasındaki durumu korumak için developer müşteri tarafından kullanılan opak bir değer.
linking_token GetToken komutundan alınan bağlantı jetonu.

Örnek PCM URL'si:

https://nestservices.google.com/partnerconnections/
  2f6989ca-c756-4625-8cdc-d5b1edfb2dcd/auth?
  redirect_uri=https://www.example.com/api/link/M258KP8OWYZDVQ&
  client_id=418235700063-sdkiav89orn5r1nvrcr5t210qqjimq8l.apps.googleusercontent.com&
  access_type=offline&
  prompt=consent&
  response_type=code&
  scope=https://www.googleapis.com/auth/sdm.service

user , izin verdikten sonra yönlendirme URI'sinde code parametresi olarak bir Yetkilendirme Kodu döndürülür. Erişim jetonu almak için bu kodu kullanın.

PCM'ye erişirken karşılaşılan hatalarla ilgili yardım için İş Ortağı Bağlantıları Yöneticisi (PCM) Hata Referansı bölümüne bakın.

Uygulamanıza PCM ekleyin

Uygulamanızda, aşağıdaki URL'yi kullanarak PCM görünümünü ekleyin:

https://nestservices.google.com/partnerconnections

Giriş yapıldığında user bu sayfada, bağlantılı tümDevice Access developeriçeriklerinin yanı sıra tüm izinleri yapılandırıp iptal etme izni veren tüm yapıların ve cihazların listesi gösterilir. user , bu sayfadan iş ortağı bazında da iş ortağı bağlantısını kesebilir.

Doğrulanmamış uygulamalar

SDM API, kısıtlanmış bir kapsam kullanır. Bu nedenle, yetkilendirme sırasında bu kapsamı kullanan tüm uygulamalar, OAuth API Doğrulaması tamamlanmadığı sürece "doğrulanmaz". Kişisel kullanım için Device Access kullanılırken OAuth API Doğrulaması gerekmez.

Yetkilendirme sürecinde "Google bu uygulamayı doğrulamadı" ekranı görebilirsiniz. Bu ekran, Google Cloud'daki OAuth izin ekranınızda sdm.service kapsamı yapılandırılmadıysa görünür. Bu ekran, Gelişmiş seçeneği ve ardından Proje Adı'na (güvenli değil) git tıklanarak atlanabilir.

Daha fazla bilgi için Doğrulanmamış uygulama ekranı bölümüne bakın.

Erişim jetonları

Yetkili yapıları ve cihazları yönetmek için SDM API'ye yapılan tüm çağrılar, yetkilendirme sırasındauser tarafından verilen benzersiz erişim jetonunu developer kullanmalıdır. Erişim jetonları kısa ömürlüdür ve sürekli erişim sağlamak için düzenli olarak yenilenmelidir.

a user Daha sonra bir yapıya veya cihaza erişimi iptal ederse developer erişim jetonunun süresi hemen dolar ve yenilenemez. Bu durumdadeveloper bunun yerine SDM API'yi arayamaz user.

Hesap yetkilendirmesini iptal et

Google hesaplarının yetkisini kaldırmanın birden fazla yolu vardır. Tercih edilen yöntem, kullanıcının, hesap izinlerini değiştirmek için İş Ortağı Bağlantıları Yöneticisi'ni (PCM) kullanmasıdır. Daha fazla bilgi için Hesap izinlerini değiştirme bölümünü inceleyin. Bir erişim jetonu aşağıdaki yöntemlerle de iptal edilebilir:

  1. Kullanıcı, izni https://myaccount.google.com/permissions adresinden iptal edebilir.

  2. Geliştirici, erişim jetonunu uç noktaya https://oauth2.googleapis.com/revoke aktarabilir. Google OAuth ve jeton iptali hakkında daha fazla bilgi edinmek için Revoking a token (Jetonu iptal etme) başlıklı konuyu inceleyin.

Yerleştirilmiş web görünümleri

Yeni bir güvenli tarayıcı politikası, genellikle yerleşik web görünümleri olarak bilinen yerleşik tarayıcı kitaplıklarındaki Google OAuth isteklerini yasaklar. Yerleştirilmiş tüm web görünümleri engellenir. Yerleşik web görünümü kitaplıkları, tehlikeli bir geliştiricinin Google ve kullanıcıları arasındaki iletişimlere müdahale etmesine ve bu raporları değiştirmesine olanak tanıdığı için sorunludur. Yerleşik web görünümleri yalnızca hesap güvenliğini değil, aynı zamanda uygulamanızın kullanılabilirliğini de etkiler.

Bu politikadan etkileniyorsanız Google'ın yerleşik web görünümlerinde OAuth 2.0 yetkilendirme uç noktasında yapılacak güvenlik değişiklikleri destek makalesine bakın.