안녕하세요,
oauth2-basic 플러그인을 처음 사용해 봅니다. 문서를 읽고 소스 코드도 살펴봤지만 제 질문에 대한 답을 찾지 못했습니다.
- oauth2-basic 플러그인은 pkce를 지원하나요?
- 지원한다면 어떻게 활성화할 수 있나요?
- 지원하지 않는다면 oauth2-basic 플러그인 코드를 어떻게 수정해야 pkce를 사용할 수 있나요?
omniauth GitHub 페이지의 README에는 omniauth 전략에서 pkce 옵션을 true로 설정할 수 있다고 되어 있습니다. 그러나 oauth2-basic 플러그인 코드에서 이 변경을 시도해 보았지만 authorize_url로 코드 챌린지(code challenge)가 전송되지 않습니다. 조언을 구합니다.
미리 감사합니다.
내가 지원하는 커뮤니티에서 PKCE에 대한 지원을 요청하고 있어 이 주제를 다시 올립니다.
요청을 받기 전까지는 이 부분에 대해 본 적이 없었지만, 관련 문서를 살펴보니 PKCE의 주요 도입 동기가 네이티브 앱과 SPA인 것 같습니다:
네이티브 앱
- Client Secret을 안전하게 저장할 수 없습니다. 앱을 디컴파일하면 Client Secret이 드러나며, 이 값은 앱에 묶여 있어 모든 사용자와 기기에서 동일합니다.
- 리다이렉트를 수신하기 위해 사용자 정의 URL 스킴(예: MyApp://)을 사용할 수 있으며, 이로 인해 악성 애플리케이션이 인증 서버로부터 Authorization Code를 받을 수 있는 위험이 있습니다.
단일 페이지 애플리케이션(SPA)
- 전체 소스가 브라우저에 노출되므로 Client Secret을 안전하게 저장할 수 없습니다
위 두 가지 상황은 모두 이 사례에 해당하지 않습니다. 시크릿을 보관하는 주체는 Discourse 서버이기 때문입니다.
