1. 功能概览

Attention

地球号所有的请求都应该查看shop,corp,zone是否被拉黑。而且这个检查要在RAM里做。

1.1. 控制因素

地球号的访问控制包含四部分参与:APP控制,DEV控制,API控制,TOKEN控制,ROUE控制,LOGIN控制。一个完整的应用令牌/用户令牌要经历上述三部分分。注意,API,ROUE,TOKEN这三部分控制都有人工数据表干涉的情况。主要的方式是拉黑,冻结。

1.1.1. 应用控制

应用控制(RAM.APP)是一个典型的数据库控制,每个API来了后要查询APP表,看这个app_id有没有被拉黑等。

1.1.2. 设备控制

设备控制(RAM.DEV)是一个典型的数据库控制,每个API来了后要查询DEV表,看这个dev_id有没有被拉黑等。

1.1.3. 登录控制

登录控制(RAM.LOGIN)是一个典型的数据库控制,每个API来了后要查询login表,看这个login_id有没有被拉黑等。

1.1.4. 用户控制

用户控制(RAM.LOGIN)是一个典型的数据库控制,只对用户令牌有意义,用户令牌来了,RAM会检查这个令牌User_id在不在用户表中,有没有被拉黑。如果两项都通过,才算通过用户控制。通过用户控制后才能进行ROUE控制,因为通过这个控制,我们才能给用户一个天然的None角色,也就是基本注册角色。

1.1.5. 接口控制

接口控制(RAM.API)API在定义的时候本身定义了它要求的访问控制,这些访问控制有些是互相重复的。接口控制包含两部分,接口定义携带的接口头字段和接口人工控制表。

接口定义控制

[!info] 接口定义控制说明在接口系统头字段里。标记了接口要求的令牌特征条件,角权特征条件,接口形式条件。

字段 样式 说明
XduaApiTokenColor X/R/G/B API要求的令牌颜色。 XRGB允许司中颜色令牌与或者*允许所有颜色的令牌。
XduaApiTokenType A/U API要求的令牌类型,A代表app是应用令牌,U代表usr是用户令牌。
XduaApiTokenAudience aHEVYhE1 API要求的令牌受牌方,例如,社区(zone)操作的API要求令牌的持有者(aud字段)必须是"aHEVYhE1"这个应用app_id
XduaApiTokenSubject AnoNymuS API要求的令牌订阅者,地球号的所有算法服务,数据服务,登录服务,验码服务API要求令牌必须是匿名令牌。地球号的平台服务要求令牌不能是匿名令牌。
XduaApiTokenShop XdUaXduA API要求的令牌店铺必须是哪些店铺。
XduaApiRole Root,God 为什么命名为role而不是roles,因为在地球号的接口设计宗旨里,尽量保证一个接口只有一个角色。
XduaApiRule CreateZone XduaApiAction完全保持一致。
XduaApiAction CreateZone 接口允许的动作列表,半角逗号隔开
XduaApiHttpSchema HTTP/HTTPS API要求访问的协议类型,因为网关传来的是大写,所以必须大写。

Note

为什么在接口已经有XduaApiRule的情况下还要设计XduaApiRole,这是一个保险措施,理论上说,一个完善的角权系统,仅仅靠权限就能做到访问控制,但是权限的配置是经历过角色的配置的。在配置的过程中,可能会有人工失误的地方,某人不小心给与一个小的角色一个很大的注明系统权限。因为系统权限哪些角色能够拥有都是确定的,比方说,CreateZone,只能XdUaXduA里的Root发出,为了防止有人把CreateZone分配给Root以外的人。此时应该用XduaApiRole做下限制,算是ailure issurance,最后的保险。

接口人工控制

接口人工控制,是以apiram表为基础进行的。api表里规定了每个api的enable,expire。对这些字段的控制可以让运营人员对具体的某个api进行关闭,拉黑,冻结,下线。

1.1.6. 令牌控制

令牌控制(RAM.TOKEN)TOKEN在生成的时候本身定义了它的约束。但同时,一个应用令牌一旦发放出去,就应该要做到实时监控。并且能够随时下线,拉黑,冻结,上线接口。这个时候就需要token表来做人工干涉。用户令牌在登录后,如果在做关键操作,此时,系统管理员应该立刻远程关闭令牌,立即掐断这个令牌。

令牌定义控制

[!info] 令牌定义控制说明在接口系统头字段里。标记了接口要求的令牌特征条件,角权特征条件,接口形式条件。

字段 样式 说明
clr X/R/G/B 令牌颜色
typ app/user 令牌类型,app是应用令牌,usr是用户令牌。
aud aHEVYhE1 令牌受牌方
sub AnoNymuS 令牌订阅者
dev AnoNymuS 规定了什么设备可以发起本令牌
dev AnoNymuS 规定了令牌可以在什么IP发起
api AddZone.CreateZone 令牌规定了哪些API可以使用本接口,半角逗号隔开。
shop XdUaXduA 令牌订阅店铺
role Root,God 规定了令牌要求的用户角色
rule CreateZone 规定了令牌要求的用户权限

令牌人工控制

令牌人工控制,是以token表为基础进行的。它提供了人工干涉令牌有效性的机制。包括注销一个应用令牌,拉黑一个应用令牌,注销一个用户令牌。详述如下:

功能 说明
注销一个应用令牌 如果一个应用令牌泄露,用户需要注销它
拉黑一个应用令牌 如果一个应用令牌试图恶意访问地球号,拉黑他,并给与解释
冻结一个应用令牌 如果一个应用令牌访问频繁,或者事先规定了它的冻结时间,此时要冻结这个令牌一段时间
注销一个用户令牌 如果一个用户的登录令牌泄露,他需要重新登录一次,这样可以自动注销掉原来的令牌

1.1.7. ROUE控制

ROUE是地球号的角权访问控制机制。最终会查出用户的权限,和API,TOKEN要求的权限比对,打到控制的要求。当然系统还提供了对roue级别的人工控制。

results matching ""

    No results matching ""