Mit der sekundären Nutzerbestätigung können Sie Sprachbefehlen eine 2‑Faktor-Authentifizierung hinzufügen. So können Sie bestimmte Aktionen wie das Ausschalten einer Sicherheitskamera oder das Öffnen einer Tür zusätzlich absichern. Die sekundäre Nutzerbestätigung ist nicht an ein bestimmtes Geräteattribut gebunden. Sie können also selbst entscheiden, wann Google Assistant eine Aufforderung ausgibt. Sie können beispielsweise eine Sicherheitsmaßnahme für das OnOff-Attribut einer Sicherheitskamera, aber nicht für das OnOff-Attribut einer Lampe auslösen. Assistant kann in bestimmten Situationen auch Herausforderungen für dieselbe Aktion ausgeben. Sie können beispielsweise anfordern, dass Assistant eine Challenge-Anfrage zum Öffnen einer Tür ausgibt, wenn sich kein NFC-Schlüsselanhänger in der Nähe dieser Tür befindet. Wenn der Schlüsselanhänger vorhanden ist, soll keine Challenge ausgegeben werden.
Die Assistant kann zwei Arten von Herausforderungen ausgeben: die explizite Bestätigung oder die persönliche Identifikationsnummer (PIN). Dadurch wird ein Challenge-Block zu den Intents QUERY
und EXECUTE
hinzugefügt, die von Assistant zurück an Ihre Aktion gesendet werden, und eine challengeNeeded
-Fehlerantwort wird akzeptiert. Assistant sendet die Intent-Anfrage dann mit den Challenge-Daten im Challenge-Block zurück an Ihre Aktion. Anschließend können Sie die Daten der Sicherheitsabfrage validieren, um festzustellen, ob der Nutzer die richtige Antwort gegeben hat.
Assistant verwendet Dialoge, um die Challenge auszugeben. Wenn Sie Assistant auf Oberflächen ohne Sprachausgabe verwenden, werden PIN und Bestätigungen auf dem Bildschirm angezeigt.
Unterstützte Gerätetypen
Die sekundäre Nutzerbestätigung wird auf allen Gerätetypen unterstützt.
Unterstützte Geräte-Traits
Die sekundäre Nutzerbestätigung wird für alle Geräteattribute unterstützt.
Unterstützte Arten der Identitätsbestätigung
Dies sind die unterstützten Arten von sekundären Nutzerbestätigungsaufforderungen:
- Keine Aufforderung: Eine Anfrage und Antwort, bei der keine Aufforderung zur Bestätigung des sekundären Nutzers verwendet wird.
- ackNeeded: Eine sekundäre Nutzerbestätigung, die eine explizite Bestätigung (Ja oder Nein) erfordert und auch Trait-Status als Antwort-Feedback verwenden kann. Dieser Challenge-Typ wird für Sicherheitsgeräte und ‑merkmale nicht empfohlen.
- pinNeeded: Eine sekundäre Nutzerbestätigung, für die eine persönliche Identifikationsnummer (PIN) erforderlich ist. Sie ist ideal für Sicherheitsgeräte und ‑merkmale.
Keine Herausforderung
In diesem Beispiel wird eine erfolgreiche EXECUTE
-Anfrage und ‑Antwort ohne Aufforderung zum Einschalten der Beleuchtung gezeigt.
Nutzer | Schalte das Licht ein. |
Google Assistant | Ok, ich schalte drei Lampen ein. |
{ "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
Eine sekundäre Nutzerbestätigungsauthentifizierung, die mehrere Status für ein Attribut oder eine einfache Bestätigungsauthentifizierung verwenden kann.
Es gibt die folgenden Arten von ackNeeded
-Herausforderungen:
ackNeeded simple
Dieses Beispiel zeigt eine einfache Anfrage und Antwort mit einer ackNeeded
-Aufforderung zum Dimmen eines Lichts und der Bestätigung, dass das Licht gedimmt wurde.
Nutzer | Dimme das Licht im Wohnzimmer. |
Google Assistant | Das Licht im Wohnzimmer wird gedimmt. Sind Sie sicher? |
Nutzer | Ja. |
Google Assistant | Das Licht im Wohnzimmer wird gedimmt. |
{ "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": "ackNeeded" } }] } }
{ "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 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS" }] } }
ackNeeded mit Trait-Status
Eine Authentifizierung zur Bestätigung durch einen sekundären Nutzer, bei der Status für ein Merkmal verwendet werden können.
Wenn Sie beispielsweise das Attribut TemperatureSetting verwenden und sowohl thermostatMode
als auch thermostatTemperatureSetpoint
festgelegt sind, kann Assistant fragen: Möchtest du die Heizung der Klimaanlage wirklich auf 28 Grad einstellen?
Sie können auch einen Status in eine Antwort einfügen, damit Assistant eine bestimmte Aktion basierend auf einer bestimmten Anfrage ausführt.
Die folgenden Eigenschaften und Status unterstützen ackNeeded
mit Eigenschaftsstatus. Wenn ein bestimmtes Merkmal aufgeführt ist, werden alle seine Status unterstützt.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
In diesem Beispiel werden eine Anfrage und eine Antwort mit einer ackNeeded
-Herausforderung gezeigt, bei der ein Trait-Status verwendet wird. Dadurch wird der Klimaanlagenmodus auf „Heizen“ geändert und die Temperatur auf 28 Grad eingestellt. Assistant bittet die Nutzer dann um die Bestätigung, dass die Heizung eingeschaltet und die Temperatur auf 28 Grad eingestellt werden soll, da in der Antwort ein thermostatTemperatureSetpoint
von 28
als Status zurückgegeben wird.
Nutzer | Stelle den Klimaanlagenmodus auf „Heizen“. |
Google Assistant | Möchtest du die Klimaanlage wirklich auf 28 Grad einstellen? |
Nutzer | Ja. |
Google Assistant | Die Temperatur der Klimaanlage wird auf 28 Grad gestellt. |
{ "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" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 }, "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" } }] } }
{ "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 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 } }] } }
pinNeeded
Die pinNeeded
-Herausforderung wird für Sicherheitsgeräte empfohlen.
Dieses Beispiel zeigt eine erste Anfrage und Antwort mit einer pinNeeded
-Herausforderung. Das Beispiel gibt eine Antwort mit einer pinNeeded
-Herausforderung zurück. Assistant fordert daher die PIN an. An diesem Punkt kann der Nutzer eine falsche oder gültige PIN eingeben.
Beispiel für Anfrage und Antwort bei einer falschen oder gültigen PIN:
Nutzer | Entriegeln Sie die Tür. |
Google Assistant | Kannst du mir den richtigen geben? |
{ "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" } }] } }
Falsche PIN
In diesem Beispiel werden die Anfrage und die Antwort mit einer challengeFailedPinNeeded
-Challenge gezeigt. Diese Challenge sollte verwendet werden, nachdem eine erste pinNeeded
-Challenge fehlgeschlagen ist.
Wenn der Typ challengeFailedPinNeeded
zurückgegeben wird, fordert Assistant den Sicherheitscode noch einmal an. Wenn der Nutzer zu viele fehlgeschlagene Versuche unternimmt, können Sie eine tooManyFailedAttempts
-Fehlerantwort zurückgeben. Weitere Informationen finden Sie unter Fehlerantworten.
Nutzer | 333222 |
Google Assistant | Der Sicherheitscode ist leider falsch. Kannst du mir den richtigen geben? |
{ "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" } }] } }
Gültige PIN
In diesem Beispiel werden die Anfrage und die Antwort für eine gültige PIN gezeigt.
Nutzer | 333444 |
Google Assistant | Die Tür wird entriegelt. |
{ "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 } }] } }
Nutzer | Dimme das Licht im Wohnzimmer. |
Google Assistant | Kannst du mir den richtigen geben? |
{ "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" } }] } }
Fehlerantworten
Hier sind einige Fehlercodes, die mit Ihren Antworten zurückgegeben werden können:
- tooManyFailedAttempts – Tut mir leid, zu viele fehlgeschlagene Versuche. Schließe den Vorgang in der App deines Geräts ab.
- pinIncorrect – Der Sicherheitscode ist leider falsch.
- userCancelled – Ok