HTTP Negotiate 인증 설정 점검 (OpenAPI 3.0)

Negotiate 인증의 환경 적합성과 통신 보호를 점검해야 하는 경우

설명

HTTP Negotiate는 SPNEGO를 통해 Kerberos 같은 인증 메커니즘을 협상하며, 기업 환경의 통합 인증에 사용할 수 있습니다. 적절한 인증 환경과 클라이언트 지원이 필요하고, 인증 자체가 HTTP 내용을 암호화하지는 않습니다.

잠재적 영향

지원되지 않는 클라이언트는 인증에 실패할 수 있습니다. HTTPS가 없으면 인증에 성공하더라도 요청과 응답의 내용이 노출될 수 있습니다.

해결 방법

HTTPS를 적용하고 실제로 선택되는 인증 메커니즘과 클라이언트 지원을 확인하세요. 대상 환경에 맞지 않으면 다른 인증 방식을 선택하고 서버·클라이언트와 문서를 함께 갱신하세요.

예시

다음 발췌 예시는 Negotiate에서 OAuth2로 변경하는 선택지를 보여 줍니다. 적합한 기업 인증 환경에서는 Negotiate를 유지할 수 있습니다. 스키마만 바꾸지 말고 실제 인증 구성을 함께 적용하고 HTTPS를 사용하세요.

변경 전

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

변경 후

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"
            }
          }
        }
      }
    }
  }
}

참조