【从0-1业务中台】打造多应用接入的强大账户体系

3,652 阅读8分钟

1.引言

为了公司多个产品在中台的顺利接入,在多应用接入平台中,账户体系是连接不同应用和服务的桥梁,一个有效的账户体系不仅保证了应用接入的连贯性,还确保了数据安全和隐私保护。

2. 设计目标和原则

2.1 设计目标

2.1.1 安全性

  • 数据保护:确保所有用户数据都受到强有力的保护,防止数据泄露或未授权访问。
  • 认证强度:实施强大的认证机制,如两步验证或多因素认证,以增强账户安全。

2.1.2 灵活性

  • 适应多种应用:设计能够适应不同应用特性和需求的账户体系。
  • 用户体验:确保账户体系在不同应用间提供一致且流畅的用户体验。

2.1.3 可扩展性

  • 支持增长:账户体系应能够轻松适应用户数量的增长和新应用的加入。
  • 模块化设计:采用模块化设计,以便在需要时可以轻松扩展或修改功能。

2.2 设计原则

2.2.1 用户友好

  • 简化流程:设计简单直观的注册和授权接入流程,减少用户操作步骤。
  • 清晰的指引:为用户提供明确的指引和帮助,以便于他们理解和使用账户体系。

2.2.2 数据隐私

  • 加密技术:使用先进的加密技术来保护用户数据。
  • 遵守法规:确保所有操作符合数据保护法规,如欧盟的通用数据保护条例(GDPR)。

2.2.3 一致性

  • 统一的界面和操作:在不同应用间提供统一的用户界面和操作流程。
  • 数据一致性:确保用户的信息在所有应用中保持一致和最新。

3. 数据结构设计

3.1. 接入应用信息表

【功能描述】

存储接入应用基本信息。

【表结构】

字段名字段说明数据类型长度空否
id主键bigint20N
app_id应用IDbigint20N
app_secret应用密钥varchar32N
app_type应用类型tinyint1N
app_status应用状态tinyint1N
app_name应用名称varchar64N
app_desc应用描述varchar500
app_icon应用图标varchar200
...............

【索引】

索引名引用字段索引说明索引类型
app_id_indexapp_id应用ID唯一索引Unique

【字段说明】

● 应用ID:为每个应用分配唯一id,区分不同应用。

● 应用密钥:32位加密密钥

● 应用类型:0:未指定 1:社交 2:游戏 ...

● 应用状态:0:开发中 1:测试中 2:已上线 ...

3.2.接入客户端信息表

【功能描述】

存储接入客户端基本信息。

【表结构】

字段名字段说明数据类型长度空否
id主键bigint20N
app_id所属应用IDbigint20N
client_account客户端账号bigint20N
client_secret客户端密钥varchar32N
client_type客户端类型int2N
client_name客户端名称varchar64N
...............

【索引】

索引名引用字段索引说明索引类型
client_account_indexclient_acount客户端账号ID唯一索引Unique
app_id_indexapp_id应用ID查询索引Normal

【字段说明】

● 客户端账号:为每个接入客户端分配一个接入账号,区分不同应用下不同账号。

● 客户端密钥:32位加密密钥

● 客户端类型:1:Android客户端 2:IOS客户端 3:PHP服务 4:GO服务  5:Python服务 6:Java服务 ...

  • 备注:其余权限相关的多个表不再一一赘述

4. 应用、客户端注册

4.1. 应用注册

4.1.1. 功能描述

应用注册功能允许管理员在中台后台管理系统中添加新的应用。这个过程包括填写应用的基本信息,如应用名称、类型和描述,并生成相应的密钥信息。

4.1.2. 注册步骤

  1. 填写应用信息:管理员在中台后台管理系统中填写应用的基本信息,包括应用名称、类型、描述等。
  2. 提交信息:提交上述信息以进行审批。
  3. 生成密钥:系统自动为新注册的应用生成唯一的app_idapp_secret
  4. 确认注册:系统存储应用信息并确认注册成功,管理员收到app_idapp_secret

image.png

4.2. 客户端注册

4.2.1. 功能描述

客户端注册允许用户申请在特定应用下接入其客户端。这个过程涉及中台管理对客户端的注册进行审核,审核通过后派发客户端密钥信息,以便用户可以完成接入。

4.2.2. 注册步骤

  1. 提交注册申请:用户提交客户端注册申请,包括所属应用ID、客户端类型、名称等信息。
  2. 审核申请:中台管理人员审核客户端注册申请,确保信息准确无误并符合应用要求。
  3. 派发密钥:审核通过后,系统生成客户端账号client_account和客户端密钥client_secret
  4. 完成注册:用户收到客户端密钥信息后,即可利用这些凭证完成客户端的接入配置。
  • 备注:其余权限相关的多个表的设计同样遵循中台管理系统的标准化流程,确保整个接入过程的一致性和安全性。

image.png

5. 安全与合规

5.1. 用户认证授权

5.1.1. 功能描述

实现用户登录中台系统的认证机制,包括验证用户身份和发放访问令牌。认证过程需要确保安全性,同时提供必要的密码保护和账号监控功能。

5.1.2. 认证授权步骤

  1. 初始化客户端上下文:用户在客户端初始化应用上下文时,输入应用ID (app_id)、客户端账号(client_account)和密钥(clinet_secret)。
  2. 加密和发送数据:客户端系统对用户输入的参数进行AES加密处理,并将加密后的参数作为请求体发送至中台认证接口。
  3. 验证应用和账号:中台服务首先检查应用ID和客户端账号是否存在,若不存在则返回错误提示。
  4. 参数比对:如果应用ID和客户端账号存在,中台服务将请求中的参数与数据库中存储的数据进行比对。
  5. 检查账号状态:若密钥比对成功,中台服务接着检查客户端账号的状态,确认是否有登录限制(如账号锁定、需要二次验证等)。
  6. 生成令牌:确认账号状态无误后,中台服务生成访问令牌(Access Token)和刷新令牌(Refresh Token)。
  7. 令牌存储和设置过期时间:中台服务将生成的令牌存储于令牌存储库,并设置相应的过期时间。
  8. 返回令牌完成认证:中台服务最后返回访问令牌和刷新令牌给客户端用户,完成认证流程。

企业微信截图_1704760810444.png

5.2. 数据加密与传输安全

5.2.1. 功能描述

数据在中台系统间的传输安全是通过一系列综合措施来保证的,这些措施确保数据在任何时候、任何地点的传输都是安全的,无论是在静态存储时,还是在跨网络传输时。

5.2.2 实施策略

端到端加密 (E2EE)

  • TLS 1.3协议:我们采用当前最先进的传输层安全协议,确保所有数据在客户端和服务端之间的传输都是加密的,并使用完备的前向保密性。

加密算法的选择

  • AES-256加密标准:对所有敏感数据采用AES-256算法进行加密,这是一种广泛认可的、安全的加密标准。

数据传输的安全实践

  • HTTPS强制执行:确保所有的数据传输都是通过HTTPS进行的,强制加密所有的通信,避免数据在传输过程中被截取。

密钥管理

  • 自动化的密钥轮换:采用临时密钥,自动化的密钥管理系统可以定期更换密钥,确保即使在密钥泄露的情况下,攻击者也无法解密旧的通信记录。

网络安全措施

  • 内网隔离和访问控制:对于客户端服务通过云服务中的内网隔离和严格的访问控制,确保只有授权的系统可以访问或传输敏感数据。

安全性测试

  • 定期的安全测试:进行定期的安全测试,包括渗透测试和漏洞扫描,以侦测和修补可能的安全漏洞。 通过这些策略,我们的中台账户体系确保了多应用接入环境中数据的完整性、保密性和可用性,为用户和客户提供了必要的信任和安全保障。

企业微信截图_17047616908761.png

6. 总结

本文深入探讨了在“从0-1业务中台”背景下,多应用接入平台中账户体系的重要性和实现方法。我们从设计原则到实际的数据结构,再到用户认证和安全合规的实施,全面覆盖了构建一个高效、安全、且用户友好的账户体系的各个方面。通过这种方式,我们不仅提高了应用间的互操作性和数据的安全性,还优化了用户体验,为企业创造了更大的价值。