5.6. OpenAPI 身份验证
通过使用 3scale toolbox 实现 OpenAPI 身份验证,您可以确保只有授权的用户有权访问您的 API,保护敏感数据,并有效管理 API 用量。这种方法将强化您的 API 基础架构,并促进开发人员和消费者之间的信任。
注意
只支持一个顶级安全要求;不支持操作级别的安全要求。
支持的安全方案:带有任何流类型的 apiKey
和 oauth2
。
对于 apiKey 安全方案类型:
- 凭证位置从安全方案对象的 OpenAPI in 字段中读取。
- auth user 键是从安全方案对象的 OpenAPI name 字段读取的。
带有 apiKey
安全要求的 OpenAPI 3.0.2 部分示例:
openapi: "3.0.2" security: - petstore_api_key: [] components: securitySchemes: petstore_api_key: type: apiKey name: api_key in: header ...
对于 oauth2
安全方案类型:
-
凭据位置硬编码为
标头
。 -
OpenID Connect Issuer Type 默认为
rest
。您可以使用--oidc-issuer-type=<value>
; 命令选项覆盖它。 -
OpenID Connect Issuer 没有从 OpenAPI 读取。由于 3scale 要求签发者 URL 必须包含客户端 secret,因此必须使用这个
--oidc-issuer-endpoint=<value>
命令选项设置这个问题。 - OIDC AUTHORIZATION FLOW 从安全方案对象的 flows 字段读取。
带有 oauth2
安全要求的 OpenAPI 3.0.2 部分示例:
openapi: "3.0.2" security: - petstore_oauth: - write:pets - read:pets components: securitySchemes: petstore_oauth: type: oauth2 flows: clientCredentials: tokenUrl: http://example.org/api/oauth/dialog scopes: write:pets: modify pets in your account read:pets: read your pets ...
当 OpenAPI 没有指定任何安全要求时:
- 产品被视为 Open API。
-
添加
default_credentials
3scale 策略。注意: 这也称为anonymous_policy
。 -
您需要命令
--default-credentials-userkey
。注: 如果没有提供,命令会失败。
其他资源