패스키를 통한 비밀번호 없는 로그인 지원

:wave: 안녕하세요, Ruby passkeys 조직의 주요 유지보수자 중 한 명인 Thomas Cannon입니다!

이를 돕기 위해 몇 가지 라이브러리가 정리되어 있지만, 유지보수자가 절실히 필요합니다. 관련 링크는 아래와 같습니다:

가능한 한 많이 도움을 드리고자 하며, Ruby 생태계 전반에서 passkeys를 표준으로 정착시키기 위해 자원을 함께 모으고 싶습니다 :flexed_biceps:

8개의 좋아요

Thomas님, 안녕하세요.

Discourse는 webauthn을 기반으로 2FA를 직접 구현한 자체 인증 시스템을 제공합니다. 현재 우리가 가진 가장 큰 부족함은 2FA를 유일한 인증 요소로(선택적으로) 허용하지 않는다는 점이라고 생각합니다.

어제부터 구글도 이에 완전히 동참하고 있습니다. Passkeys: What they are and how to use them

Discourse에서도 이를 옵션으로 제공하기를 진심으로 바랍니다. 저는 비밀번호를 정말 싫어하고, 2FA + 챌린지 방식은 비밀번호보다 본질적으로 더 나은 방법이라고 확신합니다.

7개의 좋아요

대단하네요! 제가 어떤 식으로 도움을 드릴 수 있을까요?

2개의 좋아요

어렵긴 하네요. 얼마나 깊이 파고들고 싶은지에 따라 달라집니다. 사이트 설정을 추가하는 프로토타입 PR을 올려주시면 정말 좋겠지만, 이 작업이 꽤 많은 시간을 요한다는 점도 충분히 이해합니다.

2개의 좋아요

내가 해볼게! 보장할 수는 없지만, 점심 전에 나보다 먼저 해보고 싶은 사람이 있으면 마음대로 해!

5개의 좋아요

간단한 업데이트 소식입니다: Discourse의 패스키(passkey) 지원이 곧 제공됩니다. 지난 몇 주 동안 이 작업을 진행해 왔으며, 몇 개의 초안 PR이 준비되어 있습니다. #23586, #23587 및 #23591을 확인해 주세요.

약 3~4주 후에 이 기능을 병합할 수 있을 것 같습니다(기본적으로 꺼져 있는 사이트 설정 뒤에). 테스트 및 버그 수정을 위해 몇 주 더 시간을 들인다면, 약 두 달 안에 프로덕션 배포가 가능한 상태로 만들 수 있을 것으로 예상합니다. 지켜봐 주세요!

10개의 좋아요

안녕하세요! Discourse에서 패스키에 대해 새로운 소식이나 발표가 있나요?

2개의 좋아요

이 기능에 대한 최종 PR이 일주일 전에 병합된 것으로 보이며, 사이트 설정의 이름은 현재 experimental_passkeys인 것 같습니다 (현재 숨겨진 설정입니다).

1개의 좋아요

방금 사이트 설정을 활성화하고, 제가 운영에 도움을 주고 있는 포럼 계정에 패스키를 추가했는데, 완벽하게 작동하는 것 같습니다. 특정 사이트에서 미리 활성화하려면 다음과 같이 하면 됩니다:

cd /var/discourse
./launcher enter app
rails c
SiteSetting.experimental_passkeys=true

활성화된 후에는 https://forum.example.com/my/preferences/security 를 열고 패스키를 추가한 다음, 로그아웃을 한 뒤 패스키로 로그인 옵션을 사용하여 다시 로그인하면 되는 것 같습니다.

3개의 좋아요

여러분, 네, 패스키(paskeys) 지원을 추가하는 몇 가지 PR을 병합했으며 이미 내부에서 테스트를 진행 중입니다.

위 단계가 정확합니다. 이 기능을 매우 매우 초기 단계에서 테스트해 보시려면 위 내용을 참고해 주세요. 다만 아직 몇 가지 사항을 세밀하게 조정하고 있으며, 공식 업데이트/공지는 곧 나올 예정입니다.

9개의 좋아요

공식 발표 전에 업데이트를 하나 더 올립니다. 이제 meta에서 패스키(passkeys)가 활성화되었습니다. 직접 사용해 보고, 문제가 발생하면 이 주제의 답글로 보고해 주세요.

실험적 플래그를 유지하면서 이 기능을 약 한 주 정도 더 테스트할 계획입니다. 이후 공식적으로 발표하고 실험적 사이트 설정을 제거할 예정입니다(즉, 로컬 로그인을 사용하는 모든 인스턴스에서 패스키 지원이 기본적으로 활성화됩니다).

7개의 좋아요

데스크톱(Windows 11, Chrome)에서 테스트해 보았고, 완벽하게 작동합니다! :+1:

보통 Google 계정으로 로그인하기 때문에 비밀번호를 모르므로, 신원 확인을 위해 비밀번호 재설정 이메일 보내기 버튼을 눌러야 했습니다. :sweat_smile:


Android(10)와 Chrome/앱에서 테스트해 보았습니다. 잘 작동하지만, 다음과 같은 문제가 있습니다:

  • 입력란을 터치하면 패스키 모달이 열립니다.
    • 모달을 무시하고 입력란을 다시 터치하면 텍스트를 입력할 수 있습니다.
  • 버튼을 터치하면 아무 반응이 없습니다(버튼이 선택되고 키보드가 닫히는 것 제외).


(좋네요, 왜인지 모르겠지만 버벅거립니다)

5개의 좋아요

@Arkshine, 보고해 주셔서 감사합니다. 2일 전 커밋에서 모바일 컴포넌트에 대한 작은 변경 사항을 누락한 채로 남겨두었네요. 다소 부끄러운 실수였는데, 모든 모바일 기기에서 버튼이 아무 동작도 하지 않았거든요.

어쨌든 지금은 수정했습니다. 제 안드로이드 기기에서 테스트해 봤고, 여러분에게도 정상적으로 작동할 것입니다.

2개의 좋아요

네, 이제 작동하네요. 감사합니다! :smile:

2개의 좋아요

ChromeOS 시스템이 Discourse에서 패스키로 사용될 수 없는 것 같습니다(다른 웹사이트에서는 패스키로 사용할 수 있음). 이것이 의도된 것인가요?

특별히 차단하고 있는 건 아닙니다. 정확히 "chromeos system"이란 무엇인가요? ChromeOS에서 실행 중인 Chrome을 말씀하시는 건가요? 브라우저와 OS 버전을 공유해 주실 수 있을까요?

그렇습니다.

물론입니다.
chrome://version에서 확인한 내용입니다:

Key Value
Google Chrome 118.0.5993.86 (Official Build) (64-bit)
Revision d9a55e23605b9c433d369a305c71114843ec754d-refs/branch-heads/5993@{#1287}
Platform 15604.45.0 (Official Build) stable-channel octopus
User Agent Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36

이 정도 정보면 충분한가요?

이 컴퓨터로 패스키를 추가하려고 하면 다음과 같은 문제가 발생합니다(첫 번째 메뉴에서 “이 기기” 옵션을 선택함):


1개의 좋아요

아, 흥미롭네요. 스크린샷 올려주셔서 감사합니다. 디바이스가 사용자 인증을 지원하지 않는 것 같습니다. 터치/페이스ID나 PIN을 사용하여 디바이스를 잠금 해제할 수 있나요?

이 페이지에 따르면, Chrome OS 지원 상태가 불안정한 것으로 보입니다.

1개의 좋아요

지원한다고 생각합니다.

비밀번호를 사용하고 있습니다. 참고로, 웹오스(WebAuthn)를 사용하여 이 기기를 계정의 2FA(2단계 인증) 수단으로 추가할 수는 있지만, 패스키로 추가하는 것은 불가능합니다.

1개의 좋아요