SnowPass

Function Definition

기능 매트릭스·오류 코드·기본 정책

액터 (actor) 는 4종이다: End User (최종 사용자), RP Backend (연동 서버, Java client library 사용), Browser SDK (JS SDK), SnowPass Admin (운영 관리자).

Feature Matrix (기능 매트릭스)

User Lifecycle (사용자 수명주기)

ID기능액터Endpoint설명
U-01사용자 등록/보장RP BackendPOST /v1/usersexternal user id (= RP 가 생성한 System User ID, UUID) 기준 idempotent upsert. loginId(사용자 ID, max 16)·email 부가 속성 포함
U-02MFA 상태 조회RP BackendGET /v1/users/{id}hasPasskey / hasTotp / 잠금 상태 / 남은 recovery code 수
U-03사용자 삭제RP BackendDELETE /v1/users/{id}credential 연쇄 삭제 (회원 탈퇴 연동)

PassKey (WebAuthn)

ID기능액터Endpoint설명
P-01등록 토큰 발급RP BackendPOST /v1/register/token (factor=PASSKEY)300초 1회용 sprt_*
P-02등록 optionsBrowser SDKPOST /p1/passkey/register/optionschallenge + excludeCredentials 포함 creation options
P-03등록 검증·저장Browser SDKPOST /p1/passkey/register/verifyattestation 검증, credential 저장, result token 반환
P-04인증 토큰 발급RP BackendPOST /v1/auth/token (factor=PASSKEY)미등록 시 FACTOR_NOT_ENROLLED 404
P-05인증 optionsBrowser SDKPOST /p1/passkey/auth/optionsallowCredentials 포함 request options
P-06인증 검증Browser SDKPOST /p1/passkey/auth/verifyassertion 검증, signature counter·last_used 갱신
P-07다중 기기 등록End UserP-01~03 반복기기별 passkey. excludeCredentials 로 중복 방지
P-08AAGUID 매핑Server 내부passkey provider 이름 표시 (1Password, Google Password Manager 등)

TOTP

ID기능액터Endpoint설명
T-01등록 토큰 발급RP BackendPOST /v1/register/token (factor=TOTP)
T-02등록 정보 조회Browser SDKPOST /p1/totp/register/optionssecret(Base32) + otpauth:// URI + QR PNG base64. secret 은 확정 전 ceremony payload 에만 암호화 보관
T-03등록 확인Browser SDKPOST /p1/totp/register/verify코드 확인 성공 시 credential 영속화 + recovery code 10개 원자적 발급
T-04인증Browser SDKPOST /p1/totp/auth/verify±1 step 창, timestep replay 차단 (CODE_REPLAYED), 5회 실패 lockout

Recovery & Helpdesk (복구·헬프데스크)

ID기능액터Endpoint설명
R-01recovery code 재발급RP BackendPOST /v1/users/{id}/recovery-codes미사용분 폐기 후 10개 신규. 평문은 응답 1회만
R-02recovery code 인증RP BackendPOST /v1/recovery/verify1회용, factor=RECOVERY result token
R-03bypass code 발급RP Backend / AdminPOST /v1/users/{id}/bypass-code, admin APITTL 기본 15분, 1회용 (헬프데스크 시나리오)
R-04bypass code 인증RP BackendPOST /v1/bypass/verifyfactor=BYPASS
R-05MFA 초기화RP Backend / AdminPOST /v1/users/{id}/mfa/reset, admin API전체 credential·recovery 폐기 + 잠금 해제 → 재등록 유도

Credential Management (credential 관리)

ID기능액터Endpoint설명
C-01목록 조회RP BackendGET /v1/users/{id}/credentialsnickname·provider·등록/최근 사용 시각·backup 상태
C-02별칭 변경RP BackendPATCH /v1/users/{id}/credentials/{cid}사용자 self-service 용
C-03passkey 삭제RP BackendDELETE /v1/users/{id}/credentials/{cid}last-credential guard: 마지막 credential 이면 409 LAST_CREDENTIAL (?force=true 로 우회)
C-04TOTP 해지RP BackendDELETE /v1/users/{id}/totp동일 guard

Verification (검증)

ID기능액터Endpoint설명
V-01result token 검증RP BackendPOST /v1/auth/verify서명·만료·aud(테넌트)·jti 1회용 검증
V-02JWKS 공개누구나GET /.well-known/jwks.json오프라인 JWT 검증용 공개키

Admin Console (관리 콘솔)

ID기능Endpoint설명
A-01관리자 로그인POST /admin/api/login세션 쿠키. 초기 계정 부팅 시 생성
A-02대시보드GET /admin/api/stats/dashboard테넌트/사용자/credential 수, 24h 성공·실패, 최근 이벤트
A-03테넌트 등록POST /admin/api/tenantsapi secret 은 응답에서 1회만 노출
A-04테넌트 수정PATCH /admin/api/tenants/{id}origins/rpId 변경 시 RelyingParty 캐시 무효화
A-05secret rotatePOST /admin/api/tenants/{id}/rotate-secret기존 secret 즉시 무효화
A-06사용자 검색/상세GET .../users, GET /admin/api/users/{id}credential·잠금·recovery 현황
A-07credential 폐기DELETE /admin/api/users/{id}/credentials/{cid}, .../totp분실·도난 대응
A-08MFA 초기화 / 잠금 해제 / bypass 발급POST .../mfa-reset, .../unlock, .../bypass-code헬프데스크 작업
A-09감사 로그 조회GET /admin/api/audit테넌트/사용자/이벤트/기간 필터 + 페이징

Error Codes (오류 코드)

응답 형식: {"error": {"code": "...", "message": "..."}}

코드HTTP의미
INVALID_API_KEY / INVALID_API_SECRET401API 자격 증명 오류
TOKEN_INVALID / TOKEN_EXPIRED / TOKEN_CONSUMED400ceremony/result token 오류 (없음·타입 불일치 / 만료 / 재사용)
USER_NOT_FOUND / FACTOR_NOT_ENROLLED404사용자 없음 / 해당 factor 미등록
USER_LOCKED429lockout 상태 (locked_until 포함)
CODE_INVALID / CODE_REPLAYED400코드 불일치 / TOTP 재사용 차단
CREDENTIAL_NOT_FOUND404credential 없음
LAST_CREDENTIAL409마지막 credential 삭제 시도
CEREMONY_FAILED400WebAuthn 검증 실패 (서명·origin·rpId 등)
ORIGIN_NOT_ALLOWED403테넌트 allowed_origins 밖의 Origin
ADMIN_UNAUTHORIZED401관리자 세션 없음

Policy Defaults (기본 정책)

정책기본값설정 키
등록 ceremony TTL300초snowpass.register-ceremony-ttl-seconds
인증 ceremony TTL180초snowpass.auth-ceremony-ttl-seconds
result token TTL120초snowpass.result-token-ttl-seconds
lockout 임계/기간5회 / 5분snowpass.lockout.*
TOTP 파라미터SHA-1 / 6자리 / 30초 / ±1 step고정 (Authenticator 앱 호환성)
recovery code10개, 10자 (혼동 문자 제외 알파벳)고정
userVerificationpreferredPasskeyService (테넌트별 정책화는 로드맵)

Out of Scope (v1 제외, 로드맵)

  • Conditional UI (자동완성 passkey), WebAuthn Signal API
  • attestation 정책 엔진 / FIDO MDS 연동 (기기 통제 요구 시)
  • 위험 신호 기반 recovery 게이트, webhook 이벤트 스트림
  • 관리자 RBAC 세분화 (현재 단일 ADMIN role)
  • RSA Authentication Manager 연동 (RADIUS/REST)

On this page