본문 바로가기
WIKI 기술 지식 베이스

외부 인증 프로바이더

원문 보기 위키 갱신

외부 인증 프로바이더 (External Auth Providers)

토큰을 직접 관리하는 대신, 인증 프로바이더가 JWKS로 JWT 토큰을 발급하게 할 수 있어요. 기존 인증 인프라(예: Clerk, Auth0)를 그대로 활용할 수 있어요.

출처: 문서

본문

토큰을 수동으로 관리하는 대신, 인증 프로바이더가 JWKS를 통해 JWT 토큰을 발급하게 할 수 있어요. 이렇게 하면 기존 인증 인프라(예: Clerk, Auth0)를 그대로 활용할 수 있어요.

Turso 베타 기간에는 OIDC 프로바이더로 Clerk와 Auth0만 지원해요.

1. JWT 템플릿 생성하기

Turso CLI로 인증 프로바이더용 JWT 클레임 템플릿을 생성해요:

# Full access to a database
turso org jwks template --database <database-name> --scope full-access

# Read-only access to a group
turso org jwks template --group <group-name> --scope read-only

# Fine-grained permissions
turso org jwks template \
  --database <database-name> \
  --permissions all:data_read \
  --permissions comments:data_add

생성된 템플릿을 인증 프로바이더의 JWT 설정에 복사해 넣으세요.

2. Turso에 JWKS 엔드포인트 추가하기

인증 프로바이더의 JWKS 엔드포인트를 Turso 조직에 등록해요:

turso org jwks save <name> <url>

예를 들어 Clerk이라면:

turso org jwks save clerk https://your-app.clerk.accounts.dev/.well-known/jwks.json

Turso 대시보드의 조직 설정에서도 JWKS 엔드포인트를 추가할 수 있어요.

3. 애플리케이션에서 토큰 사용하기

인증 프로바이더에서 JWT를 받아 authToken으로 전달해요:

import { connect } from "@tursodatabase/serverless";

const authToken = await getAuthToken(); // e.g., from Clerk, Auth0

const db = connect({
  url: "<your-database-url>",
  authToken,
});

JWKS 엔드포인트 관리하기

# List all JWKS endpoints
turso org jwks list

# Remove a JWKS endpoint
turso org jwks remove <name>

특정 권한이 담긴 JWT 템플릿을 설정하지 않으면, 생성된 토큰이 기본으로 모든 그룹의 모든 데이터베이스에 접근할 수 있게 돼요.

더 알아보기 (Learn more)