説明
個別の操作にも最上位のドキュメントにもsecurityがない場合、その操作には仕様上の認証要件がありません。意図的に公開する操作には適切な場合もありますが、認証が必要な操作では要件を明示してください。
想定される影響
仕様書を利用する開発者やクライアント生成ツールが、認証情報なしで呼び出す処理を実装するおそれがあります。サーバーが実際に認証を適用しているかは、別途確認する必要があります。
対処方法
実際の認証方式を定義し、全体または該当する操作のsecurityから参照してください。公開する操作と保護する操作を区別し、仕様書とサーバーのポリシーを一致させてください。
例
次の例ではexampleSecurityというAPIキー認証を定義し、全体のsecurityを通じて操作に適用します。
変更前
json
{
"openapi": "3.0.0",
"info": {
"title": "Simple API overview",
"version": "1.0.0"
},
"paths": {
"/": {
"get": {
"responses": {
"200": {
"description": "ok"
}
}
}
}
},
"components": {
"securitySchemes": {
"exampleSecurity": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key"
}
}
}
}
変更後
json
{
"openapi": "3.0.0",
"info": {
"title": "Simple API overview",
"version": "1.0.0"
},
"paths": {
"/": {
"get": {
"responses": {
"200": {
"description": "ok"
}
}
}
}
},
"security": [
{
"exampleSecurity": []
}
],
"components": {
"securitySchemes": {
"exampleSecurity": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key"
}
}
}
}