Appearance
AWS Rekognition Face Liveness 接入说明
原始资料:
D:/WorkSpace/divs-orch/docs/aws/AWS-Face-Liveness-接入指南-中文.mdD:/WorkSpace/divs-orch/docs/aws/AWS-Face-Liveness-接入确认项.md
LLM 速览
Amazon Rekognition Face Liveness 用短视频自拍判断当前用户是否是真实出现在摄像头前的真人,可检测照片、视频、面具、屏幕翻拍等攻击。检测完成后返回活体置信度、reference image 和 audit images。reference image 可继续用于 CompareFaces 做人脸比对。
关键结论:
- 后端 API:
CreateFaceLivenessSession、GetFaceLivenessSessionResults。 - 客户端 API:
StartFaceLivenessSession,由 AmplifyFaceLivenessDetector组件直连 Rekognition。 - 认证:AWS SDK + SigV4,不是普通 API Key。
- 结果:
Status+Confidence,是否通过由业务阈值判断。 - 图片:可返回 reference image 和最多 4 张 audit images。
- Region:S3、Rekognition、Cognito 必须同区。
1. 整体链路
text
App 请求我方后端创建活体会话
-> 后端调用 CreateFaceLivenessSession
-> 返回 SessionId 和 Region
-> App 用 Amplify FaceLivenessDetector 启动检测
-> 客户端直连 Rekognition 上传视频流
-> App 通知后端检测完成
-> 后端调用 GetFaceLivenessSessionResults
-> 后端按 Status + Confidence 输出 PASS / REJECT / UNKNOWN2. API 清单
| API / 组件 | 调用方 | 作用 |
|---|---|---|
CreateFaceLivenessSession | 后端 | 创建活体会话,返回 SessionId |
StartFaceLivenessSession | 客户端 Amplify 组件 | 启动视频流上传和活体挑战 |
GetFaceLivenessSessionResults | 后端 | 获取 Status、Confidence、reference image 和 audit images |
CompareFaces | 后端,可选 | 用 reference image 和证件照 / 存档照做人脸比对 |
3. 认证与权限
AWS 不使用供应商式 API Key,而使用 IAM 凭证与 SigV4 签名。推荐后端使用 AWS SDK,由 SDK 自动签名。
后端 IAM 需要:
json
{
"Action": [
"rekognition:CreateFaceLivenessSession",
"rekognition:GetFaceLivenessSessionResults"
],
"Resource": "*"
}客户端如使用 Cognito Identity Pool,unauth 角色需要:
json
{
"Action": ["rekognition:StartFaceLivenessSession"],
"Resource": "*"
}这两套权限不能混用。后端 AK/SK 绝不能下发到 App。
4. 请求与响应
4.1 CreateFaceLivenessSession
请求体可配置:
| 字段 | 说明 |
|---|---|
ClientRequestToken | 幂等 token |
Settings.AuditImagesLimit | 0-4,返回审计图数量,默认 0 |
Settings.ChallengePreferences | 挑战类型 |
Settings.OutputConfig | 输出到 S3 的 bucket 和 key prefix |
KmsKeyId | 可选 KMS 加密 |
响应:
json
{ "SessionId": "0f959dbb-37cc-45d8-a08d-dc42cce85fa8" }4.2 GetFaceLivenessSessionResults
请求:
json
{ "SessionId": "0f959dbb-37cc-45d8-a08d-dc42cce85fa8" }响应重点字段:
| 字段 | 说明 |
|---|---|
Status | CREATED / IN_PROGRESS / SUCCEEDED / FAILED / EXPIRED 等状态 |
Confidence | 0-100,活体置信度 |
ReferenceImage | 可用于后续人脸比对的人脸参考图 |
AuditImages[] | 审计图,最多 4 张 |
5. 业务结论映射
| AWS Status | Confidence | 建议结论 |
|---|---|---|
SUCCEEDED | 大于等于业务阈值 | PASS |
SUCCEEDED | 小于业务阈值 | REJECT |
CREATED / IN_PROGRESS | - | UNKNOWN,继续等待或轮询 |
FAILED / EXPIRED | - | REJECT 或重新发起会话 |
阈值需要用自有样本做误纳 / 误拒回归后决定。初始可先以 80-90 作为讨论范围,不建议直接写死为生产策略。
6. 与人脸比对的关系
Face Liveness 负责证明“当前镜头前是真人”,并返回 reference image。若业务还要证明“这个真人是不是证件上的人”,还需要把 reference image 与证件照 / 存档照做 CompareFaces。
text
Face Liveness
-> 判断是不是活体真人
-> 输出 reference image
CompareFaces
-> reference image + comparison image
-> 判断是不是同一个人7. 接入待确认
- 直连 Rekognition 还是 API Gateway + Lambda 包装。
- 使用哪个 AWS Region,且 S3 / Rekognition / Cognito 是否同区。
- 后端凭证用 IAM Role、环境变量还是
~/.aws。 - 客户端凭证用 Cognito Identity Pool 还是 STS。
- 活体阈值、挑战类型、审计图数量。
- 是否启用 S3 / KMS 存图。
- 是否同时接
CompareFaces。