# 设计 API 安全

作为 API 设计过程的一部分，您需要指定哪些调用方可以访问您的 API（身份验证）以及允许它们执行哪些操作（授权）。

您可能希望仅为整个 API 定义通用的安全配置，或者选择更精细的策略，为关键资源指定特定的安全配置。

您可能还希望指定某些操作无需身份验证即可自由访问。

API 契约 可以通过主要安全类型处理所有这些情况：

* 基本身份验证
* Bearer 认证
* 摘要身份验证
* OAuth 1.0
* OAuth 2.0
* OpenID Connect
* 自定义 / API 密钥
* 透传

不支持 Cookie 验证。

## 创建安全方案

创建一个安全方案，以在您的 API 版本中全局使用或在单个元素中使用。

1. 前往您的 API 的常规信息页面。
2. 向下滚动到 安全方案 部分，然后单击 添加 以创建新方案。
3. 输入名称并从下拉列表中选择类型。
4. 可选：输入描述。
5. 输入特定于所选类型的其他参数。

   ![安全方案定义示例。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/shows_OAuth2_security_scheme.png)

您的安全方案现已创建，您可以在 API 的全局设置中使用它， 或者在特定资源和操作中使用它。

## 定义您的 API 安全

为您的 API、资源和操作定义安全方案。

1. 前往您的 API 的常规信息页面。
2. 在全局安全部分中，添加您的安全方案并选择要全局应用到 API 版本的方案。

   ![在本示例中，Petstore API 受 petstore_auth 保护，作用域为 write:pets。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/designer_security.png)
3. 选择一个资源，并选择您要应用到该资源所有操作的安全方案。

   或者，您可以选择一个操作来定义其特定安全性。![在此示例中，Find Pets by tags 方法使用 petstore_auth 进行保护。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/designer_security_2.png)