对用户进行身份校验
默认云托管不提供鉴权服务,如果客户没有实现鉴权功能,则在某些情况下存在安全问题。如果您的服务要处理来自客户的请求,则最佳实践是只让允许的用户进行访问。
您可以通过自定义域名功能,并根据要求配置相关 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"
}
如需查询客户详细信息,请参考 用户详情。