אימות משתמש משני

אימות משתמש משני מאפשר להוסיף אבטחה דו-שלבית לפקודות קוליות. כך אפשר להוסיף שכבת אבטחה לפעולות מסוימות, כמו כיבוי מצלמת אבטחה או פתיחת דלת. אימות משתמש משני לא קשור לתכונה ספציפית במכשיר, שמאפשרת לכם להחליט מתי לבצע אתגר באמצעות Google Assistant. לדוגמה, תוכלו להריץ אתגר לגבי התכונה OnOff במצלמת אבטחה, אבל לא להציב אתגר לגבי התכונה OnOff לתאורה. אפשר גם להגדיר Assistant אתגרים עם אותה פעולה במצבים מסוימים. לדוגמה, אפשר לבקש מ-Assistant לשלוח בקשה לאתגר לפתיחת דלת אם מפתח ה-NFC לא נמצא בקרבת הדלת, אבל לא לשלוח בקשה אם המפתח נמצא.

באמצעות Assistant אפשר ליצור שני סוגים של אתגרים – אישור מפורש או מספר זיהוי אישי (PIN). הפעולה הזו גורמת להוספת בלוק אתגר לאובייקטים של QUERY ו-EXECUTE שנשלחים מ-Assistant בחזרה לפעולה, ולקבל תשובת שגיאה מסוג challengeNeeded. לאחר מכן, Assistant שולח חזרה את בקשת ה-Intent לפעולה שלכם עם נתוני האתגר בבלוק של האתגר. לאחר מכן תוכלו לאמת את נתוני האתגר כדי לקבוע אם המשתמש נתן את תגובת האבטחה הנכונה.

Assistant משתמש בתיבת דו-שיח כדי לשלוח את האתגר, אבל אם משתמשים ב-Assistant בפלטפורמות ללא קול, קוד האימות והאישורים מוצגים במסך.

סוגי מכשירים נתמכים

אימות משתמש משני נתמך בכל סוגי המכשירים.

תכונות מכשירים נתמכים

אימות משתמש משני נתמך בכל תכונות המכשיר.

סוגי אתגרים נתמכים

אלה סוגי האתגרים המשניים שנתמכים באימות משתמשים:

  • ללא אתגר – בקשה ותגובה שלא כוללים אתגר אימות משני של משתמשים.
  • ackNeeded – אימות משתמש משני שמחייב אישור מפורש (כן או לא) ויכול גם להשתמש במצבי תכונה כמשוב על תשובה. סוג האתגר הזה לא מומלץ לתכונות ולמכשירי אבטחה.
  • pinNeeded – אימות משתמש משני שדורש מספר זיהוי אישי (PIN), אידיאלי לתכונות ולמכשירי אבטחה.

אין אתגר

בדוגמה הזו מוצגת בקשה ותגובה של EXECUTE שהצליחו, ללא אתגר להדלקת הנורות.

משתמש מדליקים את האורות.
Google Assistant בסדר, מדליקים 3 אורות.
בקשה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.OnOff",
          "params": {
            "on": true
          }
        }]
      }]
    }
  }]
}
תשובה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true
      }
    }]
  }
}

ackNeeded

אימות אישור משני של המשתמש, שיכול להשתמש במספר מצבים למאפיין מסוים או לאימות פשוט של אישור.

יש ackNeeded סוגי אתגרים מהסוגים הבאים:

ackנדרש פשוט

בדוגמה הזו מוצגת בקשה פשוטה ותגובה עם אתגר ackNeeded לעמעום תאורה, ואישור לעמעום האור.

משתמש עמעום התאורה בסלון.
Google Assistant האורות בסלון עמעמים. להמשיך?
משתמש כן.
Google Assistant האורות בסלון עמעמים.
בקשה 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.BrightnessAbsolute",
          "params": {
            "brightness": 12
          }
        }]
      }]
    }
  }]
}
תשובה 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
בקשה 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.BrightnessAbsolute",
          "params": {
            "brightness": 12
          },
          "challenge": {
            "ack": true
          }
        }]
      }]
    }
  }]
}
תשובה 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS"
    }]
  }
}

ackנדרש עם מצבי מאפיין

אימות אישור משני של המשתמש שיכול להשתמש במצבים של תכונה. לדוגמה, אם עובדים עם התכונה TemperatureSetting ומוגדרים גם thermostatMode וגם thermostatTemperatureSetpoint, Assistant יכול/ה לשאול Are you sure you want to set the heat to set 28 מעלות?

אפשר גם לכלול מצב בתשובה כדי ש-Assistant יבצע פעולה ספציפית על סמך בקשה נתונה.

התכונות והמדינות הבאות תומכות ב-ackNeeded עם מצבי תכונה. הצגת רשימה של מאפיין ספציפי מציינת שכל המדינות שבהן הוא נתמך.

בדוגמה הזו מוצגת בקשה ותגובה עם אתגר ackNeeded שמשתמש במצב של תכונה. היא משנה את מצב המזגן לחימום ומגדירה את הטמפרטורה ל-28 מעלות. לאחר מכן, הפקודה Assistant מבקשת מהמשתמשים אישור להפעיל את החימום ולהגדיר את הטמפרטורה ל-28 מעלות, כי thermostatTemperatureSetpoint של 28 מוחזר כמצב בתשובה.

משתמש הגדרת מצב AC לחימום.
Google Assistant בחרת להגדיר את החימום במזגן ל-28 מעלות. להמשיך?
משתמש כן.
Google Assistantnt הגדרת החימום במזגן ל-28 מעלות.
בקשה 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.TemperatureSetting",
          "params": {
            "thermostatMode": "heat"
          }
        }]
      }]
    }
  }]
}
תשובה 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      },
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
בקשה 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.TemperatureSetting",
          "params": {
            "thermostatMode": "heat"
          },
          "challenge": {
            "ack": true
          }
        }]
      }]
    }
  }]
}
תשובה 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      }
    }]
  }
}

pinNeeded

האתגר pinNeeded מומלץ לשימוש במכשירי אבטחה.

בדוגמה הזו מוצגת בקשה ראשונית ותגובה עם אתגר pinNeeded. בדוגמה מוחזרת תשובה עם אתגר pinNeeded, ולכן Assistant מבקש את ה-PIN. בשלב הזה המשתמש יכול לספק קוד אימות שגוי או תקין.

דוגמה של בקשה ותגובה לקוד אימות שגוי או חוקי:

משתמש מבטלים את נעילת הדלת.
Google Assistant אפשר לקבל את קוד האבטחה שלך?
בקשה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.LockUnlock",
          "params": {
            "lock": false
          }
        }]
      }]
    }
  }]
}
תשובה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

קוד האימות שגוי

בדוגמה הזו מוצגים הבקשה והתשובה עם אתגר challengeFailedPinNeeded. צריך להשתמש באתגר הזה אחרי שאתגר ראשוני של pinNeeded נכשל.

כשמוחזר סוג challengeFailedPinNeeded, Assistant מבקשת שוב את קוד האבטחה. אם המשתמש מבצע יותר מדי ניסיונות כושלים, אפשר להחזיר את תגובת השגיאה tooManyFailedAttempts. ראו תגובות לשגיאות.

משתמש 333222
Google Assistant מצטערים, קוד האבטחה שגוי. אפשר לקבל את קוד האבטחה שלך?
בקשה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.LockUnlock",
          "params": {
            "lock": false
          },
          "challenge": {
            "pin": "333222"
          }
        }]
      }]
    }
  }]
}
תשובה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "challengeFailedPinNeeded"
      }
    }]
  }
}

קוד אימות תקף

בדוגמה הזו מוצגות הבקשה והתשובה לקבלת קוד אימות תקין.

משתמש 333444
Google Assistant מתבצע ביטול של נעילת הדלת.
בקשה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.LockUnlock",
          "params": {
            "lock": false
          },
          "challenge": {
            "pin": "333444"
          }
        }]
      }]
    }
  }]
}
תשובה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "isLocked": false,
        "isJammed": false
      }
    }]
  }
}
משתמש עמעום התאורה בסלון.
Google Assistant אפשר לקבל את קוד האבטחה שלך?
בקשה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.BrightnessAbsolute",
          "params": {
            "brightness": 12
          }
        }]
      }]
    }
  }]
}
תשובה
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

תגובות לשגיאות

לפניכם כמה מקודי שגיאה שתוכלו להחזיר יחד עם התשובות:

  • tooManyFailedAttempts - מצטערים, יותר מדי ניסיונות כושלים. עליך לעבור לאפליקציה של המכשיר כדי להשלים את הפעולה.
  • pinIncorrect - מצטערים, קוד האבטחה שגוי.
  • userCancelledאישור

כאן מפורטת הרשימה המלאה של שגיאות וחריגים.