You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IBM Cloud Code Engine中X-Require-Whisk-Auth的等效机制及实现方法

IBM Cloud Code Engine Functions 替代 X-Require-Whisk-Auth 的验证方案

等效机制

Code Engine Functions 没有直接对应 X-Require-Whisk-Auth 的内置头部验证,但可以通过自定义API密钥验证实现相同的访问控制逻辑——本质都是通过请求头部携带密钥,在函数入口校验合法性。

实现步骤

1. 安全存储API密钥

  • 生成一个API密钥(可在IBM Cloud控制台创建,或使用现有服务凭证中的密钥),将其存储为Code Engine的环境变量(例如命名为 AUTH_API_KEY),避免硬编码到代码中。
  • 更安全的方式是使用Code Engine的**Secret(秘密)**存储密钥,再挂载为函数的环境变量,Secret会被加密存储,降低泄露风险。

2. 在函数中添加验证逻辑

在函数入口处,检查请求头部的密钥是否与预设密钥匹配,可沿用原有的 X-Require-Whisk-Auth 头部名称,也可自定义(如 X-Api-Key)。

Node.js 示例

exports.main = async (req) => {
  const providedKey = req.headers['x-require-whisk-auth'];
  const validKey = process.env.AUTH_API_KEY;

  if (!providedKey || providedKey !== validKey) {
    return {
      statusCode: 401,
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ error: 'Unauthorized access' })
    };
  }

  // 执行业务逻辑
  return {
    statusCode: 200,
    body: JSON.stringify({ message: 'Success' })
  };
};

Python 示例

import os
from flask import request, jsonify

def main(request):
    provided_key = request.headers.get('x-require-whisk-auth')
    valid_key = os.environ.get('AUTH_API_KEY')

    if not provided_key or provided_key != valid_key:
        return jsonify({'error': 'Unauthorized access'}), 401

    # 执行业务逻辑
    return jsonify({'message': 'Success'}), 200

3. 验证机制测试

调用函数时携带正确的密钥头部,示例curl命令:

curl -H "X-Require-Whisk-Auth: YOUR_VALID_API_KEY" https://your-code-engine-function-url

密钥错误或缺失时会返回401状态码,验证通过则正常执行函数逻辑。

额外建议

  • 若需复杂身份验证(如OAuth2、JWT),可结合IBM Cloud Identity等服务,但简单密钥验证已完全替代 X-Require-Whisk-Auth 的作用。
  • 定期轮换API密钥,降低泄露风险。

内容的提问来源于stack exchange,提问作者data_henrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:10:07