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

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

Assistant จะออกภารกิจได้ 2 ประเภท ได้แก่ การยอมรับอย่างชัดแจ้งหรือหมายเลขประจำตัวส่วนบุคคล (PIN) การดำเนินการนี้จะเพิ่มการบล็อกชาเลนจ์ไปยัง QUERY และ Intent 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 ประเภทมีประเภทต่อไปนี้

ack Needed 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 ที่มีสถานะ Trait การระบุลักษณะเฉพาะตัวเป็นการระบุว่ารัฐทุกรัฐที่ได้รับการสนับสนุน

ตัวอย่างนี้แสดงคำขอและคำตอบพร้อมการท้าทาย ackNeeded ที่ใช้สถานะ Trait เปลี่ยนโหมดเครื่องปรับอากาศเป็นทำความร้อนและตั้งค่าอุณหภูมิเป็น 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 ในตอนนี้ผู้ใช้สามารถระบุ 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"
      }
    }]
  }
}

การตอบกลับข้อผิดพลาด

รหัสข้อผิดพลาดต่อไปนี้ที่แสดงผลพร้อมคำตอบได้มีดังนี้

  • challengeFailedNotSetup - การดำเนินการนี้ต้องใช้รหัสความปลอดภัย แต่ยังไม่ได้ตั้งรหัสดังกล่าว ในแอปของอุปกรณ์
  • tooManyFailedAttempts - ขออภัย คุณพยายามไม่สำเร็จหลายครั้งเกินไป โปรดไปที่แอปของอุปกรณ์เพื่อดำเนินการดังกล่าวให้เสร็จสิ้น
  • pinIncorrect - ขออภัย รหัสความปลอดภัยไม่ถูกต้อง
  • userCancelled - ตกลง

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