1. 소개
이 절은 비규범적이다.
WebAuthn 신뢰 당사자(RP)는 현재 자신이 패스키를 지원한다는 것, 사용자가 해당 서비스를 위한 패스키를 만들 수 있는 위치, 그리고 해당 서비스를 위한 기존 패스키를 관리할 수 있는 위치를 프로그래밍 방식으로 알릴 방법이 없다. 패스키는 로그인 이외에도 서명과 암호화 같은 추가 기능에 사용할 수 있다. 패스키별 엔드포인트 집합을 정의하는 잘 알려진 URL을 제안함으로써, 이 명세는 WebAuthn 클라이언트와 자격 증명 관리자(인증자)가 사용자가 계정 설정과 도움말 페이지를 뒤져야 하는 대신 워크플로별 및 정보성 엔드포인트로 직접 연결할 수 있게 한다.
2. 기반 구조
이 명세는 Infra Standard에 의존한다. [INFRA]
이 명세는 Fetch, HTML, HTTP 및 URL 표준의 용어를 사용한다. [FETCH] [HTML] [HTTP-SEMANTICS] [URL]
3. 패스키 엔드포인트 URL
패스키 지원을
알리고/또는 패스키 생성과 관리를 위한 직접 엔드포인트를 제공하기 위해,
신뢰
당사자는 [WELL-KNOWN]에 따라
https 스킴과 신뢰 당사자 식별자에
문자열 .well-known/passkey-endpoints를 연결하여 형성한 경로에
JSON 문서를 호스트해야 한다. 리다이렉트는 반환되어서는 안 된다.
RP ID
"example.com"에 대한 패스키 엔드포인트 URL은
"https://example.com/.well-known/passkey-endpoints"이다.
3.1. 서버 응답
이 문맥에서 서버는 WebAuthn 신뢰 당사자(RP)로, 패스키를 지원한다.
성공 응답은 200 OK HTTP 상태 코드를 사용하고
application/json 콘텐츠 유형을 사용하여 JSON 객체를 반환해야 한다.
반환된 JSON 객체는 아래에 정의된 멤버 중 어느 것이든 포함할 수 있다.
- enroll
-
이 OPTIONAL 멤버는 사용자 계정의 패스키 생성 페이지로 가는 직접 URL을 포함한다
- manage
-
이 OPTIONAL 멤버는 사용자 계정의 패스키 관리 페이지로 가는 직접 URL을 포함한다
- prfUsageDetails
-
이 OPTIONAL 멤버는 RP가 WebAuthn Pseudo-Random Function Extension(PRF)을 어떻게 사용하는지 설명하는 정보성 페이지의 URL을 포함한다.
HTTP / 1.1 200 OK Content-Type : application/json { "enroll" : "https://example.com/account/manage/passkeys/create" , "manage" : "https://example.com/account/manage/passkeys" , "prfUsageDetails" : "https://example.com/help/passkeys#encryption" }
빈 JSON 객체를 반환하여 패스키 지원을 신호할 수 있지만, 특정 엔드포인트를 알리지는 않는다.
3.2. 클라이언트 처리
이 문맥에서 클라이언트는 WebAuthn WebAuthn 클라이언트 또는 자격 증명 관리자(인증자)일 수 있다.
패스키의 신뢰 당사자 식별자가 주어졌을 때, 다음 단계를 실행하여 패스키 엔드포인트 URL을 생성한다:
-
url을 다음과 같이 값이 설정된 새
URL이라고 하자:- 스킴
-
"https"
- 호스트
-
패스키의 신뢰 당사자 식별자
- 포트
-
null
- 경로
-
« ".well-known", "passkey-endpoints" ».
-
url을 반환한다.
RP ID
"example.com"에 대한 패스키
엔드포인트 URL은
"https://example.com/.well-known/passkey-endpoints"이다.
4. WebAuthn 클라이언트와 자격 증명 관리자에 의한 사용
이 절은 비규범적이다.
enroll
패스키 등록은 일반적으로 RP의 비즈니스 로직과 세션 문맥에 의해 구동된다. 때로는 사용자가 비밀번호로 성공적으로 로그인한 뒤나 비밀번호 재설정 흐름을 거친 뒤 발생할 수 있고, 또 다른 경우에는 사용자가 전용 "패스키 생성" 페이지를 방문할 때 발생할 수 있다.
이러한 패스키 생성 진입점은 계정 설정이나 도움말 페이지 안에 묻혀 있는 경우가 많기 때문에 사용자가 찾기 어려울 수 있다.
이 멤버가 존재할 때의 사용 예:
-
자격 증명 관리자는 지정된 계정 항목에 "패스키 업그레이드 사용 가능" 버튼을 표시하여, 사용자를 기본 브라우저에서 RP의 패스키 생성 페이지로 직접 이동시킬 수 있다.
-
자격 증명 관리자는 사용자가 비밀번호로 로그인한 것을 감지한 뒤, 사용자에게 알림을 표시하고, 이를 클릭하면 사용자를 기본 브라우저에서 RP의 패스키 생성 페이지로 직접 이동시키는 패스키 업그레이드 흐름을 제공할 수 있다.
-
WebAuthn 클라이언트는 사용자가 비밀번호로 로그인한 것을 감지한 뒤, 사용자에게 알림을 표시하고, 이를 클릭하면 사용자를 RP의 패스키 생성 페이지로 직접 이동시키는 패스키 업그레이드 흐름을 제공할 수 있다.
manage
자격 증명 관리는 계정 설정 안에 묻혀 있는 경우가 많으며, 이는 사용자가 찾기 어려울 수 있다.
이 멤버가 존재할 때, 자격 증명 관리자는 RP의 패스키(또는 일반 자격 증명 관리) 페이지로 가는 직접 링크를 표시할 수 있다.
prfUsageDetails
일부 신뢰 당사자(RP)는 사용자 데이터를 서명하거나 암호화하기 위해 WebAuthn Pseudo-Random Function(PRF) Extension을 사용한다. 패스키는 주로 인증을 위해 설계되었기 때문에, 사용자는 PRF가 활성화된 패스키를 삭제하면 저장된 데이터나 다른 기능에 영향을 줄 수 있다는 사실을 알지 못할 수 있다.
PRF를 활용하는 RP는 자신의 패스키가 인증을 넘어 어떻게 사용되는지와 삭제의 영향을 자세히 설명하는
전용 정보성 페이지를 제공해야 한다. 이 페이지의 URL은
prfUsageDetails 키의 값이어야 한다.
이 멤버가 존재할 때, 자격 증명 관리자는 패스키 삭제 흐름 중에 RP의 정보성 페이지로 가는 링크를 포함하여 경고를 표시해야 한다.
5. IANA 고려사항
5.1.
passkey-endpoints 잘 알려진 URI
이 문서는 ".well-known" URI passkey-endpoints를 정의한다.
이 등록은 [WELL-KNOWN]에 정의된 템플릿을 사용하여
검토, 승인 및 IANA 등록을 위해 IESG에 제출될 것이며, 그 내용은 다음과 같다:
- URI suffix
-
passkey-endpoints
- Change controller
-
W3C
- Specification document(s)
-
이 문서가 관련 명세이다. (§ 3.1 서버 응답 참조)
- Related information:
-
없음.
감사의 말
이 제안에 피드백을 제공해 준 Arnar Birgisson, Rew Islam, Adam Langley, René Léveillé, Matthew Miller, Ricky Mondello, Dan Veditz에게 감사한다.