Verifica utente secondario

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.
di Gemini Advanced.

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.
Richiedi
di Gemini Advanced.
{
  "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
          }
        }]
      }]
    }
  }]
}
Risposta
{
  "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.
Richiesta 1
di Gemini Advanced.
{
  "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
          }
        }]
      }]
    }
  }]
}
Risposta 1
di Gemini Advanced.
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
Richiesta 2
di Gemini Advanced.
{
  "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
          }
        }]
      }]
    }
  }]
}
Risposta 2
{
  "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.

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.
Richiesta 1
di Gemini Advanced.
{
  "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"
          }
        }]
      }]
    }
  }]
}
Risposta 1
di Gemini Advanced.
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      },
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
Richiesta 2
di Gemini Advanced.
{
  "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
          }
        }]
      }]
    }
  }]
}
Risposta 2
{
  "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?
Richiedi
di Gemini Advanced.
{
  "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
          }
        }]
      }]
    }
  }]
}
Risposta
{
  "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?
Richiedi
di Gemini Advanced.
{
  "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"
          }
        }]
      }]
    }
  }]
}
Risposta
{
  "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.
Richiedi
di Gemini Advanced.
{
  "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"
          }
        }]
      }]
    }
  }]
}
Risposta
{
  "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?
Richiedi
di Gemini Advanced.
{
  "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
          }
        }]
      }]
    }
  }]
}
Risposta
{
  "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.