鉴权管理

鉴权配置

查询鉴权开关信息

请求示例:

  1. GET /core/v1/auth/status

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "optionSwitch": {
  5. "auth": "true"
  6. }
  7. }

用户管理

用户登陆

用于控制台进行用户登陆操作

请求示例:

  1. POST /core/v1/user/login
参数名类型描述是否必填
namestring用户名
passwordstring用户密码

应答示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "loginResponse": {
  5. "token": "xxx",
  6. "name": "xxx",
  7. "user_id": "xxx",
  8. "role": "xxx"
  9. }
  10. }
参数名类型描述
codeuint32六位返回码
infostring返回信息
loginResponse命名空间
tokenstring用户Token, 用于接口请求访问
namestring用户名
rolestring当前用户角色, (admin:超级账户, main:主账户, sub:子账户)
user_idstring当前用户ID

创建用户

批量创建用户至北极星

请求示例:

  1. POST /core/v1/users
  2. Header X-Polaris-Token: {访问凭据}
  1. [
  2. {
  3. "name": "polarismesh",
  4. "password": "polarismesh",
  5. "comment": "polarismesh",
  6. "source": "Polaris"
  7. }
  8. ]
参数名类型描述是否必填
namestring用户名
passwordstring用户密码
commentstring用户备注
sourcestring用户来源

应答示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "size": 1,
  5. "responses": [
  6. {
  7. "code": 200000,
  8. "info": "execute success"
  9. }
  10. ]
  11. }

数据结构:

user

参数名类型描述
idstring用户ID
namestring用户名称
passwordstring用户密码
sourcestring用户来源
auth_tokenstring用户访问凭据
token_enablebool用户访问凭据是否可用
commentstring用户备注信息
ctimestring用户创建时间
mtimestring用户修改时间

更新用户

更新用户的备注信息数据

请求示例:

  1. PUT /core/v1/user
  2. Header X-Polaris-Token: {访问凭据}
  1. {
  2. "id": "xxx",
  3. "comment": "polarismesh"
  4. }
参数名类型描述是否必填
idstring用户ID
commentstring用户备注

响应示例:

更新用户密码

用户重新更新密码, 如果密码更新成功, 则会一并更新对应用户的访问凭据

请求示例:

  1. PUT /core/v1/user/password
  2. Header X-Polaris-Token: {访问凭据}
  1. {
  2. "id": "xxx",
  3. "old_password": "xxx",
  4. "new_password": "xxx"
  5. }
参数名类型描述是否必填
idstring用户ID
old_passwordstring旧密码
new_passwordstring新密码

响应示例:

删除用户

批量删除北极星中的用户

请求示例

  1. POST /core/v1/users/delete
  2. Header X-Polaris-Token: {访问凭据}
  1. [
  2. {
  3. "id": "xxx"
  4. }
  5. ]
参数名类型描述是否必填
idstring用户ID

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "responses": [
  5. {
  6. "code": 200000,
  7. "info": "execute success"
  8. }
  9. ]
  10. }

查看用户列表

根据相关条件对用户列表进行查询

请求示例:

  1. GET /core/v1/users?id=xxx&name=xxx&source=xxx&group_id=xxx&offset=xxx&limit=xxx
  2. Header X-Polaris-Token: {访问凭据}
参数名类型描述是否必填
idstring用户ID
namestring用户名称, 当前仅提供全模糊搜索
sourcestring用户来源
group_idstring用户组ID, 用于查询某个用户组下用户列表
offsetint查询偏移量, 默认为0
limitint本次查询条数, 最大为100

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "amount": 1,
  5. "size": 1,
  6. "users": [
  7. {
  8. "id": "xxx",
  9. "name": "xxx",
  10. "source": "",
  11. "auth_token": "",
  12. "token_enable": true,
  13. "comment": "",
  14. "ctime": "2022-02-09 19:48:53",
  15. "mtime": "2022-02-09 19:48:53",
  16. }
  17. ]
  18. }

查看用户Token

查询用户的Token凭据信息,通过用户ID或者用户名进行查询

请求示例:

  1. GET /core/v1/user/token?id=xxx
  2. Header X-Polaris-Token: {访问凭据}
参数名类型描述是否必填
idstring用户ID

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "user": {
  5. "id": "xxx",
  6. "auth_token": "xxx",
  7. "token_enable": true
  8. }
  9. }

更新用户Token状态

对用户Token的使用状态进行修改, 如果用户的Token被设置为禁用状态, 则该Token后续无法用于访问北极星接口以及资源, 需使用主账户或者超级账户进行解封

请求示例:

  1. PUT /core/v1/user/token/status
  2. Header X-Polaris-Token: {访问凭据}
  1. {
  2. "id": "xxx",
  3. "token_enable": false
  4. }
参数名类型描述是否必填
idstring用户ID
token_enablebool当前Token可用状态, true为启用, false为禁用

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success"
  4. }

重置用户Token

重置用户的Token, 当Token重置之后,原先的Token失效并且无法进行访问北极星接口以及资源

请求示例:

  1. PUT /core/v1/user/token/refresh
  2. Header X-Polaris-Token: {访问凭据}
  1. {
  2. "id": "xxx"
  3. }
参数名类型描述是否必填
idstring用户ID

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success"
  4. }

用户组管理

查询用户组列表

请求示例:

  1. GET /core/v1/usergroups?{key}={value}
  2. Header X-Polaris-Token: {访问凭据}

支持的URL参数

参数名类型描述是否必填
idstring用户组ID
namestring用户组名称, 当前仅提供全模糊搜索
user_idstring用户ID, 用于查询某个用户关联的用户组列表
offsetint查询偏移量, 默认为0
limitint本次查询条数, 最大为100

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "amount": 1,
  5. "size": 1,
  6. "userGroups": [
  7. {
  8. "id": "xxx",
  9. "name": "xxx",
  10. "auth_token": null,
  11. "token_enable": true,
  12. "comment": "",
  13. "ctime": "2022-02-09 21:46:33",
  14. "mtime": "2022-02-09 21:46:33",
  15. "user_count": 1
  16. }
  17. ]
  18. }

数据结构:

userGroups

参数名类型描述
idstring用户组ID
namestring用户组名称
auth_tokenstring用户组访问凭据
token_enablebool用户组访问凭据是否可用
commentstring用户组备注信息
ctimestring用户组创建时间
mtimestring用户组修改时间
user_countint当前用户组下用户的数量

创建用户组

请求示例:

  1. POST /core/v1/usergroup
  2. Header X-Polaris-Token: {访问凭据}
  1. {
  2. "name": "GROUP_1",
  3. "comment": "",
  4. "relation": {
  5. "users": [{
  6. "id": "xxx"
  7. }, {
  8. "id": "xxx"
  9. }]
  10. }
  11. }
参数名类型描述
namestring用户组名称
commentstring用户组备注信息
relationuser列表当前用户组关联的用户ID

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success"
  4. }

更新用户组

请求示例:

  1. PUT /core/v1/usergroup
  2. Header X-Polaris-Token: {访问凭据}
  1. [
  2. {
  3. "id": "xxx",
  4. "comment": "xxx",
  5. "add_relations": {
  6. "users": [{
  7. "id": "xxx"
  8. }, {
  9. "id": "xxx"
  10. }]
  11. },
  12. "remove_relations": {
  13. "users": [{
  14. "id": "xxx"
  15. }, {
  16. "id": "xxx"
  17. }]
  18. }
  19. }
  20. ]
参数名类型描述
idstring用户组ID
commentstring用户组备注信息
add_relationuser列表当前用户组追加关联的用户ID
remove_relationuser列表当前用户组移除关联的用户ID

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "size": 1,
  5. "responses": [
  6. {
  7. "code": 200000,
  8. "info": "execute success"
  9. }
  10. ]
  11. }

删除用户组

请求示例:

  1. POST /core/v1/usergroups/delete
  2. Header X-Polaris-Token: {访问凭据}
  1. [
  2. {
  3. "id": "xxx"
  4. }
  5. ]

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "responses": [
  5. {
  6. "code": 200000,
  7. "info": "execute success"
  8. }
  9. ]
  10. }

获取用户组详细信息

请求示例:

  1. GET /core/v1/usergroup/detail?id=xxx
  2. Header X-Polaris-Token: {访问凭据}

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "userGroup": {
  5. "id": "xxx",
  6. "name": "xxx",
  7. "token_enable": true,
  8. "comment": "",
  9. "ctime": "2022-02-09 21:46:33",
  10. "mtime": "2022-02-09 21:46:33",
  11. "relation": {
  12. "users": [
  13. {
  14. "id": "xxx",
  15. "name": "xxx",
  16. "source": "",
  17. "token_enable": true,
  18. "comment": "",
  19. "ctime": "2022-02-09 19:48:53",
  20. "mtime": "2022-02-09 19:48:53",
  21. }
  22. ]
  23. },
  24. "user_count": 1
  25. }
  26. }

查询用户组Token

请求示例:

  1. GET /core/v1/usergroup/token?id=xxx
  2. Header X-Polaris-Token: {访问凭据}

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "userGroup": {
  5. "id": "xxx",
  6. "auth_token": "xxx",
  7. "token_enable": true
  8. }
  9. }

更新用户组Token状态

请求示例:

  1. PUT /core/v1/usergroup/token/status
  2. Header X-Polaris-Token: {访问凭据}
  1. {
  2. "id": "xxx",
  3. "token_enable": false
  4. }

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success"
  4. }

重置用户组Token

请求示例:

  1. PUT /core/v1/usergroup/token/refresh
  2. Header X-Polaris-Token: {访问凭据}
  1. {
  2. "id": "xxx"
  3. }

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success"
  4. }

鉴权策略管理

查询策略列表

请求示例:

  1. GET /core/v1/auth/strategies?{key}={value}
  2. Header X-Polaris-Token: {访问凭据}

支持的URL参数

参数名类型描述是否必填
idstring策略ID
namestring策略名称, 当前仅提供全模糊搜索
defaultstring“0” 查询自定义策略;“1” 查询默认策略;不填则为查询(默认+自定义)鉴权策略
res_idstring资源ID
res_typestring资源类型, namespace、service、config_group
principal_idstring成员ID
principal_typestring成员类型, user、group
show_detailbool是否显示策略详细
offsetint查询偏移量, 默认为0
limitint本次查询条数, 最大为100

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "amount": 1,
  5. "size": 1,
  6. "authStrategies": [
  7. {
  8. "id": "xxx",
  9. "name": "xxx",
  10. "principals": {
  11. "users": [
  12. {
  13. "id": "xxx",
  14. "name": "xxx"
  15. }
  16. ],
  17. "groups": [
  18. {
  19. "id": "xxx",
  20. "name": "xxx"
  21. }
  22. ]
  23. },
  24. "resources": {
  25. "strategy_id": null,
  26. "namespaces": [],
  27. "services": [
  28. {
  29. "id": "xxx",
  30. "namespace": "default",
  31. "name": "Demo-1"
  32. },
  33. {
  34. "id": "xxx",
  35. "namespace": "default",
  36. "name": "Demo-2"
  37. }
  38. ],
  39. "config_groups": []
  40. },
  41. "action": "READ_WRITE",
  42. "comment": "Default Strategy",
  43. "ctime": "2022-02-09 19:48:53",
  44. "mtime": "2022-02-09 19:48:53",
  45. "default_strategy": true
  46. },
  47. ]
  48. }

查询策略详细

根据策略ID查询该策略的具体详细信息

请求示例:

  1. GET /core/v1/auth/strategy/detail?id=xxx
  2. Header X-Polaris-Token: {访问凭据}
参数名类型描述是否必填
idstring策略ID

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "authStrategy": {
  5. "id": "xxx",
  6. "name": "xxx",
  7. "principals": {
  8. "users": [
  9. {
  10. "id": "xxx",
  11. "name": "xxx"
  12. }
  13. ],
  14. "groups": []
  15. },
  16. "resources": {
  17. "namespaces": [],
  18. "services": [
  19. {
  20. "id": "xxx",
  21. "namespace": "default",
  22. "name": "Demo-1"
  23. },
  24. {
  25. "id": "xxx",
  26. "namespace": "default",
  27. "name": "Demo-2"
  28. }
  29. ],
  30. "config_groups": []
  31. },
  32. "action": "READ_WRITE",
  33. "comment": "Default Strategy",
  34. "ctime": "2022-02-09 19:43:26",
  35. "mtime": "2022-02-15 23:20:48",
  36. "default_strategy": true
  37. }
  38. }

创建鉴权策略

请求示例:

  1. POST /core/v1/auth/strategy
  2. Header X-Polaris-Token: {访问凭据}
  1. {
  2. "name": "xxx",
  3. "comment": "xxx",
  4. "principals": {
  5. "users": [
  6. {
  7. "id": "xxx"
  8. }
  9. ],
  10. "groups": [
  11. {
  12. "id": "xxx"
  13. }
  14. ]
  15. },
  16. "resources": {
  17. "namespaces": [
  18. {
  19. "id": "Polaris"
  20. }
  21. ],
  22. "services": [
  23. {
  24. "id": "Polaris"
  25. }
  26. ],
  27. "config_groups": [
  28. {
  29. "id": "Polaris"
  30. }
  31. ]
  32. }
  33. }

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success"
  4. }

更新鉴权策略

请求示例:

  1. PUT /core/v1/auth/strategies
  2. Header X-Polaris-Token: {访问凭据}
  1. [
  2. {
  3. "id": "xxx",
  4. "comment": "xxx",
  5. "add_principals": {
  6. "users": [{
  7. "id": "xxx"
  8. },{
  9. "id": "xxx"
  10. }],
  11. "groups": [{
  12. "id": "xxx"
  13. }]
  14. },
  15. "remove_principals": {
  16. "users": [{"id": "xxx"}],
  17. "groups": [{
  18. "id": "xxx"
  19. }]
  20. },
  21. "add_resources": {
  22. "namespaces": [
  23. {
  24. "id":"xxx"
  25. }],
  26. "services": [{
  27. "id":"xxx"
  28. }],
  29. "config_groups": [
  30. {
  31. "id":"xxx"
  32. }]
  33. },
  34. "remove_resources": {
  35. "namespaces": [
  36. {
  37. "id": "xxx"
  38. }
  39. ],
  40. "services": [],
  41. "config_groups": []
  42. }
  43. }
  44. ]

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "size": 1,
  5. "responses": [
  6. {
  7. "code": 200000,
  8. "info": "execute success"
  9. }
  10. ]
  11. }

删除鉴权策略

请求示例:

  1. POST /core/v1/auth/strategies/delete
  2. Header X-Polaris-Token: {访问凭据}
  1. [
  2. {
  3. "id": "xxx"
  4. }
  5. ]

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "size": 1,
  5. "responses": [
  6. {
  7. "code": 200000,
  8. "info": "execute success"
  9. }
  10. ]
  11. }

查看用户/用户组所能操作的所有资源列表数据

请求示例:

  1. GET /core/v1/auth/principal/resources?principal_id=xxx&principal_type=user
  2. Header X-Polaris-Token: {访问凭据}
参数名类型描述是否必填
principal_idstring策略ID
principal_typestringPrincipal类别,user/group

响应示例:

  1. {
  2. "code": 200000,
  3. "info": "execute success",
  4. "resources": {
  5. "namespaces": [
  6. {
  7. "id": "xxx",
  8. "namespace": "xxx",
  9. "name": "xxx"
  10. }
  11. ],
  12. "services": [
  13. {
  14. "id": "xxx",
  15. "namespace": "Polaris",
  16. "name": "xxx"
  17. }
  18. ],
  19. "config_groups": [{
  20. "id": "xxx",
  21. "namespace": "xxx",
  22. "name": "xxx"
  23. }
  24. ]
  25. }
  26. }