OpenAPI: APIキーヘッダー認証

カスタムヘッダー(X-API-Key)を使用したAPIキー認証をOpenAPI 3.0で文書化。セキュリティスキーム定義、キー検証レスポンス、使用例を含みます。

Authentication

詳細な説明

OpenAPIでのAPIキー認証の文書化

APIキー認証はJWTやOAuth2よりシンプルで、サーバー間通信、レート制限付きパブリックAPI、開発者ポータルによく使用されます。

セキュリティスキーム定義

components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key provided by the developer portal

OpenAPIはAPIキーの3つの場所をサポートしています:headerquerycookie。ヘッダーベースが最もセキュアで、URLやサーバーログにキーが表示されません。

APIキーセキュリティの適用

security:
  - ApiKeyAuth: []

paths:
  /data/export:
    get:
      summary: Export data
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          description: Data exported successfully
        '401':
          description: Missing or invalid API key
        '403':
          description: API key does not have permission
        '429':
          description: Rate limit exceeded

APIキー認証のエラーレスポンス

クライアントが遭遇する具体的なエラーレスポンスを文書化します:

ステータス タイミング
401 APIキーヘッダーが欠落しているか、キーが無効/期限切れ
403 キーは有効だが、要求されたリソースへの権限がない
429 キーがレート制限の割当を超過した

キーローテーションの考慮事項

API説明に、キーを再生成できるか、古いキーに猶予期間があるか、クライアントがキーの期限切れをどう処理すべきかを文書化します。この情報はOpenAPI仕様の正式な一部ではありませんが、利用者が正しく統合するのに役立ちます。

複数の認証オプション

セキュリティ配列にAPIキーとBearerトークン認証を代替として列挙できます。これにより内部サービスはAPIキーを使用し、ユーザー向けクライアントはJWTトークンを使用できます。

ユースケース

外部開発者がポータルを通じてAPIキーを登録し、レート制限付きエンドポイントにアクセスするパブリックAPIや開発者プラットフォームを構築する際に使用。SaaSプラットフォーム、データプロバイダー、決済ゲートウェイで一般的。

試してみる — API Documentation Generator

フルツールを開く