
안녕하세요. Spring Security 패스키 시리즈의 부록으로, Windows 데스크탑 환경에서 패스키를 사용할 때 흔히 마주치는 두 가지 문제점과 그 해결책을 자세히 설명해 드리겠습니다.
데스크탑 PC 환경에서 패스키 기반 회원 가입이나 로그인을 시도했을 때, "보안 키를 USB 포트에 삽입하세요."라는 팝업창이 나타나 다음 단계로 진행이 막히는 경우가 있습니다.
패스키는 기본적으로 사용자 기기에 저장된 생체 인식 정보나 PIN을 활용하여 인증을 대신하는 기술입니다.
랩톱의 경우, 대부분 지문 인식 센서나 얼굴 인식을 위한 카메라가 내장되어 있어 Windows Hello 기능을 바로 사용할 수 있습니다.
데스크탑의 경우, 별도의 지문 인식기나 웹캠과 같은 생체 인식 장치가 연결되어 있지 않다면, 운영체제는 사용자가 FIDO2/WebAuthn 표준을 지원하는 하드웨어 보안 키를 사용하려 한다고 간주합니다.
이 알림은 결국 "생체 인식을 할 수 있는 장치나 하드웨어 보안 키를 연결하라"는 의미이므로, 장치가 없다면 진행이 불가능합니다.
얼굴 인식/지문 인식 장치가 없더라도, Windows Hello PIN을 등록하면 이 문제를 해결하고 패스키를 사용할 수 있습니다. PIN은 가장 보편적인 형태의 플랫폼 인증 수단으로 활용됩니다.
설정 방법
로그인 옵션을 검색하여 실행합니다.PIN 항목을 찾습니다.해결 결과:
PIN 등록 후 패스키 기반 회원 가입/로그인을 다시 시도하면, 더 이상 "보안 키를 삽입하세요"라는 알림 대신 PIN 입력 창이 나타나며, 이를 통해 데스크탑 환경에서도 패스키 기반 인증을 즉시 진행할 수 있습니다.
개발 환경에서 프로젝트를 진행할 때, 동일한 환경(localhost)에서 여러 개의 패스키 기반 프로젝트를 테스트하면서 충돌이 일어나는 경우가 있습니다.
패스키는 특정 RP ID, 즉 도메인에 종속되어 발급 및 저장됩니다.
시나리오
1. 프로젝트 A를 http://localhost:8080에서 테스트하며 패스키를 발급했습니다.
2. 이후 프로젝트 B를 역시 http://localhost:8080에서 개발하며 새로운 패스키를 발급하거나 로그인하려 합니다.
결과: OS의 인증 기관에는 이미 localhost에 대한 기존 프로젝트 A의 패스키가 저장되어 있습니다.
이 상태에서 프로젝트 B로 로그인/등록을 시도하면 기존 패스키와 충돌이 발생하여 로그인이 실패하거나 예상치 못한 오류가 발생할 수 있습니다.
문제를 해결하려면 동일한 RP ID(localhost)에 대해 과거에 발급했던 패스키를 OS 인증 기관에서 직접 삭제해야 합니다.
삭제 방법
패스키 설정 또는 Passkey Settings을 검색하여 실행합니다.localhost 또는 테스트 환경의 도메인에 해당하는 항목을 찾습니다.해결 결과
로컬 환경에 종속된 기존 패스키를 삭제하면, 현재 진행 중인 새로운 프로젝트에 대해 새로운 패스키를 정상적으로 발급하거나 충돌 없이 로그인을 진행할 수 있습니다.
로컬 환경에서 패스키를 테스트할 때마다 새로운 프로젝트를 시작하기 전에 기존 패스키를 삭제하는 것을 습관화하면 문제를 미연에 방지할 수 있습니다.