Otorisasi

Developerdapat menggunakan SDM API untuk melihat dan mengelola perangkat Google Nest atas nama user. SDM API memvalidasi bahwa user mengelola perangkat yang diakses, bahwa user telah mengizinkan developer membaca atau menulis setiap karakteristik perangkat, dan bahwa developer telah diizinkan untuk mengakses setiap karakteristik.

Untuk menggunakan SDM API untuk pengelolaan perangkat,developer harus diberi otorisasi terlebih dahulu oleh user.

Untuk panduan proses otorisasi, lihat halaman Memberikan Otorisasi ke Akun di Device Access Panduan Memulai Cepat.

Untuk mendapatkan bantuan terkait pemecahan masalah error otorisasi, lihat Error Otorisasi.

Alur OAuth

SDM API menggunakan alur OAuth Google tiga legged untuk otorisasiuser :

  • Jika a user ingin memberikan otorisasi a developer untuk pengelolaan perangkat Nest, developer akan mengirimkan user ke PCM, tempat user login ke Akun Google mereka.
  • user memilih izin yang akan diberikan untuk developer di PCM.
  • user memberikan izin melalui OAuth, yang memberikan developer Kode Otorisasi.
  • developer menggunakan Kode Otorisasi untuk mengambil Token Akses.
  • developer menggunakan Token Akses dengan panggilan ke SDM API untuk pengelolaan perangkat.

Untuk mempelajari Google OAuth lebih lanjut dan cara menyiapkannya, lihat Menggunakan OAuth 2.0 untuk Mengakses Google API.

Partner Connections Manager (PCM)

PCM disediakan oleh SDM API. Ini adalah tampilan yang mencantumkan semua struktur, perangkat, dan opsi akses yang dapat diberikan olehuser ke developer. user memilih apa yang akan diberi akses selama proses otorisasi dan mempertahankan kontrol atas akses tersebut.

Opsi yang dipilih di PCM dipetakan ke grup karakteristik, yang merupakan kumpulan karakteristik yang akan diberi akses ke developer . Beberapa grup sifat ditautkan bersama, bergantung pada jenis integrasi yang developer tawarkan ke user, dan user harus memberikan izin untuk grup sifat tertaut tersebut agar dapat mengaktifkan integrasi tersebut. Jika tidak, pengguna memiliki kemampuan untuk memberikan izin untuk setiap grup ciri yang tidak ditautkan sesuai keinginan.

Aktifkan PCM

Untuk mengaktifkan tampilan PCM untuk user, ganti endpoint Google API OAuth 2.0 standar dengan endpoint OAuth baru ini untuk Permintaan Otorisasi:

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

Gunakan parameter ini di URL:

Parameter Deskripsi
redirect_uri URI yang akan mengarahkan user setelah otorisasi berhasil.
client_id Client ID OAuth 2.0 dari Project Google Cloud Anda. Pastikan ini sama dengan yang dikaitkan dengan ID Project Anda. Perhatikan bahwa Client ID OAuth harus valid dan unik untuk project, dan tidak dapat dibagikan dengan projectlain.
access_type Nilai yang akan digunakan: offline
prompt Nilai yang akan digunakan: consent
response_type Nilai yang akan digunakan: code
Kode otorisasi diharapkan sebagai imbalan.
scope Nilai yang akan digunakan: https://www.googleapis.com/auth/sdm.service
Cakupan SDM API.
state Opsional. Nilai buram yang digunakan oleh klien developer untuk mempertahankan status antara permintaan dan callback.

Contoh URL PCM:

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

Setelah user memberikan izin, Kode Otorisasi akan ditampilkan sebagai parameter code di URI pengalihan. Gunakan kode ini untuk mendapatkan token akses.

Untuk mendapatkan bantuan terkait error yang terjadi saat mengakses PCM, lihat Referensi Error Partner Connections Manager (PCM).

Menambahkan PCM ke aplikasi Anda

Di aplikasi Anda, tambahkan tampilan PCM menggunakan URL ini:

https://nestservices.google.com/partnerconnections

Saat user login, halaman ini akan menampilkan semuaDevice Access developer tertaut, serta daftar semua struktur dan perangkat dengan tombol untuk memberikan dan mencabut izin. user juga dapat memutuskan koneksi partner berdasarkan per partner dari halaman ini.

Aplikasi yang belum diverifikasi

SDM API menggunakan cakupan terbatas, yang berarti bahwa setiap aplikasi yang menggunakan cakupan ini selama otorisasi akan "belum diverifikasi" kecuali jika Verifikasi OAuth API selesai. Saat menggunakan Device Access untuk penggunaan pribadi, Verifikasi OAuth API tidak diperlukan.

Anda mungkin melihat layar "Google belum memverifikasi aplikasi ini" selama proses otorisasi, yang muncul jika cakupan sdm.service tidak dikonfigurasi di layar izin OAuth di Google Cloud. Layar ini dapat diabaikan dengan mengklik opsi Lanjutan, lalu mengklik Buka Project Name (tidak aman).

Lihat Layar aplikasi yang belum terverifikasi untuk mengetahui informasi selengkapnya.

Token akses

Semua panggilan ke SDM API untuk mengelola struktur dan perangkat yang diotorisasi harus menggunakan token akses unik yang diberikan ke developer oleh user selama otorisasi. Token akses berjangka pendek dan harus diperbarui secara rutin untuk memastikan akses yang berkelanjutan.

Jika a user nanti mencabut developer akses ke struktur atau perangkat, masa berlaku token akses akan segera berakhir dan tidak dapat diperbarui, dan developer tidak akan dapat lagi memanggil SDM API atas nama usertersebut.

Mencabut otorisasi akun

Ada beberapa cara untuk membatalkan otorisasi akun Google. Metode yang direkomendasikan adalah agar pengguna menggunakan Partner Connections Manager (PCM) untuk mengubah izin akun. Lihat Mengubah izin akun untuk mengetahui informasi selengkapnya. Token akses juga dapat dicabut dengan metode berikut:

  1. Pengguna dapat mencabutnya di https://myaccount.google.com/permissions.

  2. Developer dapat meneruskan token akses ke endpoint https://oauth2.googleapis.com/revoke. Untuk mempelajari Google OAuth dan pencabutan token lebih lanjut, lihat Mencabut token.

Webview tersemat

Kebijakan browser aman baru melarang permintaan Google OAuth di library browser tersematan yang biasanya disebut sebagai webview tersemat. Semua webview tersemat akan diblokir. Library webview sematan bermasalah karena memungkinkan developer jahat untuk menyadap dan mengubah komunikasi antara Google dan penggunanya. WebView tersemat tidak hanya memengaruhi keamanan akun, tetapi juga dapat memengaruhi kegunaan aplikasi Anda.

Jika Anda terpengaruh oleh kebijakan ini, lihat artikel dukungan Perubahan keamanan mendatang pada endpoint otorisasi OAuth 2.0 Google di webview tersemat.