위치:
API(OAuth 설정 활성화): PKCE(코드 교환) 제어를 위한 증거 키 필요
액세스 토큰에 대한 권한 부여 코드를 교환하는 응용 프로그램이 원래 코드를 요청한 응용 프로그램과 동적으로 생성된 암호화 "코드 검증기"를 사용하는 OAuth 2.0 보안 확장자입니다.
제어 이름
연결된 앱: API(OAuth 설정 활성화): PKCE(Proof Key for Code Exchange) 필요
권장 구성
지원되는 인가 플로에 대한 PKCE(Proof Key for Code Exchange) 확장 필요 - 선택됨
제어 개요
PKCE는 동적으로 생성된 암호화 "코드 검증기"를 사용하여 액세스 토큰에 대한 권한 부여 코드를 교환하는 응용 프로그램이 원래 코드를 요청한 응용 프로그램과 동일한 응용 프로그램인지 확인하는 OAuth 2.0의 보안 확장 프로그램입니다.
구성되지 않은 경우 보안 위험
PKCE가 없으면 모바일 앱 또는 단일 페이지 앱과 같은 공개 클라이언트는 토큰 교환 중에 클라이언트 암호를 안전하게 저장하여 ID를 확인할 수 없으므로 "인증 코드 가로채기"에 취약합니다.
위협 시나리오
공격자는 사용자 정의 URI 스키마 또는 브라우저 리디렉션을 통해 성공적인 권한 부여 코드를 가로채고 합법적인 응용 프로그램이 할 수 있기 전에 유효한 액세스 토큰으로 즉시 교환하여 사용자의 세션을 효과적으로 하이재킹합니다.
예상 CVSS 점수 범위
중요(9.0~10.0)
위험 영향 고려 사항
성공적으로 가로채기를 수행하면 응용 프로그램 범위 내의 총 계정 인계로 이어지며, 잠재적으로 상대가 민감한 PII를 추출하거나 손상된 사용자로 무단 트랜잭션을 수행할 수 있습니다.
위험이 높은 경우
코드가 잠재적으로 안전하지 않은 시스템 브라우저 또는 공유 장치 환경을 통해 전송되는 모바일 응용 프로그램 및 단일 페이지 응용 프로그램의 경우 위험이 높습니다.
낮은 위험 시기
"기밀 클라이언트"(서버 간 통합)는 안전하게 클라이언트 암호를 저장하고 클라이언트 암호를 사용하여 토큰 교환을 인증할 수 있지만, PKCE는 계속해서 심층적인 방어로 권장됩니다.
비즈니스 및 통합 고려 사항
PKCE를 적용하려면 개발자가 응용 프로그램의 OAuth 핸드셰이크 논리를 업데이트하여 code_challenge 및 code_verifier 매개 변수를 생성하고 보내야 하며, 이는 레거시 모바일 라이브러리를 업데이트해야 할 수 있습니다.
권장 수정
Salesforce의 연결된 앱 설정으로 이동하여 "PKCE(코드 교환) 확장 시 증명 키 필요" 확인란을 설정합니다.
보안 상태 검토 지침
보안 상태 검토에서 PKCE를 모든 최신 공개 통합의 필수 기준으로 식별하여 "코드-입력" 루프를 해제하고 모바일 및 웹 사용자에게 높은 보증 ID 확인을 보장합니다.

