Discourse에서 StackExchange와 유사한 SSO/연동 로그인 서비스를 제공해 주실 수 있을까요?

요즘 어디서나 Discourse를 보게 되는데, 정말 기쁩니다! 새로운 토론 포럼을 빠르게 설정하거나, 구식 플랫폼과 낡은 UX 패턴 기반의 기존 포럼을 대체하려는 커뮤니티의 표준 선택지로 빠르게 자리 잡고 있는 것 같습니다.

하지만 어떤 면에서는 자신의 성공에 따른 부작용을 겪는 것 같습니다. 새로운 Discourse 커뮤니티에 게시물을 올리고 싶을 때마다 계정을 만들고, 비밀번호를 설정하는 등 번거로운 절차를 거쳐야 합니다. 일부 커뮤니티는 Github, 소셜 미디어 등을 통한 OAuth를 설정해 주었지만, 많은 곳은 그렇지 않습니다. 단 하나의 질문을 하거나, 답변을 제공하거나, 도움이 된 답변에 :heart:를 누르기 위해 해당 Discourse 서버에서 새로운 계정을 만들고 인증해야 합니다.

이것을 StackExchange 네트워크에서의 경험과 비교해 보면, 처음 상호작용하려는 커뮤니티에 ‘이 커뮤니티에 참여하기’ 버튼이 제공됩니다. 이 버튼을 클릭하면 다른 커뮤니티에서 사용 중인 로그인 정보로 가입할 수 있는 제안을 받게 됩니다:

새로운 계정은 클릭 한 번으로 자동으로 생성되고 로그인됩니다.

제 문제는 각 Discourse 커뮤니티가 독립적인 섬과 같으며, 사용자가 하루 종일 단일 포럼에 로그인한 채로 답변과 새로운 질문을 기다리며 배지를 획득하고 권한을 쌓는 재미를 느낀다는 암묵적인 전제가 있다는 것입니다. 현실에서는 사용자의 상호작용의 대부분은 필요에 의해 발생하며, 커뮤니티에 정기적으로 참여하는 앵커 역할을 하는 사용자는 극소수에 불과합니다. 일반적인 사용자가 Discourse 커뮤니티와 상호작용하는 방식은 다음과 같습니다:

  1. 문제가 생김
  2. 답을 찾기 위해 구글 검색
  3. 해당 그룹의 Discourse 포럼을 포함한 인터넷 어디에서도 해결책을 찾지 못함
  4. 내 문제가 포럼에 계정을 만들 만큼 시급하다고 판단
  5. 질문을 하거나 기존 질문에 댓글을 달음
  6. 누군가로부터 답변을 받거나, 결국 혼자서 해결함
  7. 혼자서 해결했고 사회적인 마음이 나면, 내 해결책을 Discourse 포럼에 보고함
  8. 일상으로 돌아감
  9. 몇 년 후, 또 다른 문제가 생겨 포럼에 다시 로그인할 수 있도록 자격 증명을 기억하려 함
  10. 5~10단계 반복

이 과정의 상당 부분은 참여하려는 모든 새 포럼마다 새 계정을 만들어야 한다는 사실로 인해 저해됩니다.

StackExchange 커뮤니티는 중앙 회사가 관리하는 반면, Discourse 커뮤니티는 완전히 탈중앙화 방식으로 호스팅된다는 점은 알고 있습니다. 하지만 Discourse가 자체 ID 제공자 서비스를 구축한다면 구현할 수 있을 것 같습니다. 포럼 관리자가 외부 웹사이트에서 능동적인 조치를 취해야 하는 Github나 Facebook 같은 서비스와의 OAuth 통합과 달리, ‘Discourse로 로그인’ 버튼에 필요한 토큰은 표준 설치 과정을 통해 자동으로 설정될 수 있을 것 같습니다.

이 문제에 대해 다른 대화들이 있었음을 알고 있지만, 범위가 지나치게 복잡하고 본질에서 벗어난 것 같습니다.

2개의 좋아요

이는 로그인과 달리 게시물과 답변을 중심으로 Discourse를 Mastodon 같은 도구와 연결하는 다른 종류의 연동(federation)입니다.

meta의 여러 주제에서 논의되고 있는 Discourse SSO를 확인해 보시는 것이 좋습니다.

1개의 좋아요

말씀하신 내용은 Discourse 초기에 많이 논의되었습니다. 관련 태그가 있습니다: #discourse_hub

가장 최근의 토픽은 2014년 것입니다:

(또한, 제프가 @david라는 이름을 예시로 사용했다는 것을 방금 알게 되었는데, 저는 Discourse를 알게 되기 훨씬 전에 이미 그렇게 사용되고 있었더군요 :joy:)

매우 멋진 아이디어이지만, 해결해야 할 장애물이 많습니다.

6개의 좋아요

좋아요, 감사합니다! 지난 6년 정도 동안 SE(스택 익스체인지)가 해당 스레드에 언급된 많은 문제를 해결한 것으로 보입니다(예를 들어, 사용자에 대해 숫자+사용자명을 고유 식별자로 사용함).

문제의 핵심은 SE와 달리 Discourse가 탈중앙화되어 있으며, 각 커뮤니티가 해당 서버를 운영하는 사람에 의해 완전히 통제된다는 점인 것 같습니다. 또한, 커뮤니티를 더 접근하기 쉽게 만들기 위해 일부 통제권을 포기하기를 원하지 않는 관리자들은 Discourse Hub에서 옵트아웃할 수 있는 옵션을 가질 수 있다고 주장합니다. 다만, 이 결정이 접근성과 사용자 참여도 감소라는 형태로 대가를 치르게 된다는 점을 이해해야 합니다.

우리는 “DiscourseHub” 제공자를 위한 기본 소셜 로그인을 기본 활성화 상태로 출시할 수 있습니다. 여기에는 모든 기본 필드(사용자 이름, 이름, 이메일, 아바타, 자기소개)에 대한 완전한 지원과 같은 추가 기능이 포함될 수 있으며, 심지어 양방향 동기화도 제공할 수 있습니다(방금 생성된 사용자 계정을 크롤링하여 배지나 최고 게시물과 같은 세부 정보를 중앙 프로필에 게시하는 시도). 우리는 이를 통해 큰 최소 비밀번호 길이와 필수 2FA(이중 인증)와 같은 최고의 표준을 강제하는 데에도 활용할 수 있습니다.

그런데 우리가 이렇게 해야 하는지는 여전히 열린 질문입니다.

3개의 좋아요

이것이 (우리가 관리하는) 중앙 집중식 디렉토리로 해결될 부분은 얼마나 될까요?

각 사이트에서 여전히 새 계정을 생성해야 하며, 각 사이트는 (예를 들어) 가입 시 필요한 필드가 다를 수 있습니다. 우리는 대부분의 정보를 채워 넣을 수 있지만, 여전히 사용자가 이를 확인해야 합니다. 아바타는 예를 들어 Gravatar와 같은 서비스로 이미 잘 해결되고 있습니다.

자격 증명을 기억하려 한다는 점에 대해: 간헐적으로만 로그인하는 커뮤니티를 사용할 때는 이메일 로그인이 가장 좋은 방법입니다 - 활성화되어 있을 때마다 이렇게 사용하곤 합니다.

우리가 또 다른 인증 제공자가 되기 전에 고려해야 할, 반드시 해결해야 하는 구체적인 문제를 보고 싶습니다. 저는 탈중앙화를 버그가 아닌 기능으로 봅니다 :slight_smile:

6개의 좋아요

이 주제에 대해… 제가 100% 지지하는 테마 컴포넌트 하나는 인증을 100% 이메일 기반으로 전환하는 변경 사항입니다.

  • 가입할 때 … 이메일 주소, 사용자 이름, 이름만 입력하면 됩니다 … 비밀번호 없음
  • 로그인할 때 … 이메일 주소만 입력하면 됩니다 … 비밀번호 없음

우리는 이미 이메일을 통한 비밀번호 없는 로그인을 지원하고 있지만, 다소 숨겨져 있습니다. 비밀번호를 없애면 이 기능이 완전히 명확해지고 많은 마찰을 제거할 수 있을 것입니다.

물론 당분간 Discourse의 기본 설정은 아니겠지만, 제 생각에 매우 흥미로운 테마 컴포넌트입니다.

1개의 좋아요