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 מסופק על ידי ה-API של SDM. זוהי תצוגה שמציגה את כל המבנים, המכשירים ואפשרויות הגישה ש-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 מוטמעות הן בעייתיות כי הן מאפשרות למפתח זדוני ליירט ולשנות את התקשורת בין Google למשתמשים שלה. תצוגות אינטרנט מוטמעות משפיעות לא רק על אבטחת החשבון, אלא גם על נוחות השימוש באפליקציה.
אם המדיניות הזו רלוונטית לכם, כדאי לעיין במאמר התמיכה שינויים באבטחה שצפויים בנקודת הקצה של הרשאה מסוג OAuth 2.0 של Google ברכיבי WebView מוטמעים.