説明
OpenAPI 3.0では、OAuth2フローのtokenUrlにトークン発行先を指定します。トークンエンドポイントが必要なフローでは、有効なURLを使い、プロバイダーの実際のトークンサーバーにHTTPSで接続する必要があります。
想定される影響
エンドポイントが誤っていると、認証に必要なトークンを発行できなくなる可能性があります。HTTPの使用や送信先の誤りによって、認証情報やトークンが漏えいするおそれもあります。
対処方法
components.securitySchemes内の該当するOAuth2フローに、プロバイダーの正式なHTTPSのtokenUrlを設定してください。URLにフラグメントを含めず、クライアントの実際の接続先とサーバー証明書の検証を確認してください。
例
次の例では、認可コードフローのトークンURLを変更します。フラグメントを含むHTTPのアドレスを、プロバイダーの正しいHTTPSアドレスに置き換えます。
変更前
yaml
openapi: 3.0.0
components:
securitySchemes:
petstore_auth:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://api.my.company.com/oauth/authorize
tokenUrl: http://example.com#@evil.com/
scopes:
read:api: read your apis
変更後
yaml
openapi: 3.0.0
components:
securitySchemes:
petstore_auth:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://api.my.company.com/oauth/authorize
tokenUrl: https://api.my.company.com/oauth/token
scopes:
read:api: read your apis