访问控制(Access Control)
登录策略、细粒度权限注册表、多实例 Token,支撑对接方的 B 端角色管理。
登录策略
开放平台为接入应用提供多种登录策略,对接方在控制台应用详情页配置 login_policy:
| 策略 | 说明 | 适用场景 |
|---|---|---|
independent | 独立登录,每个应用独立 | 单应用 |
group_sso | 分组 SSO,同组应用共享 | 产品线内 |
global_sso | 全局 SSO,所有应用共享 | 集团级 |
single_device | 单设备登录 | 安全要求高 |
multi_device | 多设备登录 | 消费级应用 |
ip_bound | IP 绑定 | 内部系统 |
{
"login_policy": "group_sso",
"policy_config": {
"group_key": "yunjii_products",
"max_devices": 3,
"ip_whitelist": []
}
}
多实例 Token
平台支持多实例 Token——每个设备 / 应用实例持有独立 Token,便于对接方做设备级会话管理:
- 每个 Token 携带作用域(
scope:单应用 / 分组 / 全局),用于细粒度授权判断。 - 对接方可在自己的后端按
scope做访问隔离,例如仅允许同组应用共享资源。
权限注册表(B 端 RBAC)
对接方可在自身业务侧通过权限注册表管理 B 端角色:
perm_registry:权限点清单(权限键、名称、所属模块、说明)。b_roles:角色定义,每个角色挂载一组权限点(JSON 列表)。
平台负责"用户是谁"与"用户属于哪个应用/分组",对接方负责"该用户在自己的应用内能做什么"。两者正交,互不侵入。
Token 验证
对接方服务端校验用户 Token:
GET /check_token.php
Authorization: Bearer your_token_here
响应:
{
"code": 1,
"data": {
"user_id": 123,
"openid": "um_abc123",
"scope": "yunjii_products",
"expire_at": "2026-07-12 10:00:00"
}
}
Token 验证返回的 scope 字段标识该 Token 的作用域(单应用 / 分组 / 全局),便于对接方做细粒度授权。
下一步
- 多租户与隔离 — 应用分组与租户隔离
- OAuth API 参考 — 完整 API 文档