HTTP Digest認証の設定確認(OpenAPI 3.0)

Digest認証の通信保護とパスワードの強度を確認する必要がある状態

説明

HTTP Digestは、パスワードをそのまま送らないチャレンジ・レスポンス方式の認証です。ただし、HTTP本文は暗号化されず、弱いパスワードは取得された認証用の値から推測されるおそれがあります。

想定される影響

HTTPSを使わないと、リクエストやレスポンスの内容が漏えいする可能性があります。弱いパスワードが推測されると、アカウントになりすまされるおそれもあります。

対処方法

HTTPS、強いパスワード、サポートされている安全なアルゴリズムを使用してください。サーバーとクライアントのDigest対応を確認し、必要な権限委譲や互換性を満たせない場合はOAuth2などの代替方式を検討してください。

例

次の抜粋では、DigestからOAuth2に変更する選択肢を示しています。Digestの構成が常に不適切なわけではなく、変更には実際のサーバーとクライアントの対応が必要です。どちらの方式でもAPI通信はHTTPSで保護してください。

変更前

json
{
  "openapi": "3.0.0",
  "components": {
    "securitySchemes": {
      "petstore_auth": {
        "type": "http",
        "scheme": "digest"
      }
    }
  }
}

変更後

json
{
  "openapi": "3.0.0",
  "components": {
    "securitySchemes": {
      "petstore_auth": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://example.com/api/oauth/dialog",
            "tokenUrl": "https://example.com/api/oauth/token",
            "scopes": {
              "read:pets": "read your pets"
            }
          }
        }
      }
    }
  }
}

参考資料