在 Azure API 管理中创建订阅

已完成

使用 API 管理发布 API 时,可定义通过网关访问该 API 的人员。

对于气象应用,你希望确保只有订阅了你的服务的客户才能访问 API 并使用预测数据。 可以通过颁发订阅密钥来实现此访问控制。

重要

此上下文中的订阅与用于管理 Azure 帐户的 Azure 订阅无关。

接下来,你将了解如何使用订阅密钥保护 API。

订阅和密钥

可以选择免费提供 API 及其包含的信息。 但通常你希望限制对已付款的用户或与你有工作关系的组织的访问。 控制对 API 的访问的一种方式是使用订阅。 使用订阅可细分用户对 API 的访问。

订阅密钥构成用于允许访问这些订阅的授权。 每当客户端向受保护的 API 发出请求时,HTTP 请求中必须包含有效的订阅密钥,否则调用将被拒绝。

订阅密钥是唯一自动生成的密钥,可作为 API 调用的一部分进行传递。 密钥与订阅直接相关,后者可限定到不同的区域。 订阅使你能够精确地控制权限和策略。

三个主要订阅范围是:

范围 详细信息
所有 API 适用于每个可从网关访问的 API。
单个 API 适用于单个导入的 API 及其所有终结点。
产品 产品是你在 API 管理中配置的一个或多个 API 的集合。 可以将 API 分配给多个产品。 产品可具有不同的访问规则、使用配额和使用条款。 因此,如果希望合作伙伴和供应商对 WeatherData API 拥有不同的访问权限,请将 API 分配给产品,然后使用 Azure 门户将 API 与产品关联。

用于调用受保护 API 的应用程序必须在每个请求中包含订阅密钥。

随时都可重新生成这些订阅密钥,如果怀疑已与未经授权的用户共享密钥,则可以创建一个新密钥。

订阅密钥。

每个订阅具有两个密钥,即主要密钥和辅助密钥。 具有两个密钥可为重新生成密钥提供便利。 例如,如果希望更改主要密钥并避免停机,可在应用中使用辅助密钥。

对于已启用订阅的产品,客户端必须在调用该产品中的 API 时提供密钥。 开发人员可通过提交订阅请求来获取密钥。 如果你批准该请求,则必须安全地向他们发送订阅密钥,例如,通过加密邮件。 此步骤是 API 管理工作流的核心部分。

使用订阅密钥调用 API

应用程序必须在调用受订阅保护的 API 终结点的所有 HTTP 请求中包含一个有效密钥。 密钥可在请求标头中传递,也可以在 URL 中以查询字符串参数的形式传递。

默认订阅密钥标头名称为 Ocp-Apim-Subscription-Key,默认查询字符串名称为 subscription-key。

要测试 API 调用,可以使用 Azure 门户或开发人员门户中的测试控制台或命令行工具,例如“curl”。 以下是使用开发人员门户的 GET 请求示例,其中显示了订阅密钥标头:

显示如何从开发人员门户调用 API 的屏幕截图。

以下示例展示如何使用 curl 在请求头中传递密钥:

curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path

以下示例展示如何使用 curl 命令在 URL 中将密钥作为查询字符串进行传递:

curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>

如果所需密钥未在标头中传递,也没有以查询字符串形式在 URL 中传递,则 API 网关会发出“401 拒绝访问”响应。