• Idp
  • apache answer
  • community

Logto 사용 사례: Apache Answer를 원활하게 통합하여 사용자 커뮤니티 구축하기

Logto의 서드파티 앱 기능을 활용하여 Apache Answer를 통합하고, 사용자가 기존 계정을 사용하여 지원에 원활히 접근할 수 있는 통합 커뮤니티 플랫폼을 만드는 방법을 시연합니다.

Yijun
Yijun
Developer

사용자 인증에 몇 주를 낭비하지 마세요
Logto로 더 빠르게 안전한 앱을 출시하세요. 몇 분 만에 사용자 인증을 통합하고 핵심 제품에 집중하세요.
시작하기
Product screenshot

훌륭한 소프트웨어 제품을 구축하는 것은 중요한 성과지만, 실제로는 여정의 시작일 뿐입니다.

어떤 애플리케이션의 장기적인 성공과 발전은 사용자와의 이해와 참여에 크게 의존하며, 이는 피드백 수집, 문제점 식별, 질문 답변, 문제 해결을 포함하는 핵심 사이클인 반복과 개선을 이끕니다.

이 기사에서는:

  • Logto의 서드파티 애플리케이션 (OIDC) 기능이 어떻게 작동하는지 설명합니다.
  • Apache Answer를 통합하여 사용자가 질문을 하고, 아이디어를 공유하며, 팀 및 다른 사용자로부터 도움을 받을 수 있는 커뮤니티를 구축하는 방법을 보여줍니다.

Logto를 사용할 때의 하이라이트는 사용자가 커뮤니티에 로그인할 때 자사 시스템과 동일한 계정을 사용한다는 것입니다. 이를 통해 소프트웨어 내 사용자 상태를 쉽게 파악할 수 있으며, 여러 번의 문의가 필요 없게 됩니다.

Apache Answer란?

apache-answer.png

Apache Answer는 사용자와 팀을 연결하는 오픈 소스 Q&A 플랫폼입니다. 이 플랫폼은 지식 공유와 문제 해결을 위한 공간을 제공합니다. 실시간 Markdown 미리 보기, 고급 검색, 투표 시스템을 특징으로 합니다.

플랫폼은 OAuth 2.0 로그인을 기본적으로 지원합니다. 이는 Logto와 같은 기존 아이덴티티 제공자와의 자연스러운 호환성을 가집니다. 사용자는 커뮤니티 플랫폼을 위해 새로운 자격 증명을 생성하지 않고 기존 계정으로 로그인할 수 있습니다.

Logto의 서드파티 애플리케이션 기능 이해하기

사용자가 Logto 계정을 사용하여 서드파티 애플리케이션에 로그인하고자 할 때, Logto는 애플리케이션의 아이덴티티 제공자 (IdP) 역할을 합니다.

이를 사용자의 신원을 검증하는 중앙 권한으로 생각할 수 있습니다. 사용자가 메인 애플리케이션에 로그인하면, 로그토로 리디렉션되어 인증 과정(사용자명/비밀번호, 소셜 로그인 등)을 처리합니다. Logto가 사용자를 성공적으로 검증하면, 애플리케이션에 "네, 이 사용자는 합법적입니다."라고 알려주고, 그들의 기본적인 정보를 제공합니다.

이 개념은 메인 애플리케이션에만 한정되지 않습니다. Logto에는 강력한 기능인 서드파티 애플리케이션이 포함되어 있으며, 이는 Logto가 자체 애플리케이션은 물론 사용자가 접근하고자 하는 기타 외부 애플리케이션에 대해 IdP 역할을 수행할 수 있게 합니다.

이것은 **OpenID Connect (OIDC)**를 사용하여 이루어집니다. OIDC는 OAuth 2.0 프로토콜 위에 구축된 표준 아이덴티티 레이어입니다. 간단히 말해, OIDC는 애플리케이션(예: Relying Party나 Apache Answer로 알려진 클라이언트)이 아이덴티티 제공자(IdP; Logto)로부터 사용자 정보 요청 및 수신할 수 있게 합니다.

Apache Answer에 OIDC 애플리케이션을 Logto 내에서 구성할 때, 기본적으로 Logto에 "Apache Answer를 대신하여 사용자 검증 준비 상태로 있어주세요. 요청 시, 그리고 사용자가 허가한다면, Answer에 안전하게 기본 사용자 정보를 보내주세요."라고 이야기하는 것과 같습니다. 이 기능은 Logto 인증 애플리케이션과 Apache Answer와 같은 서드파티 도구 사이의 원활한 싱글 사인온(SSO)을 여는 키 역할을 합니다.

배경 설정: YourApp + Logto + Apache Answer

설정에 들어가기 전에, 우리의 시나리오에서 관련된 구성요소를 명확히 해 보겠습니다:

  1. YourApp: 사용자가 이미 등록 및 로그인하는 주요 웹 또는 모바일 애플리케이션입니다. 중요한 것은 YourApp이 인증을 위해 Logto와 통합되어 있다는 것입니다.
  2. Logto: 사용자의 계정을 관리하는 IdP 역할을 하는 중앙 IAM 플랫폼입니다.
  3. Apache Answer: YourApp 사용자를 위한 커뮤니티 허브로 배포하고자 하는 오픈 소스 Q&A 플랫폼입니다. 목표는 Logto를 사용하여 로그인하도록 Apache Answer를 구성하는 것입니다.

실습 단계: Logto 및 Apache Answer 구성

이제 실습해 보겠습니다. 이 과정은 Logto와 Apache Answer 모두 구성하는 것을 포함합니다.

Apache Answer 설치

공식 설치 가이드를 따라 Apache Answer를 설치하세요. 기본적으로 http://localhost:9080에서 접근할 수 있습니다.

Logto에 OIDC 애플리케이션 생성

  1. Logto 콘솔에 로그인합니다.
  2. 애플리케이션 페이지로 이동합니다.
  3. 페이지 오른쪽 상단에 있는 "애플리케이션 생성" 버튼을 클릭합니다. (이 버튼이 보이지 않으면, 프레임워크 목록 하단의 "모두 보기" 클릭)
  4. "서드파티 애플리케이션" 카테고리를 선택한 후, **"OIDC"**를 선택합니다.
  5. 애플리케이션 이름 (예: "Apache Answer Community") 및 설명 (선택사항)을 입력합니다.
  6. **"생성"**을 클릭하여 생성을 완료합니다. 애플리케이션 생성 후, 애플리케이션 세부정보 페이지로 리디렉션됩니다.
  7. 세부정보 페이지에서 http://localhost:9080/answer/api/v1/connector/redirect/basic리디렉션 URI 필드에 추가합니다.
  8. **"저장"**을 클릭하여 애플리케이션을 저장합니다.

Apache Answer 권한 구성

  1. 애플리케이션 세부정보 페이지에서 권한 탭으로 이동합니다.
  2. 사용자 데이터 권한 부여 섹션에서 "사용자 데이터 권한이 아직 설정되어 있지 않습니다."라는 메시지를 볼 수 있습니다.
  3. 추가 버튼을 클릭하여 Apache Answer가 접근할 수 있는 사용자 정보를 구성합니다.
  4. 로그인 시 Apache Answer가 기본 사용자 정보를 받을 수 있도록 필수 스코프 (profileemail)를 선택합니다.
  5. 권한 설정을 저장합니다.

logto-grant-permissions.png

Apache Answer에서 OAuth 로그인 구성

  1. 관리자로 Apache Answer에 로그인합니다.
  2. http://localhost:9080/admin관리자 대시보드를 방문합니다.
  3. 플러그인 -> 설치된 플러그인으로 이동하여 OAuth2 Basic 플러그인을 활성화합니다.
  4. OAuth2 Basic 플러그인 페이지로 이동합니다.
  5. Logto 서드파티 애플리케이션에 따라 다음 정보를 기입합니다:
    • 이름: 로그인 페이지에 표시될 연결자 이름
    • 클라이언트 ID: 애플리케이션 세부정보 페이지의 "앱 ID".
    • 클라이언트 비밀: 세부정보 페이지의 "엔드포인트 및 자격 증명" 섹션의 "앱 비밀".
    • 인증 URL: 세부정보 페이지의 "엔드포인트 및 자격 증명" 섹션의 "인증 엔드포인트".
    • 토큰 URL: 세부정보 페이지의 "엔드포인트 및 자격 증명" 섹션의 "토큰 엔드포인트".
    • 사용자 JSON URL: 세부정보 페이지의 "엔드포인트 및 자격 증명" 섹션의 "사용자 정보 엔드포인트".
    • 사용자 ID JSON 경로: sub.
    • 사용자 표시 이름 JSON 경로: name.
    • 사용자 이름 JSON 경로: username.
    • 사용자 이메일 JSON 경로: email.
    • 사용자 아바타 JSON 경로: picture.
    • 사용자 이메일 확인 JSON 경로: email_verified.
    • 스코프: openid,profile,email.
  6. Apache Answer에서 플러그인 구성을 저장합니다.

참고: 사용자 정보를 사용자 JSON URL에서 가져오기 위해 요구되는 OIDC 표준인 openid 스코프를 반드시 포함하십시오. Logto의 서드파티 애플리케이션은 OIDC를 기반으로 구현되었고, Apache Answer의 플러그인은 OAuth 2.0을 사용하므로, 두 시스템 간의 적절한 인증 흐름을 보장하기 위해 이 스코프가 필수적입니다.

체크 포인트: 통합 테스트

Logto와 Apache Answer가 구성되면, 원활한 사용자 경험을 살펴봅시다:

  1. Apache Answer를 방문하면, 로그인 페이지에 "Logto로 연결" 버튼이 보일 것입니다.

connect-with-logto.png

  1. 버튼을 클릭하면, Logto의 로그인 페이지로 리디렉션됩니다.

  2. "Logto로 연결" 버튼을 클릭한 후 기존 계정으로 로그인할 수 있는 Logto로 리디렉션됩니다. 이후, Apache Answer와 정보를 공유할 권한을 요청하는 승인 페이지가 표시됩니다.

consent-page.png

  1. 권한을 승인한 후, Apache Answer로 다시 리디렉션되어 로그인된 상태를 확인할 수 있습니다!

answer-dashboard.png

참고: Apache Answer는 로그인한 사용자가 이메일을 확인했는지 여부를 확인합니다. 사용자가 이메일 정보를 제공하지 않은 경우, Apache Answer는 이메일 정보를 제공하라고 요청할 것입니다.

통합의 장점 요약

왜 이러한 단계를 거쳐야 할까요? 장점은 다음과 같습니다:

  • 사용자 경험: 가장 분명한 장점입니다. 사용자는 새로운 자격 정보를 생성하거나 기억할 필요가 없습니다. 이미 신뢰하는 로그인을 사용하여 커뮤니티에 원활하고 마찰 없는 방식으로 참여할 수 있습니다. 이는 참여 장벽을 상당히 낮춥니다.
  • 개발 효율성: Apache Answer 내에서 별도의 사용자 인증, 등록, 비밀번호 재설정 흐름 등을 구축하고 유지할 필요가 전혀 없습니다. 기존 Logto 사용자 기반을 즉시 활용하여 커뮤니티를 더 빨리 런칭할 수 있습니다.
  • 보안: 인증이 Logto, 여러분의 전문 IAM 제공자에게 위임되어 있어, 다중 인증 (MFA), 비밀번호 정책, 강제 보호와 같은 보안 측면을 더 강력히 처리할 수 있습니다. 검증된 OIDC 표준에 의존합니다.
  • 제품 가치 & 지원 효율성: 사용자 아이덴티티를 분산시키지 않고 가치 있는 커뮤니티 기능을 즉시 추가합니다. 이전에 강조한 대로, 커뮤니티 사용자가 제품 사용자임을 아는 것은 지원 팀이 더욱 컨텍스트 있는 효율적인 도움을 제공할 수 있게 하여 사용자 만족도와 참여를 높입니다.

결론

서드파티 도구 통합은 풍부한 애플리케이션 생태계를 구축하기 위해 필수적이지만, 이러한 도구 간의 사용자 아이덴티티 관리가 큰 골칫거리가 될 수 있습니다. Apache Answer를 예로 들어, Logto의 서드파티 애플리케이션 (OIDC) 기능이 이 간극을 메우는 강력하고 표준화된 방법을 제공함을 보여드렸습니다.

Logto를 Apache Answer의 중앙 아이덴티티 제공자로 구성함으로써, 기존 사용자에게 매끄러운 로그인 경험을 제공하고 팀에게 통합된 사용자 아이덴티티의 이점을 제공합니다.

더욱 흥미로운 점은 이 패턴이 Q&A 플랫폼에만 한정되지 않는다는 것입니다. 이는 분석 대시보드, 프로젝트 관리 도구, 내부 유틸리티 등 무수한 다른 애플리케이션에도 적용할 수 있어, 일관되고 사용자 친화적인 소프트웨어 생태계를 구축할 수 있습니다.

Logto를 사용하여 다른 유용한 도구를 통합하는 방법에 대한 향후 기사도 기대해 주세요!