강력한 패스키 환경을 제공하려면 앱에서 다음을 구현하는 것이 좋습니다.
- 사용자 패스키 관리: 사용자가 패스키를 관리할 수 있도록 앱 설정 내에 전용 패스키 관리 섹션을 포함합니다.
- 사용자 인증 정보 제공업체 통합: 사용자 인증 정보 제공업체와 통신하기 위해 앱 서버는 등록, 인증, 삭제를 위한 패스키 엔드포인트를 구현할 수 있습니다.
사용자 패스키 관리
사용자가 패스키를 관리할 수 있도록 사용자가 패스키를 만들고, 보고, 이름을 바꾸고, 삭제할 수 있는 전용 패스키 관리 섹션을 앱에 포함하세요.
사용 가능한 패스키 표시
패스키에 대한 앱 설정 내에서 사용자에게 인증 정보 생성에 사용된 인증 정보 제공업체, 생성 날짜, 마지막 사용 날짜 등의 정보를 제공합니다.
사용자 인증 정보 제공업체 정보를 가져오려면 해당 패스키와 연결된 인증자 증명 전역 고유 식별자 (AAGUID)를 사용하세요.
AAGUID는 패스키를 만들 때 반환되는 PublicKeyCredential의 일부입니다. AAGUID를 사용하면 패스키를 생성한 사용자 인증 정보 제공업체를 식별할 수 있습니다. 자세한 내용은 AAGUID로 패스키 제공업체 확인을 참고하세요.
앱은 패스키에 관한 다음 세부정보를 표시할 수 있습니다.
- 패스키 이름: 패스키가 등록될 때 지정된 이름을 표시합니다. 이상적인 이름은 인증 제공업체 (AAGUID 사용)를 기반으로 합니다. 제공업체를 식별할 수 없는 경우
android.os.Build의 기기 모델 정보를 사용합니다. - 제공업체 로고: 사용자 인증 정보 제공업체의 로고를 표시합니다. 이 시각적 단서는 사용자가 관리하려는 올바른 패스키를 빠르게 식별하는 데 도움이 됩니다.
- 타임스탬프: 생성 타임스탬프와 마지막 사용 타임스탬프를 제공합니다. 이 정보는 사용자가 사용자 인증 정보를 관리하고 오래되었거나 사용하지 않는 패스키를 식별하는 데 도움이 됩니다.
- 동기화 상태 표시기: 기본적으로 패스키는 사용자 인증 정보 제공업체와 동기화되지만 동기화 기능은 다를 수 있습니다. 사용자의 혼란을 방지하려면 패스키가 동기화를 지원하지 않는지 명확하게 표시하세요.
- 마지막 로그인 세부정보 (선택사항): 마지막 로그인 시의 브라우저, OS, IP 주소 또는 위치와 같은 세부정보를 제공합니다. 이는 사용자가 잠재적인 의심스러운 활동을 식별할 수 있는 유용한 선택적 기능입니다.
이러한 세부정보 외에도 화면에는 사용자가 각 패스키를 관리(삭제 또는 이름 변경)할 수 있는 버튼이 있어야 합니다.
여러 패스키 만들기
사용자 여정 전반에 걸쳐(예: 로그인 직후) 사용자에게 패스키를 생성할 기회를 제공해야 하지만, 앱의 패스키 설정 섹션에서는 사용자가 원하는 사용자 인증 정보 제공업체에서 패스키를 생성할 수 있어야 합니다.
계정 잠금 위험을 줄이려면 사용자가 서로 다른 사용자 인증 정보 제공업체에 여러 패스키를 등록하도록 허용하세요. 예를 들어 플랫폼에서 지원을 중단하거나 사용자가 액세스 권한을 잃는 등 하나의 사용자 인증 정보 제공업체에 액세스할 수 없게 되면 다른 패스키를 사용하여 로그인할 수 있습니다. 데이터베이스가 사용자별로 여러 사용자 인증 정보를 저장할 수 있는지 확인합니다. 하지만 사용자가 동일한 인증 정보 제공업체를 사용하여 동일한 계정의 패스키를 만들지 못하도록 방지할 수는 있습니다.
패스키 삭제
앱의 패스키 설정 섹션에서 사용자가 패스키를 삭제할 수 있어야 합니다.
사용자 인증 정보 제공업체 통합
앱 서버와 사용자 인증 정보 제공자 간에 패스키를 일관되게 유지하려면 앱 서버에서 미리 정의된 경로 /.well-known/passkey-endpoints에서 패스키 관리를 사용 설정하세요. 이를 통해 사용자 인증 정보 제공업체는 패스키 관리에 이러한 엔드포인트를 직접 사용할 수 있습니다. 자세한 내용은 패스키 엔드포인트 추가를 참고하세요.
추가 리소스
- 패스키 UX 가이드
- 동영상: 패스키 지원을 통해 Android 앱의 비밀번호 의존도를 줄이는 방법
- Codelab: Android 앱에서 Credential Manager API를 사용하여 인증 과정을 간소화하는 방법 알아보기
- 샘플 앱: CredentialManager