具有API密钥访问权限的IBM Cloud Functions

时间:2019-09-06 02:58:25

标签: ibm-cloud ibm-cloud-functions

我创建了一个IBM Cloud Function ACTION并将Web Actions附加到它。在“ API”中,我可以定义要通过“ POST https:// example.com/hello”访问的函数。经过测试,一切正常。

现在,我想通过将API密钥分发给某些客户端来保护此API。在API管理中,可以看到通过激活Require applications to authenticate via API key滑块是可行的。激活后,我还可以对per-key basis上的通话进行速率限制。

问题是:如何创建API密钥?以及如何称呼我的端点?

到目前为止,我去过“管理>访问(IAM)”,然后IBM Cloud API keys并为我创建了一个API密钥(这不是我要的,因为这是我所有帐户的API密钥管理员权限,我想要的是一个API密钥,允许我的用户仅调用我的API)。通过我的API密钥,我像在curl中那样调用了API:

curl -X POST "https:// example.com/hello" -H "X-IBM-Client-Id: <MY-API-KEY>"

还是,我得到了401的未授权...所以我想可能是出了点问题,但我无法确切获得。

1 个答案:

答案 0 :(得分:2)

你是对的。您创建的密钥适用于所有名称空间。以下是为您的API端点创建密钥的文档-https://cloud.ibm.com/docs/api-management?topic=api-management-keys_secrets

这有点令人困惑:(.。创建API端点并将其映射到操作后。不必与Web Gateway一起启用即可与API网关一起使用。

  1. 您可以启用身份验证,然后保存API。这个很重要。文档说Note: You cannot see the tabs until you save your application or API for the first time.

enter image description here

  1. 现在,您可以转到“共享”标签并为此API(而不是您的命名空间)创建一个新的API密钥

enter image description here

3此时我可以使用该密钥。我正在使用Try it中的API Explorer功能。 enter image description here