Sekundäre Nutzerbestätigung

Mit der sekundären Nutzerbestätigung können Sie die Sicherheit von Sprachbefehlen in zwei Schritten erhöhen. Dadurch kannst du die Sicherheit für bestimmte Aktionen erhöhen, z. B. das Ausschalten einer Überwachungskamera oder das Öffnen einer Tür. Die sekundäre Nutzerbestätigung ist nicht an eine bestimmte Geräteeigenschaft gebunden. So kannst du entscheiden, wann Google Assistant eine Aufgabe stellen soll. Sie können beispielsweise eine Herausforderung für das Trait OnOff für eine Überwachungskamera festlegen, aber nicht für das Trait OnOff für ein Licht. In bestimmten Situationen können für dieselbe Aktion auch Assistant Probleme auftreten. Sie können beispielsweise anfordern, dass Assistant eine Anfrage zum Öffnen einer Tür ausgibt, wenn sich ein NFC-Schlüsselanhänger nicht in der Nähe dieser Tür befindet. Eine Anfrage wird jedoch nicht gesendet, wenn der Schlüsselanhänger vorhanden ist.

Die Assistant kann zwei Arten von Identitätsbestätigungen ausstellen: eine explizite Bestätigung oder eine persönliche Identifikationsnummer (PIN). Dadurch wird den Intents QUERY und EXECUTE, die von Assistant an Ihre Aktion gesendet werden, ein Challenge-Block hinzugefügt. Außerdem wird die Fehlerantwort challengeNeeded akzeptiert. Assistant sendet dann die Intent-Anfrage mit den Challenge-Daten im Challenge-Block an Ihre Aktion zurück. Sie können dann die Daten zur Identitätsbestätigung validieren, um festzustellen, ob der Nutzer die richtige Sicherheitsantwort gegeben hat.

Assistant verwendet ein Dialogfeld, um die Herausforderung zu senden. Wenn du Assistant jedoch auf Nicht-Sprachoberflächen verwendest, werden die PIN und die Bestätigung 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äte-Traits unterstützt.

Unterstützte Arten der Identitätsbestätigung

Folgende Arten von Identitätsbestätigungen werden bei der sekundären Nutzerbestätigung unterstützt:

  • Keine Identitätsbestätigung – eine Anfrage und Antwort, für die keine sekundäre Nutzerbestätigung erforderlich ist.
  • ackNeeded: Eine sekundäre Nutzerbestätigung, die eine explizite Bestätigung erfordert (Ja oder Nein) und auch Trait-Zustände als Antwortfeedback verwenden kann. Diese Art der Identitätsbestätigung wird für Sicherheitsgeräte und ‐traits nicht empfohlen.
  • pinNeeded – eine sekundäre Nutzerbestätigung, für die eine persönliche Identifikationsnummer (PIN) erforderlich ist, die sich ideal für Sicherheitsgeräte und ‐eigenschaften eignet.

Keine Herausforderung

Dieses Beispiel zeigt eine erfolgreiche EXECUTE-Anfrage und -Antwort, ohne dass das Licht eingeschaltet werden muss.

Nutzer Schalte das Licht ein.
Google Assistant Ok, ich schalte 3 Lampen ein.
Anfrage
{
  "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
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "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 Zustände für ein Trait oder eine einfache Bestätigungsauthentifizierung verwenden kann.

Es gibt die folgenden Arten von ackNeeded-Aufgaben:

ack Needed einfach

Dieses Beispiel zeigt eine einfache Anfrage und Antwort mit der ackNeeded-Aufgabe zum Dimmen einer Lampe und die Bestätigung zum Dimmen der Lampe.

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

Mit Eigenschaftsstatus akzeptabel

Eine sekundäre Nutzerbestätigungsauthentifizierung, die Zustände für ein Trait verwenden kann. Wenn Sie beispielsweise mit dem Trait TemperatureSetting arbeiten und sowohl thermostatMode als auch thermostatTemperatureSetpoint festgelegt sind, kann Assistant Folgendes fragen: Sind Sie sicher, dass Sie die Heizung der Klimaanlage auf 28 Grad einstellen möchten?

Sie können auch einen Status in eine Antwort aufnehmen, damit Assistant auf Grundlage einer bestimmten Anfrage eine bestimmte Aktion ausführt.

Die folgenden Traits und Status unterstützen ackNeeded mit Trait-Zuständen. Eine Auflistung eines bestimmten Merkmals gibt an, dass alle zugehörigen Bundesstaaten unterstützt werden.

Dieses Beispiel zeigt eine Anfrage und Antwort mit einer ackNeeded-Abfrage, bei der ein Trait-Status verwendet wird. Er wechselt in den Modus „Heizen“ der Klimaanlage und stellt die Temperatur auf 28 Grad ein. Dann bittet Assistant die Nutzer um die Bestätigung, dass sie die Heizung einschalten und die Temperatur auf 28 Grad einstellen sollen, da in der Antwort ein thermostatTemperatureSetpoint von 28 als Status zurückgegeben wird.

Nutzer Stell die Klimaanlage auf „Heizen“.
Google Assistant Möchtest du die Heizung der Klimaanlage wirklich auf 28 Grad einstellen?
Nutzer Ja.
Google Assistantnt Die Temperatur der Klimaanlage wird auf 28 Grad eingestellt.
Anfrage 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"
          }
        }]
      }]
    }
  }]
}
Antwort 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      },
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
Anfrage 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
          }
        }]
      }]
    }
  }]
}
Antwort 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      }
    }]
  }
}

pinNeeded

Für Sicherheitsgeräte wird die Herausforderung „pinNeeded“ empfohlen.

Dieses Beispiel zeigt eine erste Anfrage und Antwort mit einer pinNeeded-Challenge. Das Beispiel gibt eine Antwort mit einer pinNeeded-Abfrage zurück, sodass Assistant nach der Markierung fragt. An dieser Stelle kann der Nutzer eine falsche oder gültige PIN eingeben.

Beispielanfrage und -antwort für eine falsche oder gültige PIN:

Nutzer Tür aufschließen.
Google Assistant Könnten Sie mir bitte den Sicherheitscode geben?
Anfrage
{
  "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
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

Falsche PIN

Dieses Beispiel zeigt die Anfrage und die Antwort mit einer challengeFailedPinNeeded-Challenge. Diese Identitätsbestätigung sollte verwendet werden, nachdem eine erste pinNeeded-Abfrage fehlgeschlagen ist.

Wenn ein challengeFailedPinNeeded-Typ zurückgegeben wird, fragt Assistant noch einmal nach dem Sicherheitscode. Wenn der Nutzer zu viele fehlgeschlagene Versuche ausführt, können Sie den Fehler tooManyFailedAttempts zurückgeben. Siehe Fehlerantworten.

Nutzer 333222
Google Assistant Der Sicherheitscode ist leider falsch. Könnten Sie mir bitte den Sicherheitscode geben?
Anfrage
{
  "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"
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "challengeFailedPinNeeded"
      }
    }]
  }
}

Gültige PIN

Dieses Beispiel zeigt die Anfrage und Antwort einer gültigen PIN.

Nutzer 333444
Google Assistant Die Tür wird entriegelt.
Anfrage
{
  "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"
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "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 Könnten Sie mir bitte den Sicherheitscode geben?
Anfrage
{
  "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
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

Fehlerantworten

Folgende Fehlercodes können zusammen mit Ihren Antworten zurückgegeben werden:

  • tooManyFailedAttemptsLeider sind zu viele Fehlversuche aufgetreten. Öffne die App auf deinem Gerät, um diese Aktion abzuschließen.
  • pinIncorrectDer Sicherheitscode ist falsch.
  • userCancelled - OK

Vollständige Liste der Fehler und Ausnahmen