[
https://issues.apache.org/jira/browse/SCB-2093?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Smart Yang updated SCB-2093:
----------------------------
Description:
*RBAC数据结构*
*账户信息*
||accout||password||role||createTime||...||
|{color:#4c9aff}root{color}| |{color:#4c9aff}admin{color}| | |
| | |developer| | |
| | |null| | |
1. 创建用户时,{color:#4c9aff}用户名和密码{color}是必须项
2. 账户可以{color:#4c9aff}新增和删除{color},root用户不能删除,账户名不可以修改,账户均支持修改密码
3. 创建账号时若未添加角色信息,则默认为空角色,{color:#4c9aff}空角色不分配任何权限{color}
4. 删除普通用户时, 若用户存在active token,有两种方案:
a) 直接删除,包括该用户的角色(用户与角色为多对一关系)
b) 使token失效,然后再删除
选用a方案,删除用户账号会删除用户所有信息
*角色权限*
*角色权限资源*
admin角色的权限:账户和服务管理
{code:json}
{
"account": {Verbs: []string{
"/v4/account",
"/v4/account/{name},
........
},
"service": {Verbs: []string{
"/v4/{project}/registry/microservices",
"/v4/{project}/registry/microservices/{serviceId}"
.......
}}
{code}
developer角色的权限:服务管理
{code:json}
{
"service": {Verbs: []string{
"/v4/{project}/registry/microservices",
"/v4/{project}/registry/microservices/{serviceId}"
.......
}}
{code}
*角色与权限对应关系表*
||role|| *privilege*||
|{color:#4c9aff}admin{color}| 拥有最高权限
"account": \{Verbs: []string{"*"}},
"service": \{Verbs: []string{"*"}},|
|{color:#4c9aff}developer{color}|"service": \{Verbs: []string{"*"}},|
|null|null|
|tester(new role)| 用户从服务列表中选择资源分配给角色{code:json}
{
"service": {Verbs: []string{
"/registry/microservices/\{serviceId}",
.......
}} {code}|
1. {color:#4c9aff}admin角色{color}拥有最高权限,包含账户资源和服务资源列表,且该角色不可修改删除;
developer角色拥有服务列表的所有权限,且该角色不可修改删除
2. 用户可以新增、删除角色
3.
添加的新角色可以从{color:#4c9aff}api列表中选择{color}可访问的{color:#4c9aff}服务资源列表{color},支持修改角色可访问的服务资源列表
4. 删除角色时会删除该角色所对应的权限列表,账户对应的角色会变成空角色,空角色的账户没有任何权限
*REST API*
*账户管理(已有API)*
||Heading 1||Heading 2||Parameter ||Request Body||Description ||
|POST|/v4/token|null|{ "id": "string", "{color:#0747a6}name{color}": "string",
"{color:#0747a6}password{color}": "string", "role": "string",
"tokenExprirationTime": "string", "currentPassword": "string", " status":
"string" }|token is the only credential to access rest API, before you access
any API, you need to get a token|
|GET|/v4/account|token|null|list all user accounts|
|POST|/v4/account|token|{ "id": "string", "{color:#4c9aff}name{color}":
"string", "{color:#4c9aff}password{color}": "string", "role": "string",
"tokenExprirationTime": "string", "currentPassword": "string", "status":
"string" }|create user account|
|GET|/v4/account/ \{name}|token、name|null| |
|DELETE|v4/account/\{name}|token、name|null| |
|POST|/v4/account/ \{name}/password|token、name| {
"{color:#4c9aff}currentPassword{color}":"string",
"{color:#4c9aff}password{color}":"string" }| |
*角色权限管理*
||Method ||Request URI ||Parameter || Request Body || Description
||
|GET|{color:#403294}/v4/privilege/account/role{color}|token|null|{color:#0747a6}查询{color}系统的role以及role对应的资源|
|POST|{color:#403294}/v4/privilege/account/role{color}|token|{code:java}
{
roleId: "string"
service:[]string{}
}{code}|添加新角色并为新角色{color:#0747a6}添加API资源列表{color}|
|PUT|{color:#403294}/v4/privilege/account/role{color}|token| {code:java}
{
roleId: "string"
service:[]string{}
}{code}|修改角色可访问的{color:#0747a6}API资源列表{color}|
|GET|{color:#403294}/v4/privilege/account/role/ \{roleId}{color}|
roleId、token|null|查询相应角色可访问的{color:#0747a6}API资源列表{color},admin角色还将返回{color:#0747a6}account资源{color}|
|DELETE
|{color:#403294}/v4/privilege/account/role/\{roleId}{color}|roleId、token
|null | 删除角色,但admin、developer角色不可删除|
was:
*RBAC数据结构*
*账户信息*
||accout||password||role||createTime||...||
|root| |admin| | |
| | |developer| | |
| | |null| | |
1. 创建用户时,用户名和密码是必须项
2. 账户可以新增和删除,root用户不能删除,账户名不可以修改,账户均支持修改密码
3. 创建账号时若未添加角色信息,则默认为空角色,空角色不分配任何权限
4. 删除普通用户时, 若用户存在active token,有两种方案:
a) 直接删除,包括该用户的角色(用户与角色为多对一关系)
b) 使token失效,然后再删除
选用a方案,删除用户账号会删除用户所有信息
*角色权限*
*角色权限资源*
admin角色的权限:账户和服务管理
{code:json}
{
"account": {Verbs: []string{
"/v4/account",
"/v4/account/{name},
........
},
"service": {Verbs: []string{
"/v4/{project}/registry/microservices",
"/v4/{project}/registry/microservices/{serviceId}"
.......
}}
{code}
developer角色的权限:服务管理
{code:json}
{
"service": {Verbs: []string{
"/v4/{project}/registry/microservices",
"/v4/{project}/registry/microservices/{serviceId}"
.......
}}
{code}
*角色与权限对应关系表*
||role|| *privilege*||
|admin| 拥有最高权限
"account": \{Verbs: []string{"*"}},
"service": \{Verbs: []string{"*"}},|
|developer|"service": \{Verbs: []string{"*"}},|
|null|null|
|tester(new role)| 用户从服务列表中选择资源分配给角色{code:json}
{
"service": {Verbs}: []string{
/registry/microservices/\{serviceId}"
.......
}} {code}|
1. admin角色拥有最高权限,包含账户资源和服务资源列表,且该角色不可修改删除;
developer角色拥有服务列表的所有权限,且该角色不可修改删除
2. 用户可以新增、删除角色
3. 添加的新角色可以从api列表中选择可访问的服务资源列表,支持修改角色可访问的服务资源列表
4. 删除角色时会删除该角色所对应的权限列表,账户对应的角色会变成空角色,空角色的账户没有任何权限
*REST API*
*账户管理(已有API)*
||Heading 1||Heading 2||Parameter ||Request Body||Description ||
|POST|/v4/token|null|{ "id": "string", "name": "string", "password": "string",
"role": "string", "tokenExprirationTime": "string", "currentPassword":
"string", " status": "string" }|token is the only credential to access rest
API, before you access
any API, you need to get a token|
|GET|/v4/account|token|null|list all user accounts|
|POST|/v4/account|token|{ "id": "string", "name": "string", "password":
"string", "role": "string", "tokenExprirationTime": "string",
"currentPassword": "string", "status": "string" }|create user account|
|GET|/v4/account/ \{name}|token、name|null| |
|DELETE|v4/account/\{name}|token、name|null| |
|POST|/v4/account/ \{name}/password|token、name| \{ "currentPassword":"string",
"password":"string" }| |
*角色权限管理*
||Method ||Request URI ||Parameter || Request Body || Description
||
|GET|+{color:#172b4d}/v4/privilege/account/role{color}+|token|null|查询系统的role以及role对应的资源|
|POST|+/v4/privilege/account/role+|token|{code:java}
{
roleId: "string"
service:[]string{}
}{code}|添加新角色并为新角色添加API资源列表|
|PUT|+/v4/privilege/account/role+|token| {code:java}
{
roleId: "string"
service:[]string{}
}{code}|修改角色可访问的API资源列表|
|GET|+/v4/privilege/account/role/ \{roleId}+|
roleId、token|null|查询相应角色可访问的API资源列表,admin角色还将返回account资源|
|DELETE |+/v4/privilege/account/role/\{roleId}+ |roleId、token |null |
删除角色,但admin、developer角色不可删除|
> Supplement the role module of rbac
> ----------------------------------
>
> Key: SCB-2093
> URL: https://issues.apache.org/jira/browse/SCB-2093
> Project: Apache ServiceComb
> Issue Type: New Feature
> Components: Service-Center
> Reporter: Smart Yang
> Priority: Major
>
>
> *RBAC数据结构*
> *账户信息*
> ||accout||password||role||createTime||...||
> |{color:#4c9aff}root{color}| |{color:#4c9aff}admin{color}| | |
> | | |developer| | |
> | | |null| | |
> 1. 创建用户时,{color:#4c9aff}用户名和密码{color}是必须项
> 2. 账户可以{color:#4c9aff}新增和删除{color},root用户不能删除,账户名不可以修改,账户均支持修改密码
> 3. 创建账号时若未添加角色信息,则默认为空角色,{color:#4c9aff}空角色不分配任何权限{color}
> 4. 删除普通用户时, 若用户存在active token,有两种方案:
> a) 直接删除,包括该用户的角色(用户与角色为多对一关系)
> b) 使token失效,然后再删除
> 选用a方案,删除用户账号会删除用户所有信息
>
> *角色权限*
> *角色权限资源*
> admin角色的权限:账户和服务管理
> {code:json}
> {
> "account": {Verbs: []string{
> "/v4/account",
> "/v4/account/{name},
> ........
> },
> "service": {Verbs: []string{
> "/v4/{project}/registry/microservices",
> "/v4/{project}/registry/microservices/{serviceId}"
> .......
> }}
> {code}
> developer角色的权限:服务管理
> {code:json}
> {
> "service": {Verbs: []string{
> "/v4/{project}/registry/microservices",
> "/v4/{project}/registry/microservices/{serviceId}"
> .......
> }}
> {code}
> *角色与权限对应关系表*
>
> ||role|| *privilege*||
> |{color:#4c9aff}admin{color}| 拥有最高权限
> "account": \{Verbs: []string{"*"}},
> "service": \{Verbs: []string{"*"}},|
> |{color:#4c9aff}developer{color}|"service": \{Verbs: []string{"*"}},|
> |null|null|
> |tester(new role)| 用户从服务列表中选择资源分配给角色{code:json}
> {
> "service": {Verbs: []string{
> "/registry/microservices/\{serviceId}",
> .......
> }} {code}|
>
> 1. {color:#4c9aff}admin角色{color}拥有最高权限,包含账户资源和服务资源列表,且该角色不可修改删除;
> developer角色拥有服务列表的所有权限,且该角色不可修改删除
> 2. 用户可以新增、删除角色
> 3.
> 添加的新角色可以从{color:#4c9aff}api列表中选择{color}可访问的{color:#4c9aff}服务资源列表{color},支持修改角色可访问的服务资源列表
> 4. 删除角色时会删除该角色所对应的权限列表,账户对应的角色会变成空角色,空角色的账户没有任何权限
>
> *REST API*
> *账户管理(已有API)*
>
> ||Heading 1||Heading 2||Parameter ||Request Body||Description ||
> |POST|/v4/token|null|{ "id": "string", "{color:#0747a6}name{color}":
> "string", "{color:#0747a6}password{color}": "string", "role": "string",
> "tokenExprirationTime": "string", "currentPassword": "string", " status":
> "string" }|token is the only credential to access rest API, before you access
> any API, you need to get a token|
> |GET|/v4/account|token|null|list all user accounts|
> |POST|/v4/account|token|{ "id": "string", "{color:#4c9aff}name{color}":
> "string", "{color:#4c9aff}password{color}": "string", "role": "string",
> "tokenExprirationTime": "string", "currentPassword": "string", "status":
> "string" }|create user account|
> |GET|/v4/account/ \{name}|token、name|null| |
> |DELETE|v4/account/\{name}|token、name|null| |
> |POST|/v4/account/ \{name}/password|token、name| {
> "{color:#4c9aff}currentPassword{color}":"string",
> "{color:#4c9aff}password{color}":"string" }| |
>
> *角色权限管理*
> ||Method ||Request URI ||Parameter || Request Body || Description
> ||
> |GET|{color:#403294}/v4/privilege/account/role{color}|token|null|{color:#0747a6}查询{color}系统的role以及role对应的资源|
> |POST|{color:#403294}/v4/privilege/account/role{color}|token|{code:java}
> {
> roleId: "string"
> service:[]string{}
> }{code}|添加新角色并为新角色{color:#0747a6}添加API资源列表{color}|
> |PUT|{color:#403294}/v4/privilege/account/role{color}|token| {code:java}
> {
> roleId: "string"
> service:[]string{}
> }{code}|修改角色可访问的{color:#0747a6}API资源列表{color}|
> |GET|{color:#403294}/v4/privilege/account/role/ \{roleId}{color}|
> roleId、token|null|查询相应角色可访问的{color:#0747a6}API资源列表{color},admin角色还将返回{color:#0747a6}account资源{color}|
> |DELETE
> |{color:#403294}/v4/privilege/account/role/\{roleId}{color}|roleId、token
> |null | 删除角色,但admin、developer角色不可删除|
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)