221 lines
4.9 KiB
Markdown
221 lines
4.9 KiB
Markdown
|
|
# 真实身份认证服务部署指南
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
本文档说明如何配置和部署真实的阿里云身份认证服务,实现生产环境的身份证二要素验证功能。
|
|||
|
|
|
|||
|
|
## 前置条件
|
|||
|
|
|
|||
|
|
### 1. 阿里云账号配置
|
|||
|
|
|
|||
|
|
#### 1.1 开通CloudAuth服务
|
|||
|
|
1. 登录阿里云控制台
|
|||
|
|
2. 开通"实人认证"服务
|
|||
|
|
3. 确认计费方式和额度
|
|||
|
|
|
|||
|
|
#### 1.2 创建AccessKey
|
|||
|
|
1. 进入 RAM 控制台
|
|||
|
|
2. 创建专用的RAM用户
|
|||
|
|
3. 生成AccessKey ID和Secret
|
|||
|
|
4. 分配CloudAuth相关权限
|
|||
|
|
|
|||
|
|
### 2. 必需权限
|
|||
|
|
|
|||
|
|
确保AccessKey具有以下权限之一:
|
|||
|
|
- `AliyunCloudAuthFullAccess` (完整权限)
|
|||
|
|
- 或自定义权限策略,包含:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"Version": "1",
|
|||
|
|
"Statement": [
|
|||
|
|
{
|
|||
|
|
"Effect": "Allow",
|
|||
|
|
"Action": [
|
|||
|
|
"cloudauth:VerifyMaterial"
|
|||
|
|
],
|
|||
|
|
"Resource": "*"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配置步骤
|
|||
|
|
|
|||
|
|
### 1. 环境变量配置(推荐)
|
|||
|
|
|
|||
|
|
创建 `.env` 文件或设置系统环境变量:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 阿里云身份认证服务配置
|
|||
|
|
export ALIBABA_CLOUD_ACCESS_KEY_ID=your_real_access_key_id
|
|||
|
|
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=your_real_access_key_secret
|
|||
|
|
export ALIBABA_CLOUD_REGION=ap-southeast-1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 应用配置文件
|
|||
|
|
|
|||
|
|
`application.yml` 已配置支持环境变量:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
aliyun:
|
|||
|
|
cloudauth:
|
|||
|
|
region: ${ALIBABA_CLOUD_REGION:ap-southeast-1}
|
|||
|
|
endpoint: cloudauth.aliyuncs.com
|
|||
|
|
access-key-id: ${ALIBABA_CLOUD_ACCESS_KEY_ID:}
|
|||
|
|
access-key-secret: ${ALIBABA_CLOUD_ACCESS_KEY_SECRET:}
|
|||
|
|
connection-timeout: 10000
|
|||
|
|
response-timeout: 10000
|
|||
|
|
biz-type: ID_2META
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 验证配置
|
|||
|
|
|
|||
|
|
启动应用后,通过日志确认配置是否正确:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
✅ 【真实验证模式】执行阿里云身份认证验证
|
|||
|
|
开始调用阿里云CloudAuth身份认证API
|
|||
|
|
调用阿里云API - BizType: ID_2META, BizId: identity_verify_xxx
|
|||
|
|
阿里云API响应 - RequestId: xxx, VerifyStatus: PASS
|
|||
|
|
✅ 阿里云身份认证成功 - 姓名和身份证号码匹配
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 测试验证
|
|||
|
|
|
|||
|
|
### 1. API测试
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST http://localhost:8081/user/identity/verify \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authorization: Bearer your_jwt_token" \
|
|||
|
|
-d '{
|
|||
|
|
"realName": "张三",
|
|||
|
|
"idNumber": "110101199003077777"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 预期响应
|
|||
|
|
|
|||
|
|
**成功响应:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "实名认证成功",
|
|||
|
|
"data": {
|
|||
|
|
"passed": true,
|
|||
|
|
"resultStatus": "VERIFY_SUCCESS",
|
|||
|
|
"bizId": "SUCCESS_1234567890",
|
|||
|
|
"verifyTime": "2024-09-01 15:30:45"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**失败响应:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 400,
|
|||
|
|
"message": "身份证号码与姓名不匹配",
|
|||
|
|
"data": {
|
|||
|
|
"passed": false,
|
|||
|
|
"resultStatus": "FAIL_1234567890",
|
|||
|
|
"resultMessage": "身份证号码与姓名不匹配"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 错误排查
|
|||
|
|
|
|||
|
|
### 1. 常见错误及解决方案
|
|||
|
|
|
|||
|
|
#### AccessKeyId无效
|
|||
|
|
```
|
|||
|
|
错误:AccessKeyId无效,请检查阿里云访问凭证配置
|
|||
|
|
```
|
|||
|
|
**解决方案:**
|
|||
|
|
- 检查AccessKey ID是否正确
|
|||
|
|
- 确认AccessKey未被删除或禁用
|
|||
|
|
|
|||
|
|
#### 权限不足
|
|||
|
|
```
|
|||
|
|
错误:RAM权限不足,请确保AccessKey具有CloudAuth服务权限
|
|||
|
|
```
|
|||
|
|
**解决方案:**
|
|||
|
|
- 为RAM用户添加CloudAuth相关权限
|
|||
|
|
- 检查权限策略是否正确
|
|||
|
|
|
|||
|
|
#### 网络连接失败
|
|||
|
|
```
|
|||
|
|
调用阿里云身份认证API失败: Connect to cloudauth.aliyuncs.com:443 timed out
|
|||
|
|
```
|
|||
|
|
**解决方案:**
|
|||
|
|
- 检查服务器网络连接
|
|||
|
|
- 确认防火墙设置
|
|||
|
|
- 验证DNS解析
|
|||
|
|
|
|||
|
|
### 2. 日志监控
|
|||
|
|
|
|||
|
|
关键日志位置:
|
|||
|
|
- 认证开始:`【真实验证模式】执行阿里云身份认证验证`
|
|||
|
|
- API调用:`开始调用阿里云CloudAuth身份认证API`
|
|||
|
|
- API响应:`阿里云API响应 - RequestId: xxx`
|
|||
|
|
- 认证结果:`阿里云身份认证成功/失败`
|
|||
|
|
|
|||
|
|
## 性能和限制
|
|||
|
|
|
|||
|
|
### 1. API限制
|
|||
|
|
- 单个阿里云账号默认QPS限制:50次/秒
|
|||
|
|
- 单次查询响应时间:通常在500ms-2000ms
|
|||
|
|
|
|||
|
|
### 2. 成本考虑
|
|||
|
|
- 按调用次数计费
|
|||
|
|
- 建议设置用量监控和预警
|
|||
|
|
|
|||
|
|
### 3. 优化建议
|
|||
|
|
- 实现缓存机制(已验证用户短期内不重复验证)
|
|||
|
|
- 添加请求重试机制
|
|||
|
|
- 监控API成功率
|
|||
|
|
|
|||
|
|
## 安全建议
|
|||
|
|
|
|||
|
|
### 1. 凭证管理
|
|||
|
|
- ✅ 使用环境变量而非硬编码
|
|||
|
|
- ✅ 定期轮换AccessKey
|
|||
|
|
- ✅ 使用RAM用户而非主账号
|
|||
|
|
- ✅ 最小权限原则
|
|||
|
|
|
|||
|
|
### 2. 数据保护
|
|||
|
|
- ✅ 身份证号码脱敏存储
|
|||
|
|
- ✅ 日志中敏感信息脱敏
|
|||
|
|
- ✅ HTTPS传输加密
|
|||
|
|
|
|||
|
|
### 3. 监控告警
|
|||
|
|
- 设置API调用失败率告警
|
|||
|
|
- 监控异常认证模式
|
|||
|
|
- 记录所有认证操作审计日志
|
|||
|
|
|
|||
|
|
## 部署检查清单
|
|||
|
|
|
|||
|
|
### 部署前检查
|
|||
|
|
- [ ] 阿里云CloudAuth服务已开通
|
|||
|
|
- [ ] AccessKey已创建并具备正确权限
|
|||
|
|
- [ ] 环境变量已正确配置
|
|||
|
|
- [ ] 网络连通性已验证
|
|||
|
|
|
|||
|
|
### 部署后验证
|
|||
|
|
- [ ] 应用启动日志无错误
|
|||
|
|
- [ ] 真实身份数据测试通过
|
|||
|
|
- [ ] 错误身份数据正确拒绝
|
|||
|
|
- [ ] API响应时间在可接受范围内
|
|||
|
|
- [ ] 日志记录完整且敏感信息已脱敏
|
|||
|
|
|
|||
|
|
### 监控设置
|
|||
|
|
- [ ] API调用量监控
|
|||
|
|
- [ ] 错误率告警
|
|||
|
|
- [ ] 响应时间监控
|
|||
|
|
- [ ] 成本监控
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
*文档更新时间:2024年9月1日*
|
|||
|
|
*适用版本:v1.0+(已集成真实阿里云API)*
|