설명
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