tencent cloud

文档反馈

配置 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 为本案例中域名,此处需要将域名替换为实际添加的域名。
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持