การยืนยันผู้ใช้รอง

วิธีการสำรองในการยืนยันผู้ใช้ช่วยให้คุณเพิ่มความปลอดภัยจากปัจจัยที่สองให้กับคำสั่งเสียงได้ ซึ่งจะช่วยให้คุณเพิ่มการรักษาความปลอดภัยสำหรับการดำเนินการบางอย่างได้ เช่น การปิดกล้องรักษาความปลอดภัยหรือการเปิดประตู วิธีการสำรองในการยืนยันผู้ใช้ไม่ได้เชื่อมโยงกับลักษณะเฉพาะของอุปกรณ์ ซึ่งช่วยให้คุณตัดสินใจได้ว่าจะให้ Google Assistant ออกคำท้าเมื่อใด เช่น คุณเลือกที่จะออกการท้าทายสำหรับลักษณะOnOffของกล้องรักษาความปลอดภัยได้ แต่จะไม่ออกการท้าทายสำหรับลักษณะOnOffของหลอดไฟ นอกจากนี้ คุณยังAssistant โต้แย้งปัญหาในบางสถานการณ์สำหรับการดำเนินการเดียวกันได้ด้วย เช่น คุณ ขอให้ Assistant ออกคำขอ Challenge เพื่อ เปิดประตูได้หากพวงกุญแจ NFC ไม่ได้อยู่ใกล้ประตูนั้น แต่ไม่ต้อง ออกคำขอ Challenge หากมีพวงกุญแจอยู่

Assistant สามารถออกคำท้าได้ 2 ประเภท ได้แก่ การรับทราบอย่างชัดแจ้งหรือหมายเลขประจำตัวส่วนบุคคล (PIN) ซึ่งจะเพิ่มบล็อกการท้าทายไปยังเจตนา QUERY และ EXECUTE ที่ส่งจาก Assistant กลับไปยังการดำเนินการของคุณ และยอมรับการตอบกลับข้อผิดพลาด challengeNeeded Assistant จากนั้นจะส่งคำขอ Intent กลับไปยัง การดำเนินการของคุณพร้อมข้อมูลการท้าทายในบล็อกการท้าทาย จากนั้นคุณจะตรวจสอบข้อมูลคำถามเพื่อดูว่าผู้ใช้ตอบคำถามด้านความปลอดภัยได้อย่างถูกต้องหรือไม่

Assistant ใช้กล่องโต้ตอบเพื่อออกคำท้า แต่หากคุณใช้ Assistant ในแพลตฟอร์มที่ไม่ใช่เสียง ระบบจะแสดง PIN และการยืนยันบนหน้าจอ

กรณีที่ควรใช้การยืนยันผู้ใช้รอง

คุณเปิดใช้วิธีการสำรองในการยืนยันผู้ใช้สำหรับอุปกรณ์ประเภทหรือลักษณะใดก็ได้ อย่างไรก็ตาม คุณต้องใช้ วิธีการสำรองในการยืนยันผู้ใช้ สำหรับอุปกรณ์บางประเภทและลักษณะที่ไวต่อความปลอดภัยเพื่อรับการรับรองการผสานรวม

ต้องใช้วิธีการสำรองในการยืนยันผู้ใช้โดยใช้pinNeededประเภทคำถาม สำหรับค่าผสมของลักษณะและประเภทอุปกรณ์ต่อไปนี้

  • ลักษณะ OnOff หากประเภทอุปกรณ์เป็น CAMERA
  • ลักษณะ OpenClose หากประเภทอุปกรณ์เป็น DOOR, GARAGE, GATE หรือ WINDOW
  • ลักษณะ LockUnlock เมื่อปลดล็อก
  • ลักษณะ ArmDisarm เมื่อปิดระบบหรือยกเลิกการปิดระบบ
  • ลักษณะ Reboot, SoftwareUpdate หรือ NetworkControl หากประเภทอุปกรณ์ เป็น NETWORK หรือ ROUTER

ต้องระบุackNeededประเภทภารกิจสำหรับTemperatureSettingลักษณะ หากประเภทอุปกรณ์เป็น AC_UNIT และการผสานรวมเป็นตำแหน่งในญี่ปุ่น

ประเภทของภารกิจที่รองรับ

ประเภทคำถามในการยืนยันผู้ใช้รองที่รองรับมีดังนี้

  • ไม่มีคำท้า - คำขอและการตอบกลับที่ไม่ได้ใช้ วิธีการสำรองในการยืนยันผู้ใช้
  • 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 ประเภทภารกิจมีดังนี้

ackNeeded simple

ตัวอย่างนี้แสดงคำขอและการตอบกลับอย่างง่ายพร้อม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"
    }]
  }
}

ackNeeded พร้อมสถานะลักษณะ

การตรวจสอบสิทธิ์การรับทราบของผู้ใช้รองที่ใช้สถานะสำหรับลักษณะได้ เช่น หากคุณกำลังทำงานกับลักษณะTemperatureSettingและตั้งค่าทั้งthermostatModeและthermostatTemperatureSetpoint Assistant จะถามว่าคุณแน่ใจไหมว่าต้องการตั้งค่าความร้อน ในเครื่องปรับอากาศเป็น 28 องศา

นอกจากนี้ คุณยังระบุสถานะในการตอบกลับเพื่อให้ Assistant ดำเนินการที่เฉพาะเจาะจงตามคำขอที่ระบุได้ด้วย

ลักษณะและสถานะต่อไปนี้รองรับ ackNeeded ที่มีสถานะลักษณะ การแสดงรายการลักษณะเฉพาะหมายความว่าระบบรองรับสถานะทั้งหมดของลักษณะนั้น

  • ArmDisarm
    • ใช้ackNeededประเภทการท้าทายเพื่อเปิดระบบหรือยกเลิกการเปิดระบบของอุปกรณ์ แต่สำหรับฟังก์ชันการปิดระบบและยกเลิกการปิดระบบ คุณต้องใช้pinNeededประเภทการท้าทาย
  • Fill
  • LockUnlock
    • ใช้ประเภทความท้าทาย ackNeeded เพื่อล็อกอุปกรณ์ และประเภทความท้าทาย pinNeeded เพื่อปลดล็อก
  • OnOff
    • on
    • ใช้ประเภทความท้าทาย ackNeeded สำหรับลักษณะนี้ ต้องระบุประเภทการท้าทาย pinNeeded เมื่อใช้ลักษณะนี้กับอุปกรณ์ CAMERA
  • OpenClose
    • ใช้ประเภทความท้าทาย ackNeeded สำหรับลักษณะนี้ ต้องระบุpinNeeded ประเภทการท้าทายเมื่อใช้ลักษณะนี้กับอุปกรณ์ DOOR, GARAGE, GATE หรือ WINDOW
  • Scene
  • TemperatureSetting
    • thermostatMode
    • thermostatTemperatureSetpoint
    • thermostatTemperatureSetpointHigh
    • thermostatTemperatureSetpointLow

ตัวอย่างนี้แสดงคำขอและการตอบกลับที่มีการท้าทาย ackNeeded ซึ่งใช้สถานะลักษณะ โดยจะเปลี่ยนโหมดเครื่องปรับอากาศเป็นโหมดทำความร้อนและตั้งอุณหภูมิเป็น 28 องศา จากนั้น Assistant จะขอให้ผู้ใช้ รับทราบเพื่อเปิดเครื่องทำความร้อนและตั้งอุณหภูมิเป็น 28 องศา เนื่องจากระบบจะแสดง thermostatTemperatureSetpoint ของ 28 เป็นสถานะ ในการตอบกลับ

ผู้ใช้ ตั้งค่าโหมดเครื่องปรับอากาศเป็นทำความร้อน
Google Assistant คุณแน่ใจไหมว่าต้องการตั้งค่าความร้อนในเครื่องปรับอากาศเป็น 28 องศา
ผู้ใช้ ได้
Google Assistant กำลังตั้งค่าความร้อนในเครื่องปรับอากาศเป็น 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 Challenge ดังนั้น Assistant จึงขอ PIN ในขั้นตอนนี้ ผู้ใช้สามารถ ป้อน PIN ที่ไม่ถูกต้องหรือถูกต้อง

ตัวอย่างคำขอและการตอบกลับสำหรับ 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"
      }
    }]
  }
}

PIN ไม่ถูกต้อง

ตัวอย่างนี้แสดงคำขอและการตอบกลับที่มี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"
      }
    }]
  }
}

PIN ที่ถูกต้อง

ตัวอย่างนี้แสดงคำขอและคำตอบของ PIN ที่ถูกต้อง

ผู้ใช้ 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 - Ok

ดูรายการข้อผิดพลาดและข้อยกเว้นทั้งหมด