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