更新时间:2024-10-28 GMT+08:00

APP授权

功能介绍

APP创建成功后,还不能访问API,如果想要访问某个环境上的API,需要将该API在该环境上授权给APP。授权成功后,APP即可访问该环境上的这个API。

URI

POST /v1/{project_id}/apic/instances/{instance_id}/app-auths

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见API参考的“附录 > 获取项目ID”章节。

instance_id

String

实例ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

env_id

String

需要授权的环境编号

最小长度:1

最大长度:65

app_ids

Array of strings

APP的编号列表

api_ids

Array of strings

API的编号列表。

auth_tunnel

String

授权通道类型:

  • GREEN:绿色通道

  • NORMAL:非绿色通道

实例开启green_tunnel特性时可以开启绿色通道,此字段不填默认为不使用绿色通道

缺省值:NORMAL

auth_whitelist

Array of strings

绿色通道授权白名单。

允许白名单中的IP不使用认证信息访问,auth_tunnel = GREEN时生效

auth_blacklist

Array of strings

绿色通道授权黑名单。

auth_tunnel = GREEN时生效

visit_params

Array of ApiAuthVisitParam objects

访问参数列表。

表4 ApiAuthVisitParam

参数

是否必选

参数类型

描述

api_id

String

需要授权的API编号

app_id

String

需要授权的APP编号

visit_param

String

访问参数

支持英文、数字、下划线和中划线,多个参数以英文格式下的逗号隔开,单个参数须以英文或数字结尾且不能重复,且单个参数长度不超过255个字符。

响应参数

状态码: 201

表5 响应Body参数

参数

参数类型

描述

[数组元素]

Array of ApiAuthRelations objects

API与APP的授权关系列表

表6 ApiAuthRelations

参数

参数类型

描述

api_id

String

API编号

auth_result

AuthResult object

授权结果

auth_time

String

授权时间

id

String

授权关系编号

app_id

String

APP编号

auth_role

String

授权者

  • PROVIDER:API提供者授权

  • CONSUMER:API消费者授权

auth_tunnel

String

授权通道类型:

  • GREEN:绿色通道

  • NORMAL:非绿色通道

此字段不填默认为不使用绿色通道

缺省值:NORMAL

auth_whitelist

Array of strings

绿色通道授权白名单。

允许白名单中的IP不使用认证信息访问

auth_blacklist

Array of strings

绿色通道授权黑名单

visit_params

String

访问参数。

表7 AuthResult

参数

参数类型

描述

status

String

授权结果

  • SUCCESS:授权成功

  • SKIPPED:跳过

  • FAILED:授权失败

error_msg

String

授权失败错误信息

error_code

String

授权失败错误码

api_name

String

授权失败的API名称

app_name

String

授权失败的APP名称

状态码: 400

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表12 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

{
  "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
  "app_ids" : [ "356de8eb7a8742168586e5daf5339965" ],
  "api_ids" : [ "5f918d104dc84480a75166ba99efff21" ]
}

响应示例

状态码: 201

Created

[ {
  "api_id" : "5f918d104dc84480a75166ba99efff21",
  "auth_result" : {
    "status" : "SUCCESS"
  },
  "auth_time" : "22020-08-04T04:02:22.482227344Z",
  "id" : "dd29b33ae4394e3b924b582c6b40880b",
  "app_id" : "356de8eb7a8742168586e5daf5339965",
  "auth_role" : "PROVIDER",
  "auth_tunnel" : "NORMAL"
} ]

状态码: 400

Bad Request

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:api_ids. Please refer to the support documentation"
}

状态码: 401

Unauthorized

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

状态码: 403

Forbidden

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

状态码: 404

Not Found

{
  "error_code" : "APIG.3004",
  "error_msg" : "App 356de8eb7a8742168586e5daf5339965 does not exist"
}

状态码: 500

Internal Server Error

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

状态码

状态码

描述

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

错误码

请参见错误码