הרשאה

חשבונותDeveloperיכולים להשתמש ב-SDM API כדי לראות ולנהל מכשירי Google Nest בשם חשבונות user. ‫SDM API מוודא ש- user מנהל את המכשירים שאליהם יש גישה, ש- user הסכים ש-developer יקרא או יכתוב את המאפיינים של כל מכשיר, ושה-developer נוסף לרשימת ההיתרים לגישה לכל מאפיין.

כדי להשתמש ב-SDM API לניהול מכשירים, צריך קודם לתת הרשאה ל-developer על ידי user.

הסבר מפורט על תהליך ההרשאה מופיע בדף אישור חשבון במדריך למתחילים של Device Access .

לקבלת עזרה בפתרון בעיות שקשורות לשגיאות בהרשאות, אפשר לעיין במאמר בנושא שגיאות בהרשאות.

תהליך OAuth

‫SDM API משתמש בתהליך Google OAuth תלת-רגלי לצורךuser הרשאה:

  • כש a user רוצה לאשר a developer ניהול של מכשירי Nest, developer שולח אתuser ל-PCM, שם userמתחבר לחשבון Google שלו.
  • האפשרות user selects permissions to grant for the developer ב-PCM.
  • ה user מספק הסכמה באמצעות OAuth, ומעניק לdeveloper קוד הרשאה.
  • ה developer משתמש בקוד ההרשאה כדי לאחזר טוקן גישה.
  • ‫ developer משתמש בטוקן הגישה עם קריאות ל-SDM API לניהול מכשירים.

מידע נוסף על Google OAuth ועל אופן ההגדרה שלו זמין במאמר שימוש ב-OAuth 2.0 לגישה ל-Google APIs.

Partner Connections Manager (PCM)

ה-PCM מסופק על ידי SDM API. זהו תצוגה שבה מפורטים כל המבנים, המכשירים ואפשרויות הגישה שuser יכול להעניק ל developer. האפליקציה userבוחרת למה לתת גישה במהלך תהליך ההרשאה ושומרת על השליטה בגישה הזו.

האפשרויות שנבחרו ב-PCM ממופות לקבוצות מאפיינים, שהן אוספים של מאפיינים ש developer תקבלו אליהם גישה. חלק מקבוצות המאפיינים מקושרות זו לזו, בהתאם לסוג השילוב שdeveloper מציע ל user, ו userצריך להעניק הרשאות לקבוצות המאפיינים המקושרות האלה כדי להפעיל את השילוב. אחרת, המשתמש יכול להעניק הרשאות לקבוצות מאפיינים ספציפיות שלא מקושרות, לפי הצורך.

הפעלת PCM

כדי להפעיל את התצוגה של PCM עבור user, מחליפים את נקודת הקצה הרגילה של Google API OAuth 2.0 בנקודת הקצה החדשה של OAuth עבור בקשת ההרשאה:

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

משתמשים בפרמטרים האלה בכתובת ה-URL:

פרמטר תיאור
redirect_uri כתובת ה-URI להפניה של user אחרי אישור מוצלח.
client_id מזהה הלקוח ב-OAuth 2.0 מפרויקט Google Cloud. חשוב לוודא שזה אותו מספר שמשויך למזהה Project . חשוב לזכור שמזהה לקוח ב-OAuth חייב להיות תקין וייחודי ל- project, ואי אפשר לשתף אותו עם projectאחרים.
access_type הערך לשימוש: offline
prompt הערך לשימוש: consent
response_type הערך לשימוש: code
צפוי קוד הרשאה בתמורה.
scope הערך לשימוש: https://www.googleapis.com/auth/sdm.service
ההיקף של SDM API.
state אופציונלי. ערך אטום שמשמש את developer הלקוח לשמירת מצב בין הבקשה לקריאה החוזרת.

דוגמה לכתובת 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

אחרי ש user נותן הרשאה, קוד אישור מוחזר כפרמטר code בכתובת ה-URI להפניה אוטומטית. צריך להשתמש בקוד הזה כדי לקבל טוקן גישה.

אם נתקלתם בשגיאות כשניסיתם לגשת ל-PCM, תוכלו להיעזר במאמר הפניות לשגיאות ב-Partner Connections Manager (PCM).

הוספת PCM לאפליקציה

באפליקציה, מוסיפים את תצוגת ה-PCM באמצעות כתובת ה-URL הבאה:

https://nestservices.google.com/partnerconnections

כשהמשתמש user מחובר לחשבון, בדף הזה מוצגים כל המכשירים המקושרים שלוDevice Access developer, וגם רשימה של כל המבנים והמכשירים עם מתגים להענקת הרשאות ולביטולן. בדף הזה אפשר גם לבטל את הקישור לשותף ספציפי. user

אפליקציות לא מאומתות

ממשק ה-API של SDM משתמש בהיקף מוגבל, כלומר כל האפליקציות שמשתמשות בהיקף הזה במהלך ההרשאה יוגדרו כ'לא מאומתות' אלא אם יושלם אימות של OAuth API. כשמשתמשים ב- Device Access לשימוש אישי, לא נדרש אימות של OAuth API.

במהלך תהליך ההרשאה, יכול להיות שיוצג המסך 'Google לא אימתה את האפליקציה הזו'. המסך הזה מופיע אם sdm.serviceההיקף לא מוגדר במסך ההסכמה ל-OAuth ב-Google Cloud. אפשר לעקוף את המסך הזה על ידי לחיצה על האפשרות מתקדם ואז על מעבר אל שם הפרויקט (לא בטוח).

מידע נוסף זמין במאמר בנושא מסך של אפליקציה לא מאומתת.

אסימוני גישה

כל הקריאות ל-SDM API לניהול מבנים ומכשירים מורשים חייבות להשתמש באסימון הגישה הייחודי שניתן ל- developer על ידיuser במהלך ההרשאה. התוקף של טוקנים לגישה הוא קצר, וצריך לחדש אותם באופן קבוע כדי לשמור על הגישה.

אם a user מאוחר יותר מבטל developer את הגישה למבנה או למכשיר, טוקן הגישה יפוג מיד ולא ניתן יהיה לרענן אותו, וdeveloper לא יוכל יותר לבצע קריאות ל-SDM API בשם user.

ביטול ההרשאה לחשבון

יש כמה דרכים לבטל את ההרשאה של חשבון Google. השיטה המועדפת היא שהמשתמש ישתמש ב-Partner Connections Manager (PCM) כדי לשנות את הרשאות החשבון. מידע נוסף זמין במאמר בנושא שינוי הרשאות בחשבון. אפשר גם לבטל אסימון גישה באמצעות השיטות הבאות:

  1. המשתמש יכול לבטל את הגישה בכתובת https://myaccount.google.com/permissions.

  2. המפתח יכול להעביר את אסימון הגישה לנקודת הקצה https://oauth2.googleapis.com/revoke. מידע נוסף על Google OAuth ועל ביטול טוקנים זמין במאמר בנושא ביטול טוקן.

תצוגות אינטרנט מוטמעות

מדיניות חדשה בנושא דפדפנים מאובטחים אוסרת על בקשות Google OAuth בספריות של דפדפנים מוטמעים, שמכונות בדרך כלל רכיבי WebView מוטמעים. כל תצוגות האינטרנט המוטמעות ייחסמו. ספריות מוטמעות של WebView הן בעייתיות כי הן מאפשרות למפתחים זדוניים ליירט ולשנות את התקשורת בין Google לבין המשתמשים שלה. תצוגות אינטרנט מוטמעות לא משפיעות רק על אבטחת החשבון, אלא גם על נוחות השימוש באפליקציה.

אם המדיניות הזו משפיעה עליכם, כדאי לעיין במאמר התמיכה בנושא שינויים קרובים באבטחה של נקודת הקצה לאישור OAuth 2.0 של Google ברכיבי WebView מוטמעים.