为自定义域名配置Basic认证鉴权

在函数计算中,为自定义域名配置Basic认证,可实现基于自定义域名维度的访问权限控制,让绑定的函数服务通过自定义域名安全地被授权用户访问。

背景信息

通过为自定义域名开启Basic认证,客户端需在请求中携带已配置的用户名和密码的Base64编码凭证,仅校验通过后允许访问绑定的函数服务。此功能适用于以下场景:

  • 需通过自有域名(如 example.com)访问函数服务。

  • 需在域名层级统一管控访问权限,而非单个触发器。

  • 需在HTTPS加密通道下保护认证信息。

前提条件

创建函数并为目标函数绑定自定义域名

使用限制

类别

规则

用户数量

每个自定义域名最多配置20个用户。

用户名规范

12~128字符,符合命名规则(字母开头,支持 -_.)。

密码强度

12~128字符,需包含大写字母、小写字母、数字及至少一个特殊符号! @ # $ % ^ & * ( )

安全要求

- 禁止重复密码

- 禁止使用简单组合

- 需定期轮换密码

协议要求

生产环境必须启用HTTPS,HTTP仅用于测试(若泄露凭证,责任由用户承担)

操作步骤

步骤一:为自定义域名配置Basic认证

  1. 登录函数计算控制台,在左侧导航栏,选择高级功能 > 自定义域名

  2. 在顶部菜单栏,选择地域,然后在域名管理页面,单击目标自定义域名右侧操作列的编辑

  3. 在编辑自定义域名页面,展开认证设置,设置以下选项,然后单击保存

    • 认证方式:选择Basic认证

    • 用户列表:单击添加用户,输入符合规范的用户名密码。关于用户名和密码设置要求请参见使用限制

    image

    等待1分钟,配置生效。

步骤二:验证Basic认证

  1. 生成Base64凭证。 使用命令行生成用户名密码的Base64编码(注意替换实际值)。

    # Linux/macOS(务必使用 -n 参数)
    echo -n "username:password" | base64
    # 示例输出:
    dXNlcm5hbWU6cGFzc3dvcmQ=
  2. 发起认证请求。 通过Curl命令测试访问(确保使用HTTPS协议)。

    命令示例如下:

    curl -X GET "yourCustomdomain" -H "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ="

    命令参数说明:

    • 请将示例中yourCustomdomain替换为实际的自定义域名。

    • 携带的请求头Authorization的值必须以Basic开头,且Basic与后面的用户信息之间必须有空格。

常见问题

  • 为什么开启Basic认证后,访问域名提示:authorization require?

    该提示表示通过自定义域名访问函数时,未携带有效Authorization头,请检查请求中是否携带了Header Authorization以及Authorization值中用户信息是否正确。

  • 为什么开启Basic认证后,访问域名提示:basic authorization xxx is not base64 encoded string?

    该提示表示通过自定义域名访问函数时,携带的Authorization的值无效或不是Base64编码后的用户信息。

  • 为什么开启Basic认证后,访问域名提示:Authorization header must start with Basic?

    根据RFC 7617,通过Basic认证发起访问,客户端需要携带Authorization头,Authorization头的值以Basic开头。

  • 开启Basic认证后,是否会产生额外的费用?

    不会。函数计算默认提供的网关相关的功能计费都是在函数调用次数中进行收费,所以不管您是否开启Basic认证,都不会产生额外的费用。