説明
OpenAPI 2.0のOAuth2のaccessCodeとimplicitフローは、authorizationUrlでログインと権限への同意の画面に利用者を誘導します。信頼できる認可サーバーの正しい認可エンドポイントを指定する必要があります。
想定される影響
アドレスが誤っていると、ログインや同意の手続きに失敗する可能性があります。意図しないサーバーを指している場合、利用者がそのサーバーで認証情報を入力する危険もあります。
対処方法
authorizationUrlには、認証プロバイダーが案内するHTTPSの認可エンドポイントを設定します。ホストとパスを確認し、URLのフラグメント(#以降)を削除してください。新しい連携では、accessCodeとPKCEを使用してください。
例
この例はURLの修正を示しています。認可コードフローのtokenUrlも、同じプロバイダーの設定に合わせてください。
変更前
yaml
swagger: "2.0"
securityDefinitions:
petstore_auth:
type: oauth2
flow: accessCode
authorizationUrl: https://api.invalid.comp@#any.com/oauth/authorize
tokenUrl: https://api.my.company.com/oauth/token
scopes:
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:
read:pets: read pets