实现针对租户/应用的AK/SK授权与鉴权机制,并提供对OAuth2的部分支持,实现AccessToken的授权范围处理。
场景描述:
- 开放平台下提供应用或租户的AK、SK,实现通过OpenAPI访问相关能力
- 文件分享、Webhook等功能需要对发放的URL提供一定的权限限制
AK/SK实现逻辑:
- IAM: 添加
ci 类型的API,用于处理服务端接口调用
- IAM: 添加
IamCertKernelKind::AkSk 类型并实现 cert_conf cert 的配置
- 网关: 添加对
ak/sk 类型的验签
AccessToken实现逻辑:
- IAM:
ci 接口支持通过创建当前 AK 的 AccessToken 及 Refresh Tokens 并能指定生效时间及授权范围(Scope)(OAuth2 Client-credentials模式: https://oauth.net/2/grant-types/client-credentials/ )
- IAM:
AccessToken 及 Refresh Tokens 生效时间写入 cert 表,绑定到 AK/SK对应的 cert
- IAM: 建立一个名为
OAuth 的内置 Set , 把资源(授权API)绑定到该 SetCate 下(Via: RbumRelFromKind::SetCate, To 资源API)并同步到缓存(对应于add_or_modify_res_rel,add_or_modify_req参数中的groups)
- IAM: 授权范围(Scope) 对应
OAuth Set的一个或多个 SetCate (Via: RbumRelFromKind::SetCate To ?)TODO
- IAM:
AccessToken 及授权范围写入到 iam:cache:token:info:xxx 缓存,值修改为: token_kind, rel_iam_item_id, ak, SetCateIds
- 网关: 修改Token处理的逻辑,如果 Header
Authorization 以 Bearer 开头也作为Token处理,获取rel_iam_item_id的同时也获取到ak, SetCateIds,如果存在ak则忽略 iam:cache:account:info:xx 直接生成 ctx.ident_info , iam_groups=SetCateIds
实现针对租户/应用的AK/SK授权与鉴权机制,并提供对OAuth2的部分支持,实现AccessToken的授权范围处理。
场景描述:
AK/SK实现逻辑:
ci类型的API,用于处理服务端接口调用IamCertKernelKind::AkSk类型并实现cert_confcert的配置ak/sk类型的验签AccessToken实现逻辑:
ci接口支持通过创建当前AK的AccessToken及Refresh Tokens并能指定生效时间及授权范围(Scope)(OAuth2 Client-credentials模式: https://oauth.net/2/grant-types/client-credentials/ )AccessToken及Refresh Tokens生效时间写入cert表,绑定到 AK/SK对应的certOAuth的内置Set, 把资源(授权API)绑定到该SetCate下(Via: RbumRelFromKind::SetCate, To 资源API)并同步到缓存(对应于add_or_modify_res_rel,add_or_modify_req参数中的groups)OAuthSet的一个或多个SetCate(Via: RbumRelFromKind::SetCate To ?)TODOAccessToken及授权范围写入到iam:cache:token:info:xxx缓存,值修改为:token_kind, rel_iam_item_id, ak, SetCateIdsAuthorization以Bearer开头也作为Token处理,获取rel_iam_item_id的同时也获取到ak, SetCateIds,如果存在ak则忽略iam:cache:account:info:xx直接生成ctx.ident_info, iam_groups=SetCateIds