Skip to content

AWS Rekognition Face Liveness 接入说明

原始资料:

  • D:/WorkSpace/divs-orch/docs/aws/AWS-Face-Liveness-接入指南-中文.md
  • D:/WorkSpace/divs-orch/docs/aws/AWS-Face-Liveness-接入确认项.md

LLM 速览

Amazon Rekognition Face Liveness 用短视频自拍判断当前用户是否是真实出现在摄像头前的真人,可检测照片、视频、面具、屏幕翻拍等攻击。检测完成后返回活体置信度、reference image 和 audit images。reference image 可继续用于 CompareFaces 做人脸比对。

关键结论:

  • 后端 API:CreateFaceLivenessSessionGetFaceLivenessSessionResults
  • 客户端 API:StartFaceLivenessSession,由 Amplify FaceLivenessDetector 组件直连 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 / UNKNOWN

2. API 清单

API / 组件调用方作用
CreateFaceLivenessSession后端创建活体会话,返回 SessionId
StartFaceLivenessSession客户端 Amplify 组件启动视频流上传和活体挑战
GetFaceLivenessSessionResults后端获取 StatusConfidence、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.AuditImagesLimit0-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" }

响应重点字段:

字段说明
StatusCREATED / IN_PROGRESS / SUCCEEDED / FAILED / EXPIRED 等状态
Confidence0-100,活体置信度
ReferenceImage可用于后续人脸比对的人脸参考图
AuditImages[]审计图,最多 4 张

5. 业务结论映射

AWS StatusConfidence建议结论
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