보조 사용자 확인을 통해 음성에 2단계 보안을 추가할 수 있습니다. 명령어와 함께 사용하면 됩니다 이렇게 하면 다음과 같은 특정 작업의 보안을 강화할 수 있습니다. 보안 카메라 끄기 또는 문 열기 2차 사용자 확인: 특정 기기 특성에 얽매이지 않고, Google Assistant이(가) 보안 문자를 실행합니다. 예를 들어 OnOff 트레잇 챌린지를 실행하여 보안 카메라에 액세스할 수 있지만 OnOff 빛의 특성입니다. Assistant를 사용할 수도 있습니다. 같은 작업에 대해 특정 상황에서 도전과제를 제기할 수 있습니다. 예를 들어 Assistant이(가) 챌린지 요청을 발행하도록 요청할 수 있음 NFC 키팝이 문 근처에 없고 도어 근처에 있지 않은 경우 문 열기 키가 있는 경우 보안문자를 입력할 수 없습니다.
Assistant는 두 가지 유형의 본인 확인 요청을 발행할 수 있습니다.
PIN 번호를 사용할 수 없습니다. 이렇게 하면
Assistant에서 작업으로 다시 전송된 QUERY
및 EXECUTE
인텐트에 대한 챌린지 블록과 challengeNeeded
오류를 수락합니다.
있습니다. 그러면 Assistant가 인텐트 요청을
챌린지 블록의 챌린지 데이터로 작업을 수행합니다. 그런 다음
챌린지 데이터를 검증하여 사용자가 올바른 보안을 제공했는지 확인
있습니다.
Assistant에서 대화상자를 사용하여 본인 확인 요청을 실행하지만, 비음성 표면에서 Assistant 사용, PIN 및 화면에서 확인이 이루어집니다.
지원되는 기기 유형
2차 사용자 확인은 모든 기기 유형에서 지원됩니다.
지원되는 기기 trait
보조 사용자 확인은 모든 기기 특성에 지원됩니다.
지원되는 챌린지 유형
다음은 지원되는 2차 사용자 인증 질문 유형입니다.
- 챌린지 없음 - 단일 요청 모드를 사용하지 않는 2차 사용자 인증 질문
- 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 | 거실 조명을 어둡게 합니다. |
{ "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" }] } }
트레잇 상태에 필요
다음에 대해 상태를 사용할 수 있는 보조 사용자 확인 인증입니다.
특성입니다.
예를 들어
TemperatureSetting 트레잇 및 둘 다
thermostatMode
및 thermostatTemperatureSetpoint
설정됨,
Assistant님이 난방을 설정하시겠습니까?
CANNOT TRANSLATE
응답에 상태를 포함하여 Assistant는 지정된 명령어를 기반으로 특정 작업을 실행합니다. 합니다.
다음 트레잇 및 상태는 트레잇 상태와 함께 ackNeeded
를 지원합니다. 가
특정 특성의 목록은 모든 상태가 지원됨을 나타냅니다.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
이 예시에서는 ackNeeded
챌린지가 포함된 요청 및 응답을 보여줍니다.
트레잇 상태를 사용합니다. 에어컨 모드를 난방으로 변경하고
온도를 28도로 설정합니다. 그런 다음 Assistant가 사용자에게 질문합니다.
난방을 켜고 온도를 28도로 설정해야 합니다
28
의 thermostatTemperatureSetpoint
가 상태로 반환되기 시작한 도입니다.
을 입력합니다.
사용자 | 에어컨 모드를 난방 모드로 설정합니다. |
Google Assistant | 에어컨 난방 28도로 설정하시겠어요? 도? |
사용자 | 예. |
Google Assistantnt | 에어컨 난방 28도로 설정합니다. |
{ "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
보안 기기에는 pinNeeded
챌린지를 사용하는 것이 좋습니다.
이 예에서는 pinNeeded
를 사용한 초기 요청 및 응답을 보여줍니다.
합니다. 예시에서는 pinNeeded
챌린지가 있는 응답을 반환하므로
Assistant님이 PIN을 요청합니다. 이 시점에서 사용자는
잘못되거나 유효한 PIN을 제공하세요.
잘못되거나 유효한 PIN에 대한 요청 및 응답의 예:
를 통해 개인정보처리방침을 정의할 수 있습니다.사용자 | 문을 잠금 해제합니다. |
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" } }] } }
잘못된 PIN
이 예에서는 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" } }] } }
유효한 PIN
다음 예는 유효한 PIN에 대한 요청과 응답을 보여줍니다.
사용자 | 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" } }] } }
오류 응답
다음은 응답과 함께 반환될 수 있는 오류 코드입니다.
-
<ph type="x-smartling-placeholder">
- tooManyFailedAttempts - 죄송합니다. 실패한 시도 횟수가 너무 많습니다. 기기의 앱으로 이동하여 작업을 완료하세요.
- pinIncorrect - 죄송합니다. 보안 코드가 잘못되었습니다.
- userCancelled - 확인
전체 목록 보기 오류 및 예외를 방지합니다.