안전하고 원활한 패스키: 배포 체크리스트

게시일: 2025년 6월 5일

패스키는 로그인 환경을 혁신적으로 개선하여 비밀번호보다 더 간단하고 빠르며 안전한 대안을 제공하도록 설계되었습니다. 이 체크리스트는 최적의 사용자 경험 (UX) 결과를 달성하기 위해 패스키를 구현하는 주요 측면을 안내합니다.

이 체크리스트를 사용하는 방법

이 체크리스트는 인증 흐름에 패스키를 구현하는 개발자 및 제품팀을 대상으로 합니다. 다음과 같은 용도로 사용할 수 있습니다.

  • 구현이 다음 도움말에 설명된 최신 패스키 UX 권장사항을 따르는지 확인합니다.
  • 유용성, 보안, 호환성을 개선하는 필수 요소와 선택적 요소를 식별합니다.
  • 개발 중 및 배포 전에 구현을 확인하세요.
  • 사용자 채택 및 시스템 상호 운용성을 지원하는 권장사항을 따릅니다.

이를 통해 최종 사용자에게 원활하고 안전한 환경을 제공할 수 있습니다.

패스키 등록

웹사이트에서 비밀번호에서 패스키로 원활하게 전환하려면 정교한 패스키 등록 기능이 중요합니다. 비밀번호 없는 로그인의 패스키 생성에 설명된 안내에 따라 웹사이트에 패스키 등록 기능을 빌드합니다. 기본 패스키 등록 기능 외에 확인해야 할 사항은 다음과 같습니다.

✅ 승격된 패스키 생성을 위해 navigator.credentials.create()에 전달할 인증자 첨부 파일 값으로 "platform"를 지정합니다.

  • 패스키를 사후에 만드는 사용자를 위해 최적화되고 원활한 패스키 생성 흐름을 제공합니다.

✅ 사용자가 사용할 수 있는 가장 강력한 인증 방법으로 사용자를 인증한 후 패스키를 만들 수 있도록 허용합니다.

  • 이는 공격자가 도용된 계정에서 패스키를 만드는 것을 방지하는 데 중요합니다.

excludeCredentials를 사용하여 동일한 패스키 제공업체의 중복 패스키 생성을 방지합니다.

  • 많은 패스키 제공업체는 계정 및 RP ID당 하나의 패스키만 허용합니다. 중복 항목을 만들지 마세요.

AAGUID를 사용하여 패스키 제공업체를 식별하고 사용자 인증 정보의 이름을 지정합니다.

  • 패스키를 패스키 제공업체와 연결하는 것은 가능한 경우 사용자 인증 정보를 표시하는 직관적인 방법입니다.

✅ 패스키 등록 시도가 PublicKeyCredential.signalUnknownCredential()로 실패하는 경우 신호를 보냅니다.

  • 사용하지 않는 패스키는 혼란을 야기할 수 있습니다. 서버에서 패스키를 등록하지 못한 경우 패스키 제공업체에 알립니다.

✅ 계정의 패스키를 생성하고 등록한 후 사용자에게 알림을 보냅니다.

  • 특히 다른 사용자가 패스키를 만드는 경우 사용자가 패스키가 생성되고 있음을 인지해야 합니다.

패스키 인증

최소한의 불편 없이 비밀번호 사용자와 패스키 사용자를 모두 수용하는 것은 어려울 수 있습니다. 양식 자동 완성을 통한 패스키 로그인에 설명된 안내에 따라 웹사이트에 패스키 양식 자동 완성 기능을 빌드합니다. 기본 패스키 인증 기능 외에 확인해야 할 사항은 다음과 같습니다.

✅ 사용자가 양식 자동 완성을 통해 패스키로 로그인하도록 허용합니다.

  • 웹사이트가 비밀번호에서 패스키로 전환하는 경우 두 사용자를 모두 수용하는 가장 좋은 방법은 브라우저의 양식 자동 완성 기능을 사용하는 것입니다.

PublicKeyCredential.signalUnknownCredential()를 사용하여 백엔드에서 패스키의 일치하는 사용자 인증 정보를 찾을 수 없는 경우 신호를 보냅니다.

  • 사용하지 않는 패스키는 혼란을 야기할 수 있습니다. 패스키 제공업체가 삭제할 수 있도록 사용할 수 없는 패스키를 패스키 제공업체에 알립니다.

✅ 사용자가 로그인 후 패스키를 생성하지 않은 경우 사용자에게 패스키를 수동으로 생성하라는 메시지를 표시합니다.

  • 사용자가 아직 패스키를 만들지 않은 경우 패스키를 만들도록 권장합니다.

✅ 사용자가 비밀번호 (및 2단계 인증)로 로그인한 후 패스키를 자동으로 생성 (조건부 생성)합니다.

  • 사용자 패스키 도입을 촉진합니다.

사용자가 교차 기기 패스키로 로그인한 경우 로컬 패스키 생성을 요청합니다.

  • 로컬 패스키를 만들면 사용자가 다음부터 QR 코드를 스캔하지 않고 로그인할 수 있습니다.

✅ 로그인 후 사용 가능한 패스키 목록업데이트된 사용자 세부정보 (사용자 이름, 표시 이름)를 제공업체에 알림

  • 서버와 패스키 제공업체 간에 패스키 목록과 사용자 세부정보를 동기화하면 사용자 환경이 개선됩니다.

패스키 관리

사용자에게 패스키를 잘 설명하면 환경을 더 잘 이해하고 패스키를 제어하는 데 도움이 됩니다. 사용자가 패스키를 효과적으로 관리하도록 지원에 설명된 안내에 따라 웹사이트에 패스키 관리 기능을 빌드합니다. 다음 사항을 확인하세요.

✅ 사용자가 패스키 관리 페이지에서 패스키를 관리하도록 허용해야 합니다.

  • 사용자가 패스키를 관리할 수 있는 중앙 위치를 만드세요.

여러 패스키 등록을 지원합니다.

  • 여러 패스키를 등록할 수 있으면 사용자가 더 약한 인증 방법으로 대체하지 않고도 계정 잠금을 방지할 수 있습니다.

✅ 사용자가 관리 페이지에서 새롭고 유연한 유형의 패스키를 추가할 수 있도록 허용합니다.

패스키 이름을 표시합니다.

  • AAGUID를 기반으로 패스키 이름을 지정하고 사용자의 패스키를 구체적으로 시각화합니다.

✅ 패스키가 동기화 가능인지 동기화 불가능인지 나타냅니다.

  • 패스키가 동기화되지 않으면 사용자에게 알립니다.

✅ 사용자가 서버에서 공개 키를 삭제하도록 허용해야 합니다.

✅ 연결된 공개 키가 서버에서 삭제되면 패스키 목록을 신호로 알립니다.

  • 서버와 패스키 제공업체 간에 패스키 목록을 동기화하면 사용자 환경이 개선됩니다.
권장사항을 보여주는 패스키 관리 페이지의 예
권장사항을 보여주는 패스키 관리 페이지의 예

추가 고려사항

✅ 사용자가 업데이트할 때 업데이트된 사용자 세부정보 (사용자 이름, 표시 이름)를 알립니다.

사용자가 '비밀번호를 잊어버림'을 선택하면 새 비밀번호 대신 패스키를 만듭니다.

리소스