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

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

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

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

ประเภทอุปกรณ์ที่รองรับ

การยืนยันผู้ใช้สำรองใช้ได้ในอุปกรณ์ทุกประเภท

Trait ของอุปกรณ์ที่รองรับ

การยืนยันผู้ใช้สำรองรองรับลักษณะอุปกรณ์ทั้งหมด

ประเภทของการยืนยันตัวตนที่รองรับ

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

  • ไม่มีคำท้า - คำขอและการตอบกลับที่ไม่ได้ใช้ คำท้าในการยืนยันผู้ใช้รอง
  • 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 ที่มีสถานะลักษณะ การแสดงรายการลักษณะเฉพาะหมายความว่าระบบรองรับสถานะทั้งหมดของลักษณะนั้น

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

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