身份识别平台 通过域名和路径与负载均衡监听器进行绑定,实现对经过负载均衡监听器的 HTTPS 的程序化流量进行身份验证和权限控制。本文档将介绍如何通过 IAP 为已经添加到负载均衡的域名和路径进行身份验证。 前提条件
您已成功创建 HTTP 监听器或 HTTPS 监听器,并且域名可以正常访问。操作详情请参考 负载均衡快速入门。 操作步骤
步骤一:确认负载均衡域名配置
本文以防护www.example.com
域名为例。
2. 在实例管理页面,选择所在地域,在实例列表中单击目标实例右侧操作列的配置监听器。
3. 在监听器管理页签的 HTTP/HTTPS 监听器区域,单击目标监听器左侧的+查看域名详情。
4. 确认负载均衡域名配置信息为:负载均衡实例的 ID 为“lb-****”,监听器的名称为“test”,监听器转发规则所监听的域名为www.example.com
,右侧详情页面有 IAP 配置跳转链接。
步骤二:在 IAP 中为域名和路径配置开启或者关闭认证功能
通过步骤一中的 IAP 跳转链接可以进入 IAP 的配置页面,在这里可以对 CLB 实例下的域名和路径维度进行开启/关闭 IAP 配置。
2. 在实例管理页面,选择 CLB 实例 > 监听器 > url,开启/关闭 IAP 即可。
字段说明
域名:需要配置IAP的域名 www.example.com
。
url: 具体的路径 /
。
IAP认证:IAP 认证的开关。
策略:当 IAP 认证服务不可用时 CLB 的转发行为。
说明:
默认“拒绝”,当 IAP 服务在极端情况下不可用时,CLB 会阻止客户请求。
步骤三:跳转到在 CAM 中配置相关的策略
本文以配置www.example.com/
的认证为例。
2. 在策略页面,单击创建自定义策略。
3. 在创建自定义策略页签的效果选择 Allow;服务选择 Cloud Load Balancer Identity Auth(clbia); 动作选择 All ;根据 六段式资源 格式填写资源内容。 生成的策略的 json 格式如下所示:
字段说明:
CLB资源六段式:qcs::clbia:${region}:uin/${uin}:clb/${loadbalancerid}/${vport}/${protocol}/${domain}/${uLocationId}
步骤四:把策略关联到用户或者用户组
2. 关联用户或者用户组。
步骤五:结果验证
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"
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
为本案例中域名,此处需要将域名替换为实际添加的域名。
本页内容是否解决了您的问题?