[ 
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||...||
|root| |admin| | |
| | |developer| | |
| | |null| | |

1. 创建用户时,用户名和密码是必须项

2. 账户可以新增和删除,root用户不能删除,账户名不可以修改,账户均支持修改密码

3. 创建账号时若未添加角色信息,则默认为空角色,空角色不分配任何权限

4. 删除普通用户时, 若用户存在active token,有两种方案:

a) 直接删除,包括该用户的角色(用户与角色为多对一关系)

b) 使token失效,然后再删除

选用a方案,删除用户账号会删除用户所有信息

 

*角色权限*

*角色权限资源*

admin角色的权限:账户和服务管理

"account": {Verbs: []string{

                         "/v4/account",

                         "/v4/account\{name}},

                        ........

                  },
 "service":   {Verbs: []string{

                       "/v4/\{project}/registry/microservices",

                      "/v4/\{project}/registry/microservices/\{serviceId}"

                     .......

}},

developer角色的权限:服务管理

"service":   {Verbs: []string{

                       "/v4/\{project}/registry/microservices",

                      "/v4/\{project}/registry/microservices/\{serviceId}"

                     .......

}}

*角色与权限对应关系表*

 
||role||  *privilege*||
|admin| 拥有最高权限
"account":  \{Verbs: []string{"*"}},
"service":  \{Verbs: []string{"*"}},|
|developer|"service":  \{Verbs: []string{"*"}},|
|null|null|
|tester(new role)| 用户从服务列表中选择资源分配给角色"service":   {Verbs: []string{
                   "/v4/\{project}/registry/microservices",
                   "/v4/\{project}/registry/microservices/\{serviceId}"
                    .......
}}|

 

1. admin角色拥有最高权限,包含账户资源和服务资源列表,且该角色不可修改删除;

  developer角色拥有服务列表的所有权限,且该角色不可修改删除

2. 用户可以新增、删除角色

3. 添加的新角色可以从api列表中选择可访问的服务资源列表

4. 不提供修改角色类型,但角色的权限可以修改(即可访问的API列表)

5. 删除普通角色时会删除该角色管理列表,不会删除用户信息

 

 

 

角色管理

 
||Method ||Request URI ||Parameter ||Request Body ||Description||
|GET|[​/v4​/account​/role|#/rbac/getAccount]| token| null| 查询系统的role种类|
|POST|[​/v4​/account​/role|#/rbac/getAccount] | role、token|{ role:  string }| 
新增role|
| DELETE| [​/v4​/account​/role|#/rbac/getAccount] | role、token|  \{ role:  
string }| 删除role,但admin角色不可删除|

 

 

为角色分配权限

 
||Method  ||Request URI ||Parameter ||  Request Body    ||    Description       
      ||
|GET| 
[/v4/account/|#/rbac/getAccount]role/\{role}|role、token|null|查询相应角色可访问的API资源列表,
 admin角色还将返回account资源|
|POST|[/v4​/account​/|#/rbac/getAccount]role/\{role}|role、token|API 
List|为角色添加API资源列表|
|PUT|[/v4​/account​/|#/rbac/getAccount]role/\{role}|role、token| API 
List|修改角色可访问的API资源列表|
|DELETE|[/v4​/account​/|#/rbac/getAccount]role/\{role}|role、token| null|删除角色|

 

 GET、POST、PUT方法返回的列表中admin角色除了返回API资源列表

还返回相应角色对应的用户列表

 

 

  was:
 
 *account info*
||accout||password||role||createTime||...||
|root| |admin| | |
|user| |developer| | |

1. 创建用户时,用户名和密码是必须项

2. 不支持修改用户名,可以修改密码

3. root用户不能删除;删除普通用户时, 若用户存在active token,有两种方案:

a) 直接删除,包括该用户的角色(用户与角色为一对一关系)

b) 使token失效,然后再删除

个人选用a方案,删除用户账号会删除用户所有信息

4.  创建账号时可以添加角色信息,也可以创建账号之后关联账号与角色信息

 

*role mange*

 
||role||  *privilege*||
|admin| |
|developer|choose api
 from api list|
|tester(add role)| |

1. 用户可以新增角色

2. admin角色拥有最高权限,且该角色不可删除

3. 普通角色可以从api列表中选择可访问的api列表

4. 不提供修改角色类型,但角色的权限可以修改(即可访问的API列表)

5. 删除普通角色时会删除该角色管理列表,不会删除用户信息

 

admin角色的权限:账户和服务管理

"account": \{Verbs: []string{"*"}},
 "service":   \{Verbs: []string{"*"}},

普通角色的权限:服务管理

"service": \{Verbs: []string{"*"}},

 

角色管理

 
||Method ||Request URI ||Parameter ||Request Body ||Description||
|GET|[​/v4​/account​/role|#/rbac/getAccount]| token| null| 查询系统的role种类|
|POST|[​/v4​/account​/role|#/rbac/getAccount] | role、token|{ role:  string }| 
新增role|
| DELETE| [​/v4​/account​/role|#/rbac/getAccount] | role、token|  \{ role:  
string }| 删除role,但admin角色不可删除|

 

 

为角色分配权限

 
||Method  ||Request URI ||Parameter ||  Request Body    ||    Description       
      ||
|GET| 
[/v4/account/|#/rbac/getAccount]role/\{role}|role、token|null|查询相应角色可访问的API资源列表,
 admin角色还将返回account资源|
|POST|[/v4​/account​/|#/rbac/getAccount]role/\{role}|role、token|API 
List|为角色添加API资源列表|
|PUT|[/v4​/account​/|#/rbac/getAccount]role/\{role}|role、token| API 
List|修改角色可访问的API资源列表|
|DELETE|[/v4​/account​/|#/rbac/getAccount]role/\{role}|role、token| null|删除角色|

 

 GET、POST、PUT方法返回的列表中admin角色除了返回API资源列表

还返回相应角色对应的用户列表

 

 


> 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||...||
> |root| |admin| | |
> | | |developer| | |
> | | |null| | |
> 1. 创建用户时,用户名和密码是必须项
> 2. 账户可以新增和删除,root用户不能删除,账户名不可以修改,账户均支持修改密码
> 3. 创建账号时若未添加角色信息,则默认为空角色,空角色不分配任何权限
> 4. 删除普通用户时, 若用户存在active token,有两种方案:
> a) 直接删除,包括该用户的角色(用户与角色为多对一关系)
> b) 使token失效,然后再删除
> 选用a方案,删除用户账号会删除用户所有信息
>  
> *角色权限*
> *角色权限资源*
> admin角色的权限:账户和服务管理
> "account": {Verbs: []string{
>                          "/v4/account",
>                          "/v4/account\{name}},
>                         ........
>                   },
>  "service":   {Verbs: []string{
>                        "/v4/\{project}/registry/microservices",
>                       "/v4/\{project}/registry/microservices/\{serviceId}"
>                      .......
> }},
> developer角色的权限:服务管理
> "service":   {Verbs: []string{
>                        "/v4/\{project}/registry/microservices",
>                       "/v4/\{project}/registry/microservices/\{serviceId}"
>                      .......
> }}
> *角色与权限对应关系表*
>  
> ||role||  *privilege*||
> |admin| 拥有最高权限
> "account":  \{Verbs: []string{"*"}},
> "service":  \{Verbs: []string{"*"}},|
> |developer|"service":  \{Verbs: []string{"*"}},|
> |null|null|
> |tester(new role)| 用户从服务列表中选择资源分配给角色"service":   {Verbs: []string{
>                    "/v4/\{project}/registry/microservices",
>                    "/v4/\{project}/registry/microservices/\{serviceId}"
>                     .......
> }}|
>  
> 1. admin角色拥有最高权限,包含账户资源和服务资源列表,且该角色不可修改删除;
>   developer角色拥有服务列表的所有权限,且该角色不可修改删除
> 2. 用户可以新增、删除角色
> 3. 添加的新角色可以从api列表中选择可访问的服务资源列表
> 4. 不提供修改角色类型,但角色的权限可以修改(即可访问的API列表)
> 5. 删除普通角色时会删除该角色管理列表,不会删除用户信息
>  
>  
>  
> 角色管理
>  
> ||Method ||Request URI ||Parameter ||Request Body ||Description||
> |GET|[​/v4​/account​/role|#/rbac/getAccount]| token| null| 查询系统的role种类|
> |POST|[​/v4​/account​/role|#/rbac/getAccount] | role、token|{ role:  string }| 
> 新增role|
> | DELETE| [​/v4​/account​/role|#/rbac/getAccount] | role、token|  \{ role:  
> string }| 删除role,但admin角色不可删除|
>  
>  
> 为角色分配权限
>  
> ||Method  ||Request URI ||Parameter ||  Request Body    ||    Description     
>         ||
> |GET| 
> [/v4/account/|#/rbac/getAccount]role/\{role}|role、token|null|查询相应角色可访问的API资源列表,
>  admin角色还将返回account资源|
> |POST|[/v4​/account​/|#/rbac/getAccount]role/\{role}|role、token|API 
> List|为角色添加API资源列表|
> |PUT|[/v4​/account​/|#/rbac/getAccount]role/\{role}|role、token| API 
> List|修改角色可访问的API资源列表|
> |DELETE|[/v4​/account​/|#/rbac/getAccount]role/\{role}|role、token| null|删除角色|
>  
>  GET、POST、PUT方法返回的列表中admin角色除了返回API资源列表
> 还返回相应角色对应的用户列表
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to