التحقُّق من هوية المستخدم الثانوي

يتيح لك إجراء ثانوي لإثبات هوية المستخدم إضافة عامل أمان ثانٍ إلى الأوامر الصوتية. ويتيح لك ذلك إضافة أمان إضافي لإجراءات معيّنة، مثل إيقاف كاميرا المراقبة أو فتح باب. لا يرتبط "إجراء ثانوي لإثبات هوية المستخدم" بـ سمة جهاز معيّنة، ما يسمح لك بتحديد الوقت الذي يجب أن يطلب فيه Google Assistant إثبات الهوية. على سبيل المثال، يمكنك اختيار طلب إثبات الهوية لسمة OnOffلكاميرا المراقبة، ولكن ليس لسمة OnOff لمصباح. يمكنك أيضًا أن يطلب Assistant إثبات الهوية في حالات معيّنة للإجراء نفسه. على سبيل المثال، يمكنك أن تطلب من Assistant طلب إثبات الهوية لفتح باب إذا لم يكن مفتاح NFC بالقرب من هذا الباب، ولكن ليس إذا كان المفتاح موجودًا.

يمكن أن يطلب Assistant نوعَين من إثبات الهوية: تأكيد صريح أو رقم تعريف شخصي (PIN). يضيف ذلك كتلة تحدٍ إلى QUERY وEXECUTE اللذين يتم إرسالهما من Assistant إلى الإجراء، ويقبل استجابة الخطأ challengeNeeded. Assistant بعد ذلك، يعيد إرسال طلب النية إلى الإجراء مع بيانات التحدّي في كتلة التحدّي. يمكنك بعد ذلك التحقّق من بيانات إثبات الهوية لتحديد ما إذا كان المستخدم قد قدّم استجابة الأمان الصحيحة.

يستخدم Assistant مربّع حوار لطلب إثبات الهوية، ولكن إذا كنت تستخدم Assistant على أسطح غير صوتية، يتم إدخال رقم التعريف الشخصي و التأكيدات على الشاشة.

حالات استخدام ميزة "إجراء ثانوي لإثبات هوية المستخدم"

يمكنك تفعيل إجراء ثانوي لإثبات هوية المستخدم لأي نوع جهاز أو سمة. ومع ذلك، يجب تنفيذ إجراء ثانوي لإثبات هوية المستخدم لأنواع وسمات معيّنة من الأجهزة الحسّاسة للأمان للحصول على شهادة التكامل.

يجب إجراء ثانوي لإثبات هوية المستخدم باستخدام نوع التحدّي 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 بسيط

يعرض هذا المثال طلبًا واستجابة بسيطَين مع إثبات الهوية 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، لذا Assistant يطلب رقم التعريف الشخصي. في هذه المرحلة، يمكن للمستخدم تقديم رقم تعريف شخصي غير صحيح أو صالح.

نموذج طلب واستجابة لرقم تعريف شخصي غير صحيح أو صالح:

المستخدم أريد فتح الباب.
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 : حسنًا

يمكنك الاطّلاع على القائمة الكاملة لـ لأخطاء والاستثناءات.