跳到主要内容

对用户进行身份校验

默认云托管不提供鉴权服务,如果客户没有实现鉴权功能,则在某些情况下存在安全问题。如果您的服务要处理来自客户的请求,则最佳实践是只让允许的用户进行访问。

您可以通过自定义域名功能,并根据要求配置相关 path, 同时为 path 开启鉴权功能,来设置云托管服务的访问权限。

用户创建

  • 1、登录腾讯云托管
  • 2、在导航菜单扩展能力 中选择 云后台, 点击前往云后台
  • 3、在云后台中选择 用户管理 添加用户, 设置用户高名称和密码

用户权限配置

云托管服务默认只能以下几种角色客户访问:

  • 默认内部用户
  • 默认外部用户
  • 自定义策略访问

注意: 其中在 用户创建 步骤创建的客户为 默认内部用户

如果不想某些用户访问,可以给客户解绑 默认内部用户默认外部用户 角色

自定义策略

  • 1、登录腾讯云托管
  • 2、在导航菜单扩展能力 中选择 云后台, 点击前往云后台
  • 3、在云后台中选择 权限控制, 在权限控制页面选择 策略管理, 如果没有该选项,可以刷新页面。
  • 4、点击新增自定义策略,填写表单:
    • 策略标识: 英文填写
    • 策略名称: 中英文填写
    • 策略内容: 我们以允许 /api 访问为例, 如下在 action 配置 /api 路径即可。
      {
      "statement": [
      {
      "action": "cloudrun:/api",
      "resource": "*",
      "effect": "allow"
      }
      ],
      "version": "1.0"
      }
  • 5、配置完自定义策略之后,将改策略关联到需要访问该资源的角色上,然后将该角色中关联需要访问的用户即可。

获取用户 Token

参考用户名密码登录 OpenAPI 获取用户登录 token。

通过自定义域名访问云托管

我们以设置路由为 /api 开头的服务为例。

参考自定义域名功能,在域名关联资源时,鉴权开关选择打开, 路径透穿根据实际情况填写,比如我们 api 路径为 /api, 我们不开启路径透传的情况下,我们使用 /api/users 访问,后端服务收到的 url 为 /users, 反之开启情况下收到的为 /api/users

我们配置完成之后,通过以下方式访问:

curl -H "Content-Type: application/json" -H "Authorization: Bearer <获取到的Token>" https://<自定义域名>/api/users

即可获取到访问结果。

通过其他登录方式获取 Token

可以参考用户登录设置

获取用户信息

我们会将客户的 token 透穿给后端,后端可以通过获取请求 Header 中 Authorization 字段获取到请求 Token, 注意去除 Bearer 字段。

然后通过 jwt 解码 token, 解码后 user_id 字段为用户的唯一标识。解析后 payload 内容如下:

{
"iss": "",
"sub": "22332323",
"aud": "",
"exp": 1750073415,
"iat": 1750066215,
"at_hash": "",
"scope": "",
"project_id": "",
"provider_type": "username",
"meta": {
"wxOpenId": "",
"wxUnionId": ""
},
"user_id": "1934543672625225729",
"user_type": "internal"
}

如需查询客户详细信息,请参考 用户详情