OpenAPI 3.0のOAuth2トークンURLの誤り

OAuth2フローのtokenUrlには、プロバイダーの正しいHTTPSトークンエンドポイントを指定する必要があります。

説明

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

参考資料