認証方式の定義の欠落

認証が必要なAPIの認証方式が、OpenAPI 3.0に定義されているか確認します。

説明

認証が必要なAPIでは、必要なヘッダーやトークンがクライアントに伝わるよう、OpenAPI 3.0のcomponents.securitySchemesに認証方式を定義します。認証なしで公開することを意図したAPIでは、この定義を省略できます。

想定される影響

必要な認証方式が文書にないと、クライアント連携が失敗したり、アクセス要件を誤解したりする可能性があります。

対処方法

実際に使用する認証方式とその属性をcomponents.securitySchemesに定義し、全体または操作のsecurityから参照してください。サーバーやゲートウェイでも同じ要件を適用するように設定します。

例

この例では、認証が必要なAPIにBearer認証の定義と要件を追加しています。サーバーでトークンを検証する設定も必要です。

変更前

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "get": {
        "responses": {
          "200": {
            "description": "200 response"
          }
        }
      }
    }
  }
}

変更後

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "get": {
        "responses": {
          "200": {
            "description": "200 response"
          }
        }
      }
    }
  },
  "security": [
    {
      "exampleSecurity": []
    }
  ],
  "components": {
    "securitySchemes": {
      "exampleSecurity": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}

参考資料