외부 인증 프로바이더
외부 인증 프로바이더 (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 템플릿을 설정하지 않으면, 생성된 토큰이 기본으로 모든 그룹의 모든 데이터베이스에 접근할 수 있게 돼요.