5.6. OpenAPI 身份验证


通过使用 3scale toolbox 实现 OpenAPI 身份验证,您可以确保只有授权的用户有权访问您的 API,保护敏感数据,并有效管理 API 用量。这种方法将强化您的 API 基础架构,并促进开发人员和消费者之间的信任。

注意

只支持一个顶级安全要求;不支持操作级别的安全要求。

支持的安全方案:带有任何流类型的 apiKeyoauth2

对于 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&gt; 命令选项覆盖它。
  • 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注: 如果没有提供,命令会失败。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.