La verifica utente secondaria ti consente di aggiungere la sicurezza del secondo fattore alla voce tramite comandi SQL. In questo modo puoi aumentare la sicurezza per determinate azioni come spegnere una videocamera di sicurezza o aprire una porta. La verifica utente secondaria è non sono legati a una caratteristica specifica del dispositivo, che ti consente di decidere quando Google Assistant lancia una sfida. Ad esempio, puoi scegliere una sfida per il tratto OnOff per un videocamera di sicurezza, ma non rappresenta un problema OnOff per una luce. Puoi anche avere Assistant in determinate situazioni per la stessa azione. Ad esempio, può chiedere a Assistant di inviare una richiesta di sfida a aprire una porta se non si trova un portachiavi NFC nelle vicinanze, ma inviare una richiesta di verifica se è presente il telecomando.
Il Assistant può proporre due tipi di sfide:
una conferma esplicita o un PIN (Personal Identification Number). Questa operazione aggiunge
blocco di verifica a QUERY
e EXECUTE
intent inviati da Assistant alla tua azione e accetta un errore challengeNeeded
la risposta corretta. Assistant invia quindi la richiesta di intent a
l'azione con i dati della sfida nel blocco della sfida. Puoi quindi
convalidare i dati del test per determinare se l'utente ha fornito i dati di sicurezza corretti
la risposta corretta.
Assistant utilizza i dialoghi per inviare la sfida, ma se usa Assistant su piattaforme non vocali, PIN e le conferme vengono visualizzate sullo schermo.
Tipi di dispositivi supportati
La verifica utente secondaria è supportata su tutti i tipi di dispositivi.
Trait dei dispositivi supportati
La verifica utente secondaria è supportata per tutti i tratti del dispositivo.
Tipi di challenge supportati
Di seguito sono riportati i tipi di verifica dell'utente secondari supportati:
- Nessuna verifica - Una richiesta e una risposta che non utilizza un Verifica secondaria dell'utente.
- ackNeeded: una verifica utente secondaria che richiede l'accettazione esplicita (sì o no) e possono anche utilizzare gli stati dei tratti come feedback sulla risposta. Questo tipo di verifica non è consigliato per la sicurezza dispositivi e trait.
- pinNeeded: una verifica utente secondaria che richiede un PIN (Personal Identification Number), ideale per i dispositivi di sicurezza e caratteristiche.
Nessuna sfida
Questo esempio mostra una richiesta e una risposta EXECUTE
riuscite senza un
sfida per accendere le luci.
Utente | Accendi le luci. |
Google Assistant | Ok, accendo tre luci. |
{ "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
Un'autenticazione di riconoscimento degli utenti secondaria che può utilizzare più stati per un tratto o per una semplice autenticazione di conferma.
Esistono i seguenti tipi di sfide ackNeeded
:
ackNeeded semplice
Questo esempio mostra una richiesta e una risposta semplici con una sfida ackNeeded
per abbassare una luce e la conferma che la diminuisca.
Utente | Diminuisci l'intensità della luce del salotto. |
Google Assistant | Abbasso la luce del salotto. Confermi? |
Utente | Sì. |
Google Assistant | Abbasso la luce del salotto. |
{ "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 con stati dei tratti
Un'autenticazione di riconoscimento dell'utente secondaria che può utilizzare gli stati per un
tratto distintivo.
Ad esempio, se utilizzi
TemperatureSetting tratto ed entrambi
thermostatMode
e thermostatTemperatureSetpoint
impostati,
Assistant può chiedere Vuoi impostare il riscaldamento
sul condizionatore a 28 gradi?
Puoi anche includere uno stato in una risposta per Assistant eseguono un'azione specifica in base a una determinata richiesta.
I seguenti trait e stati supportano ackNeeded
con gli stati dei trait. R
l'elenco di una caratteristica specifica indica che tutti i suoi stati sono supportati.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Questo esempio mostra una richiesta e una risposta con una sfida ackNeeded
che
utilizza uno stato dei tratti. Cambia la modalità del condizionatore in riscaldamento e imposta la
temperatura a 28 gradi. Assistant chiede agli utenti
per confermare di accendere il riscaldamento e impostare la temperatura a 28
gradi poiché thermostatTemperatureSetpoint
di 28
viene restituito come stato
nella risposta.
Utente | Imposta la modalità AC su Caldo. |
Google Assistant | Sei sicuro di voler impostare il riscaldamento del condizionatore su 28 gradi? |
Utente | Sì. |
Google Assistantnt | Imposto il riscaldamento del condizionatore su 28 gradi. |
{ "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
La sfida pinNeeded
è consigliata per i dispositivi di sicurezza.
Questo esempio mostra una richiesta e una risposta iniziali con un pinNeeded
sfida. L'esempio restituisce una risposta con una sfida pinNeeded
, quindi
Assistant chiede il PIN. A questo punto, l'utente può
fornire un PIN errato o valido.
Esempio di richiesta e risposta relativa a un PIN errato o valido:
di Gemini Advanced.Utente | Apri la porta. |
Google Assistant | Puoi dirmi il tuo codice di sicurezza? |
{ "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 errato
Questo esempio mostra la richiesta e la risposta con un challengeFailedPinNeeded
sfida. Questa verifica deve essere utilizzata dopo una verifica iniziale di pinNeeded
non riuscito.
Quando viene restituito un tipo challengeFailedPinNeeded
,
Assistant chiede di nuovo il codice di sicurezza. Se l'utente
esegue troppi tentativi non riusciti, puoi restituire tooManyFailedAttempts
risposta di errore. Vedi Risposte di errore.
Utente | 333222 |
Google Assistant | Mi dispiace, il codice di sicurezza non è corretto. Puoi dirmi il tuo codice di sicurezza? |
{ "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 valido
Questo esempio mostra la richiesta e la risposta di un PIN valido.
Utente | 333444 |
Google Assistant | Apro la porta. |
{ "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 } }] } }
Utente | Diminuisci l'intensità della luce del salotto. |
Google Assistant | Puoi dirmi il tuo codice di sicurezza? |
{ "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" } }] } }
Risposte di errore
Di seguito sono riportati alcuni codici di errore che possono essere restituiti con le tue risposte:
- tooManyFailedAttempts: sono spiacenti, sono stati effettuati troppi tentativi non riusciti. Vai all'app del dispositivo per completare l'azione.
- pinIncorrect: Spiacenti, il codice di sicurezza non è corretto.
- userCancelled - Ok
Consulta l'elenco completo errori ed eccezioni.