인증 및 SSO(Authentication & SSO)

인증 및 SSO(Authentication & SSO)

기본적으로 Langfuse는 이메일/비밀번호, 소셜 로그인(Google, GitHub, Microsoft), 그리고 ClickHouse Cloud 인증을 지원합니다. 이 문서는 각 인증 방식과 Enterprise SSO(Okta, Authentik 등)를 OIDC로 구성하는 방법을 설명해요. 보안을 높이려면 OIDC를 통한 Enterprise SSO를 설정할 수 있습니다.

출처: 문서

본문

기본적으로 Langfuse는 이메일/비밀번호, 소셜 로그인(Google, GitHub, Microsoft로 로그인), 그리고 ClickHouse Cloud를 통한 인증을 지원합니다.

보안을 높이기 위해 OIDC를 통해 Enterprise SSO(예: Okta, Authentik, GitHub Enterprise, OneLogin, Azure AD, Keycloak, JumpCloud 등)도 구성할 수 있습니다.

권한 부여(authorization)에 대한 자세한 내용은 RBAC 문서 를 참고하세요.

셀프 호스팅 인스턴스에 대해서는 Self-hosted Authentication and SSO 가이드 를 참고하세요.

이메일/비밀번호 인증

기본적으로 Langfuse는 이메일과 비밀번호 인증을 사용합니다. Langfuse는 표준 비밀번호 복잡성 요구사항을 적용합니다.

소셜 로그인으로 가입했다면 로그인 페이지의 "reset password(비밀번호 재설정)" 링크로 비밀번호를 추가할 수 있습니다.

소셜 및 제공자 로그인

간편한 접근을 위해 사용자는 기존 제공자 계정으로 로그인할 수 있습니다:

  • Google
  • GitHub
  • Microsoft (Azure AD/Entra ID)
  • ClickHouse Cloud

보안상의 이유로 Langfuse는 Google, GitHub, Microsoft 로그인 간 전환이나, 이메일/비밀번호로 가입한 뒤 이러한 소셜 로그인 중 하나로 가입하는 것을 지원하지 않습니다. ClickHouse Cloud는 아래에 설명된 대로 명시적인 계정 연결을 지원합니다.

ClickHouse Cloud 인증

사용자는 자신의 ClickHouse Cloud 계정으로 Langfuse Cloud에 로그인할 수 있습니다. 이 제공자는 모든 Langfuse Cloud 리전에서 사용할 수 있으며, 로그인 페이지의 다른 로그인 옵션 옆에 표시됩니다.

상세 내용:

  • 계정 연결: 다른 소셜 로그인과 달리 이미 Langfuse 계정이 있는 이메일로 ClickHouse Cloud에 로그인하면 두 계정이 연결됩니다. 기존 프로젝트, 멤버십, API 키가 그대로 이어지므로, 사용자는 새 계정을 만들지 않고 이메일/비밀번호나 다른 소셜 로그인에서 ClickHouse Cloud로 전환할 수 있습니다.
  • 로그인: 로그인 페이지에서 Sign in with ClickHouse Cloud를 클릭하고 ClickHouse Cloud 계정으로 인증하세요.

Enterprise SSO 및 SSO 강제(Enforcement)

이 기능은 어디에서 쓸 수 있나요?

플랜 사용 가능 여부
Hobby 사용 불가
Core 사용 불가
Pro Teams Add-on 필요
Enterprise 사용 가능
Self Hosted 사용 가능

Langfuse는 OIDC를 통해 Enterprise SSO(예: Okta, Authentik, OneLogin, Azure AD, Keycloak, WorkOS, JumpCloud 등)를 지원합니다.

Langfuse는 고객 조직당 여러 도메인을 지원하지만, 각 도메인은 내 조직이 독점적으로 소유해야 합니다. 공유 도메인(예: 하청업체나 컨설팅사에서 온 도메인)은 지원되지 않습니다.

상세 내용:

  • 마이그레이션: 이메일/비밀번호 또는 소셜 로그인으로 가입한 기존 사용자는 Enterprise SSO 제공자가 설정되면 자동으로 마이그레이션됩니다.
  • 권한 부여: Enterprise SSO는 가입 시 새 사용자에게 역할 을 자동으로 프로비저닝하지 않습니다. 사용자는 UI(settings > members) 또는 SCIM API 를 통해 조직에 초대되어야 합니다.
  • 로그인: Enterprise SSO 제공자로 로그인하려면 (1) 이메일 주소를 입력하고 (2) "Continue"를 누르세요. Enterprise SSO 제공자로 리디렉션되어 인증하게 됩니다.

Langfuse는 OIDC만 인증으로 지원합니다. SAML은 지원되지 않습니다.

Langfuse Cloud에서 Enterprise SSO 구성

조직 관리자는 Organization Settings > SSO에서 직접 Enterprise SSO를 구성할 수 있습니다.

1) 도메인 확인

  • Organization Settings > SSO로 이동
  • Verify Domain 섹션에서 Add Domain을 클릭하고 확인할 도메인을 입력
  • Langfuse가 제공하는 DNS TXT 레코드를 DNS 제공자에 복사
  • DNS 전파를 기다린 뒤 Verify를 클릭해 도메인을 확인

SSO를 구성하려면 먼저 도메인 확인이 필요합니다. 이렇게 해야 도메인을 제어하는 조직만 도메인에 SSO를 구성할 수 있습니다. 확인이 실패하면 레코드 이름/값이 정확히 일치하는지, 따옴표가 제거됐는지 확인하고 전파 후 다시 확인하세요. 많은 DNS 제공자는 몇 분이 걸리지만 최대 24시간까지 걸릴 수 있습니다.

2) SSO 구성

  • SSO Configuration 섹션에서 설정할 확인된 도메인 옆의 Configure SSO를 클릭
  • Langfuse가 제공하는 callback URL을 복사해 IdP 애플리케이션의 redirect/callback URL 허용 목록에 추가
  • IdP에서 issuer URL, client ID, client secret을 입력하고 구성을 저장
  • 확인된 도메인의 사용자로 로그인 테스트

GitHub와 GitHub Enterprise는 표준 OIDC discovery 엔드포인트를 노출하지 않습니다. Langfuse는 설정 중에 이 issuer URL을 사전 검증할 수 없습니다. IdP에서 issuer와 callback URL 허용 목록을 다시 확인하고, 저장 직후 테스트 로그인을 실행해 롤아웃 전에 실수를 잡으세요.

SSO 강제 시 잠금 방지

SSO 강제(enforcement)는 이미 활성화된 세션을 종료하지 않습니다. 강제를 활성화한 후에도 현재 브라우저 세션은 로그인 상태를 유지합니다. 이를 이용해 안전하게 검증하세요. 강제를 활성화한 다음 별도 브라우저나 시크릿/비공개 창에서 SSO 로그인을 테스트하세요. 로그인이 예상대로 되지 않으면 아직 활성화된 세션에서 구성을 되돌리세요.

Break-Glass 사용자

Langfuse는 강제된 도메인에 대한 예외를 지원하지 않습니다. 도메인에 SSO 강제가 활성화된 이후 이메일/비밀번호 로그인을 계속 사용할 수 있는 "break glass" 계정은 없습니다. 이 기능이 필요하다면 GitHub discussion 에 upvote 해 주세요.

벤더 가이드(Vendor Guides)

Okta

Step 1: Okta에서 OIDC 애플리케이션 생성

  • Okta Admin Console에 로그인
  • Applications > Applications로 이동
  • Create App Integration 클릭
  • Sign-in method로 OIDC - OpenID Connect 선택
  • Application type으로 Web Application 선택
  • Next 클릭

Step 2: 애플리케이션 구성

  • App integration name 입력 (예: "Langfuse")
  • Sign-in redirect URI를 다음으로 설정:
https://<langfuse-url>/api/auth/callback/<domain>.okta

예: https://cloud.langfuse.com/api/auth/callback/example.com.okta

  • (선택) 필요 시 Sign-out redirect URI 설정
  • (Scopes) Langfuse는 인증 중에 scopes를 사용하지 않음
  • Assignments에서 사용자 할당 방식 선택
  • Save 클릭

Step 3: 자격 증명 가져오기

  • 애플리케이션의 General 탭에서 Client IDClient Secret 복사
  • 내 Okta Issuer URL 기록 (예: https://example.okta.com)

Step 4: Langfuse에서 도메인 확인

  • Langfuse에서 Organization Settings > SSO 열기
  • Verify Domain 섹션에서 Add Domain 클릭 후 Okta를 사용할 도메인 입력
  • Langfuse가 제공하는 DNS TXT 레코드를 DNS 제공자에 복사
  • DNS 전파를 기다린 뒤 Langfuse에서 Verify 클릭

Step 5: Langfuse에서 SSO 구성

  • Organization Settings > SSOSSO Configuration 섹션에서 확인된 도메인 찾기
  • Configure SSO 클릭
  • 제공자로 Okta 선택
  • Langfuse가 표시하는 callback URL을 복사해 Okta의 Sign-in redirect URIs 허용 목록에 추가
  • Issuer URL, Client ID, Client Secret 입력
  • 구성 저장

Step 6: 사용자 할당

  • Okta에서 내 Langfuse 애플리케이션의 Assignments 탭으로 이동
  • Langfuse에 접근해야 하는 사용자나 그룹 할당
IdP-Initiated SSO

Langfuse는 IdP-initiated SSO(Identity Provider-initiated Single Sign-On)를 지원합니다. 사용자는 Langfuse가 아니라 Okta에서 직접 SSO 흐름을 시작할 수 있습니다.

IdP-initiated SSO 인증 흐름 예시(Okta):

IdP-initiated SSO를 활성화하려면 Okta가 사용자를 다음으로 리디렉션하도록 구성하세요:

https://cloud.langfuse.com/auth/sso-initiate?provider=<PROVIDER>
  • <PROVIDER>를 callback URL의 마지막 부분(예: example.com.okta)으로 바꾸세요.
  • Okta 설정에서 Redirect to app to initiate login (OIDC Compliant) 옵션을 사용하세요.
SCIM을 통한 사용자 프로비저닝

Okta는 커스텀 OIDC 앱에서 SCIM을 지원하지 않으므로, 위의 OIDC 앱 외에 SCIM 프로비저닝 전용의 두 번째 Okta 애플리케이션이 필요합니다. Okta SCIM 설정 가이드 를 참고하세요.

관련 자료(Related Resources)

  • SCIM & Organization API — SSO 구성 후 사용자 프로비저닝, 역할 할당, 프로젝트 설정을 자동화

더 알아보기 (Learn more)