מכשיריDeveloperיכולים להשתמש ב-SDM API כדי לראות ולנהל מכשירי Google Nest מטעם user. SDM API מאמת שהחשבון user מנהל את המכשירים שאליהם מתבצעת הגישה, שהחשבון user נתן הסכמה ל-developer לקרוא או לכתוב את המאפיינים של כל מכשיר, וש-developer נוסף לרשימת ההיתרים כדי לקבל גישה לכל מאפיין.
כדי להשתמש ב-SDM API לניהול המכשיר, צריך קודם לאשר את ה-developer על ידי ה- user.
הוראות מפורטות לתהליך ההרשאה מפורטות בדף אישור חשבון ב Device Access מדריך למתחילים.
לקבלת עזרה בפתרון בעיות שקשורות לשגיאות הרשאה, אפשר לעיין במאמר שגיאות הרשאה.
תהליך OAuth
ב-SDM API נעשה שימוש בתהליך OAuth תלת-רגלי של Google להרשאה שלuser :
- כש a user רוצה להעניק a developer הרשאה לניהול מכשירי Nest, developer שולח אתuser ל-PCM, שם userנכנס לחשבון Google שלו.
- השדה user בוחר את ההרשאות שיוענקו ל 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 עבור a 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
היקף ה-API של SDM. |
state |
אופציונלי. ערך אטום שמשמש את developer הלקוח כדי לשמור את המצב בין הבקשה לבין קריאת החזרה (callback). |
דוגמה לכתובת 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 לאפליקציה
באפליקציה, מוסיפים את תצוגת PCM באמצעות כתובת ה-URL הזו:
https://nestservices.google.com/partnerconnections
כשה user מתחבר לחשבון, בדף הזה מוצגים כל הDevice Access developerהמקושרים שלו, וגם רשימה של כל המבנים והמכשירים עם מתגים להענקה ולביטול של הרשאות. בדף הזה אפשר גם לבטל את הקישור לשותף ספציפי. user
אפליקציות לא מאומתות
ממשק ה-API של SDM משתמש בהיקף מוגבל, כלומר כל אפליקציה שמשתמשת בהיקף הזה במהלך ההרשאה תהיה 'לא מאומתת', אלא אם תשלימו את אימות ה-API של OAuth. כשמשתמשים ב- Device Access לשימוש אישי, לא נדרש אימות OAuth API.
יכול להיות שיופיע המסך 'Google לא אימתה את האפליקציה הזו' במהלך תהליך ההרשאה. המסך הזה מופיע אם ההיקף sdm.service
לא מוגדר במסך ההסכמה ל-OAuth ב-Google Cloud. כדי לעקוף את המסך הזה, לוחצים על האפשרות Advanced ואז על Go to Project
Name (unsafe).
מידע נוסף זמין במאמר מסך של אפליקציה לא מאומתת.
אסימוני גישה
בכל הקריאות ל-SDM API לניהול מבנים ומכשירים מורשים, צריך להשתמש באסימון הגישה הייחודי שהוקצה ל- developer על ידיuser במהלך ההרשאה. אסימוני הגישה הם לטווח קצר, וצריך לרענן אותם באופן קבוע כדי להבטיח גישה רציפה.
אם a user ביטל developer מאוחר יותר את הגישה למבנה או למכשיר, תוקף אסימון הגישה יפוג באופן מיידי ולא ניתן יהיה לרענן אותו, וdeveloper לא יוכל יותר להפעיל את ה-API של SDM בשם user.
ביטול הרשאה לחשבון
יש כמה דרכים לבטל את ההרשאה של חשבון Google. השיטה המועדפת היא שהמשתמש ישתמש ב-Partner Connections Manager (PCM) כדי לשנות את הרשאות החשבון. מידע נוסף זמין במאמר שינוי הרשאות החשבון. אפשר לבטל אסימון גישה גם באמצעות השיטות הבאות:
המשתמש יכול לבטל את ההרשאה בכתובת https://myaccount.google.com/permissions.
המפתח יכול להעביר את אסימון הגישה לנקודת הקצה
https://oauth2.googleapis.com/revoke
. למידע נוסף על Google OAuth ועל ביטול אסימונים, ראו ביטול אסימון.
תצוגות אינטרנט מוטמעות
מדיניות חדשה בנושא דפדפנים מאובטחים אוסרת על בקשות Google OAuth בספריות דפדפן מוטמעות, שנקראות בדרך כלל רכיבי WebView מוטמעים. כל רכיבי ה-WebView המוטמעים ייחסמו. ספריות webview מוטמעות הן בעייתיות כי הן מאפשרות למפתח זדוני ליירט ולשנות את התקשורת בין Google למשתמשים שלה. תצוגות אינטרנט מוטמעות משפיעות לא רק על אבטחת החשבון, אלא גם על נוחות השימוש באפליקציה.
אם המדיניות הזו רלוונטית לכם, כדאי לעיין במאמר התמיכה שינויים באבטחה שצפויים בנקודת הקצה של הרשאה מסוג OAuth 2.0 של Google ברכיבי WebView מוטמעים.