tencent cloud

配置 IAP 对负载均衡的域名和路径的程序化访问进行身份验证
最后更新时间:2024-11-07 09:17:55
配置 IAP 对负载均衡的域名和路径的程序化访问进行身份验证
最后更新时间: 2024-11-07 09:17:55
身份识别平台 通过域名和路径与负载均衡监听器进行绑定,实现对经过负载均衡监听器的 HTTPS 的程序化流量进行身份验证和权限控制。本文档将介绍如何通过 IAP 为已经添加到负载均衡的域名和路径进行身份验证。

前提条件

您已成功创建 HTTP 监听器或 HTTPS 监听器,并且域名可以正常访问。操作详情请参考 负载均衡快速入门

操作步骤

步骤一:确认负载均衡域名配置

本文以防护www.example.com域名为例。
1. 登录 负载均衡控制台,在左侧导航栏中,单击实例管理
2. 实例管理页面,选择所在地域,在实例列表中单击目标实例右侧操作列的配置监听器
3. 监听器管理页签的 HTTP/HTTPS 监听器区域,单击目标监听器左侧的+查看域名详情。

4. 确认负载均衡域名配置信息为:负载均衡实例的 ID 为“lb-****”,监听器的名称为“test”,监听器转发规则所监听的域名为www.example.com,右侧详情页面有 IAP 配置跳转链接。

步骤二:在 IAP 中为域名和路径配置开启或者关闭认证功能

通过步骤一中的 IAP 跳转链接可以进入 IAP 的配置页面,在这里可以对 CLB 实例下的域名和路径维度进行开启/关闭 IAP 配置。
1. 登录 IAP 控制台,在左侧导航栏中,选择实例管理
2. 在实例管理页面,选择 CLB 实例 > 监听器 > url,开启/关闭 IAP 即可。

字段说明
域名:需要配置IAP的域名 www.example.com
url: 具体的路径 /
IAP认证:IAP 认证的开关。
策略:当 IAP 认证服务不可用时 CLB 的转发行为。
说明:
默认“拒绝”,当 IAP 服务在极端情况下不可用时,CLB 会阻止客户请求。

步骤三:跳转到在 CAM 中配置相关的策略

本文以配置www.example.com/ 的认证为例。
1. 登录 CAM 控制台,在左侧导航栏中,单击策略
2. 策略页面,单击创建自定义策略
3. 创建自定义策略页签的效果选择 Allow;服务选择 Cloud Load Balancer Identity Auth(clbia); 动作选择 All ;根据 六段式资源 格式填写资源内容。

生成的策略的 json 格式如下所示:

字段说明:
CLB资源六段式:qcs::clbia:${region}:uin/${uin}:clb/${loadbalancerid}/${vport}/${protocol}/${domain}/${uLocationId}

步骤四:把策略关联到用户或者用户组

1. 策略管理 页面,选择策略用法
2. 关联用户或者用户组。


步骤五:结果验证

说明:
本例以 Python SDK 为例。
1. 安装或者升级SDK:
pip install tencentcloud-simple-sign
2. 在程序中调用 SDK 并且发送请求:
发送请求时,需要在 HTTP 头中包含“Tencent-Proxy-Authorization:”字段,该字段使用 SDK 中的 sign 方法生成,该方法定义如下:
以下是向 CLB 发送 GET 请求的完整示例,实际使用时,只需要将 SECRET_ID、SECRET_KEY、HOST、时间戳替换为实际配置值即可。如果使用临时密钥,调用 sign 方法时还需传入 TOKEN。

import requests
from simple_sign.sign import sign
SECRET_ID = "your_secret_id"
SECRET_KEY = "your_secret_key"
TOKEN = "your_token" # only for temporary key
HOST = "test.com"

hour = 3600
expiration = hour * 2
now = int(time.time())
sig = sign(SECRET_ID, SECRET_KEY, HOST, now, now + expiration, TOKEN)

url = "https://www.example/"
headers = {
'Tencent-Proxy-Authorization:': sig,
'Host': HOST
}

response = requests.get(url, headers=headers, verify=False)

print(sig)
print(response.status_code)
print(response.text)
3. 通过上述 SDK 从程序中发起请求,得到正常的响应码200,说明 IAP 认证功能正常。
注意:
www.example.com 为本案例中域名,此处需要将域名替换为实际添加的域名。


本页内容是否解决了您的问题?
您也可以 联系销售 提交工单 以寻求帮助。

文档反馈