説明
OpenAPI 2.0のOAuth2認証定義では、tokenUrlがトークン発行先を示します。正しい形式でプロバイダーの実際のエンドポイントを指定し、トークンリクエストにはHTTPSを使用してください。
想定される影響
アドレスが誤っていると、トークンの発行に失敗する可能性があります。HTTPの使用や誤ったサーバーへの送信によって、認証情報やトークンが漏えいするおそれもあります。
対処方法
securityDefinitionsのtokenUrlに、プロバイダーの正式なトークンエンドポイントを設定してください。HTTPSを使用し、URLのフラグメント(#以降の部分)は含めないでください。クライアントが正しいサーバーに接続し、その証明書を検証することを確認してください。
例
変更前のURLはHTTPを使用し、トークンエンドポイントには認められないフラグメントを含んでいます。変更後は、プロバイダーのHTTPSのトークン発行先を使用します。
変更前
yaml
swagger: "2.0"
securityDefinitions:
petstore_auth:
type: oauth2
flow: accessCode
authorizationUrl: https://api.my.company.com/oauth/authorize
tokenUrl: http://example.com#@evil.com/
scopes:
write:pets: modify pets
read:pets: read pets
変更後
yaml
swagger: "2.0"
securityDefinitions:
petstore_auth:
type: oauth2
flow: accessCode
authorizationUrl: https://api.my.company.com/oauth/authorize
tokenUrl: https://api.my.company.com/oauth/token
scopes:
write:pets: modify pets
read:pets: read pets