Auth Stack 개발자들은 Auth0를 포기하고 있습니다.

비용이 많이 들고 제한적인 Auth0와 같은 인증 플랫폼에 지치셨나요? Ory Kratos를 만나보세요. 오픈 소스이며 자체 호스팅이 가능한 아이덴티티 서버로, 개발자에게 공급자 의존 없이 완전한 제어를 제공합니다.

Stork.AI
Hero image for: Auth Stack 개발자들은 Auth0를 포기하고 있습니다.
💡

TL;DR / Key Takeaways

비용이 많이 들고 제한적인 Auth0와 같은 인증 플랫폼에 지치셨나요? Ory Kratos를 만나보세요. 오픈 소스이며 자체 호스팅이 가능한 아이덴티티 서버로, 개발자에게 공급자 의존 없이 완전한 제어를 제공합니다.

관리형 인증의 황금 수갑

관리형 아이덴티티는 청구서가 도착할 때까지는 편리해 보입니다. Auth0Okta와 같은 서비스는 월간 활성 사용자 수에 따라 요금을 부과하므로, 사용자가 10,000명에서 100,000명으로 증가하는 제품은 인증 비용이 매달 수백 달러에서 수만 달러로 급증할 수 있습니다. B2C 앱에서 불규칙한 트래픽을 가진 경우, 그 MAU 미터는 예측 가능한 항목이 아닌 성장에 대한 세금처럼 됩니다.

벤더 종속성은 고통을 가중시킵니다. 로그인 흐름, 규칙 및 사용자 메타데이터를 독점적인 규칙 엔진에 연결하면, 이전은 마치 심장 수술과 같습니다. 맞춤 작업, 독점 토큰 및 호스팅된 로그인 페이지는 팀이 핵심 인증 논리를 변경하기보다는 계속 비용을 지불하도록 유도합니다.

엄격하게 제어된 생태계는 안전성을 약속하지만 종종 경직성을 제공합니다. 많은 서비스 제공업체들은 그들의 호스팅된 UI, SDK, 그리고 그들의 고정관념이 반영된 흐름을 통해 당신을 강제로 지나가게 하여, 새 인증 단계를 추가하거나 특이한 레거시 SSO를 지원하는 것과 같이 간단한 사용자 정의도 플랫폼과 싸우는 것처럼 느끼게 만듭니다. 비표준 로그인 경로가 필요할 때, 실제로 당신이 가질 수 있는 여지가 얼마나 적은지를 깨닫게 됩니다.

데이터 소유권은 또 다른 불편함을 추가합니다. 사용자 ID, 세션, 감사 로그는 다른 사람의 클라우드에 저장되며, 불투명한 내부 정책과 속도 제한에 의해 관리됩니다. 데이터 내보내기 API는 존재하지만, 스키마, 인덱스 또는 데이터가 백업에서 실제로 얼마나 오래 지속되는지를 제어하는 저수준의 권한을 제공하지는 않습니다.

규제가 있는 산업의 스타트업들은 이러한 제약이 현실과 빠르게 충돌하게 됩니다. EU, 헬스케어, 또는 핀테크에서의 엄격한 데이터 거주 규칙은 사용자 테이블이 특정 지역 또는 특정 데이터베이스 클러스터에 존재해야 한다고 요구하는 경우가 많습니다. 당신의 공급자가 “우리의 로드맵”이나 기업 전용 지역으로 대답할 때, 당신의 컴플라이언스 팀은 왜 인증이 아예 외주화되었는지에 대해 의문을 제기하기 시작합니다.

개발자들은 더 많은 통제, 더 많은 투명성, 그리고 전체 스택을 소유할 수 있는 능력을 요구하고 있습니다. Ory Kratos와 같은 오픈 소스 시스템은 모델을 전환합니다: 사용자가 직접 인증 서버를 운영하고, 자신의 스키마를 정의하며, 사용자 데이터를 자신의 데이터베이스에 보관합니다. 관리형 인증도 여전히 자리를 잡고 있지만, 금전적 제약이 점점 더 강하게 느껴지고 있습니다.

크라토스와 만나다: 당신의 자체 호스팅 아이덴티티 서버

일러스트: 크라토스 소개: 당신의 셀프 호스팅 아이덴티티 서버
일러스트: 크라토스 소개: 당신의 셀프 호스팅 아이덴티티 서버

관리형 인증 플랫폼은 당신의 모든 것이 되고 싶어합니다. Ory Kratos는 당신의 정체성 엔진이 되고 싶어합니다. 이는 API 우선, 백엔드 전용 인증 서버로, 당신이 사용하는 어떤 UI, 프레임워크, 또는 장치 뒤에 자리 잡을 수 있습니다—Next.js, 모바일, SPA, 심지어 레거시 모놀리틱에도—전용 위젯이나 대시보드에 얽매이게 하지 않습니다.

크라토스는 모든 주요 인증 작업을 HTTP API를 통해 노출합니다: 등록, 로그인, 프로필 관리, 복구, 및 설정. 당신의 프론트엔드는 비밀번호 로직을 저장하거나 마법 링크를 생성할 필요가 없으며, 단지 크라토스가 정의하고 보호하는 흐름을 조정합니다. 이러한 분리는 인증을 다른 내부 마이크로서비스처럼 느끼게 하며, 검은 상자 SaaS 제품처럼 만들지 않습니다.

상자에서 꺼내면, Kratos는 대부분의 앱이 잘못 재구성하는 핵심 흐름을 처리합니다. 당신은 스키마 기반 검증이 포함된 사용자 등록, 비밀번호 기반 로그인, 그리고 더 높은 위험의 계정을 위한 선택적 다중 요소 인증(MFA)을 얻게 됩니다. 또한 이메일 검증, 계정 활성화, 그리고 즉각적인 세션 철회 및 회전을 포함한 강력한 세션 관리도 제공합니다.

플로우는 구성에 따라 제어할 수 있는 상태 기계처럼 작동합니다. 사용자가 등록 후 어느 페이지에 도달할지를 정의할 수 있고, 반드시 입력해야 하는 필드와 복구 또는 확인 링크의 동작 방식도 설정할 수 있습니다. 대부분의 앱에서는 UI를 연결하는 것을 제외하고는 “비밀번호 찾기,” “이메일 확인,” 또는 “프로필 업데이트”를 위한 사용자 정의 코드가 필요하지 않습니다.

디자인 상 자체 호스팅된 Kratos는 Docker가 실행되는 모든 곳에서 작동합니다: 노트북, Kubernetes 클러스터 또는 옷장 속의 물리 서버. 공식 퀵스타트에서는 단일 `docker-compose` 파일을 사용하지만, 동일한 컨테이너 이미지는 다중 노드 배포로 확장할 수 있습니다. 지역 제한 없음, 강제 마이그레이션 경로 없음, 불투명한 유지 보수 창도 없습니다.

저장소는 귀하의 제어 하에 있습니다. Kratos는 로컬 개발을 위한 SQLite와 프로덕션을 위한 PostgreSQL과 같은 데이터베이스를 지원하며, 간단한 DSN을 통해 YAML 구성에서 연결됩니다. 귀하는 사용자 테이블, 감사 기록 및 백업을 소유하며, 이는 GDPR, SOC 2 및 "내 데이터가 정확히 어디에 저장되어 있나요?"라고 묻는 고객에게 중요합니다.

셀프 호스팅은 MAU 기반 가격 걱정을 없애줍니다. 사용자 수가 급증할 때마다 Auth0Okta에 비용을 지불하는 대신 CPU, RAM, 디스크 요금만 지불하면 됩니다. 나중에 소셜 로그인, OAuth2 또는 고급 권한이 필요해도 Kratos는 플랫폼을 다시 작성하지 않고 더 넓은 Ory 스택에 연결됩니다.

크레이터스 vs. Auth0: 정면 대결

관리되는 아이디는 배포를 자세히 살펴보면 다르게 보입니다. Ory Kratos는 당신이 원하는 곳—Kubernetes 클러스터, 물리적인 서버, 또는 저렴한 VPS—에서 실행할 수 있는 Docker-native 서비스로 제공됩니다. 반면, Auth0는 주로 완전 관리형 SaaS로 존재하며, 인프라, 확장, 업그레이드가 대시보드와 API 뒤에 추상화되어 있습니다.

그 분리는 통제가 필요할 때 중요합니다. Kratos를 사용하면 인증 스택이 네트워크 경계 내에 위치하게 되어 애플리케이션과 데이터베이스 옆에 있으며, 기존의 가시성과 CI/CD에 연결됩니다. Auth0는 깔끔한 클라우드 콘솔과 SLA를 제공하지만, 그 대가로 지역, 배포 속도 및 불투명한 성능 조정을 수용해야 합니다.

비용 모델도 뚜렷하게 차이가 납니다. Auth0는 월간 활성 사용자 수에 따라 가격을 책정하며, 구독 계층에 따라 기능과 테넌트를 제한해 사용자가 급증하거나 비활성 사용자가 잠시 돌아올 경우 가격이 급등할 수 있습니다. Kratos는 오픈 소스이기 때문에, 사용자당 요금을 지불하는 것이 아니라 컴퓨팅, 저장소 및 운영 시간에 대해 비용을 지불합니다.

스파이크가 있거나 계절별 트래픽이 발생하는 제품—게임 출시, 티켓 판매 플랫폼, 시험 시즌의 교육 도구 등을 생각해보세요—MAU 가격 책정은 변동성 세금으로 변모합니다. 자체 호스팅된 Kratos 클러스터는 최소 리소스에서 조용히 유지될 수 있으며 필요할 때 수평으로 확장할 수 있습니다. 사용자 행동에 따라 예상치 못한 청구서가 발생하지 않습니다. 예측 가능한 인프라 비용을 버리고 예측할 수 없는 SaaS 비용으로 교환하게 됩니다.

유연성은 Kratos가 API 우선 설계에 가장 강하게 의존하는 부분입니다. 모든 흐름—등록, 로그인, 복구, 인증, MFA—은 Next.js SPA, 네이티브 모바일 앱 또는 CLI와 같은 어떤 클라이언트에서도 호출할 수 있는 JSON API를 노출합니다. 아이덴티티 스키마는 설정 파일에 저장되므로, 제공자가 사용 사례를 승인하기를 기다리지 않고도 회사 ID, 사용자 정의 롤 또는 지역 플래그와 같은 특성을 정의할 수 있습니다.

Auth0는 방대한 사전 구축된 통합 및 규칙 카탈로그로 대응하지만, 이러한 것들은 제약 조건을 가지고 있습니다. 그들의 “유니버설 로그인” 페이지, 액션 트리거, 테넌트 모델에 연결해야 합니다. 깊이 비표준 흐름인 점진적인 프로파일링, 맞춤형 라우팅을 가진 다중 테넌트 B2B, 또는 복잡한 조직별 정책은 종종 우회 방법이나 불안정한 연결 코드를 필요로 합니다.

크라토스는 모듈형 스택에 통합됩니다: OAuth2/OIDC를 위한 하이드라, 권한 관리를 위한 케토, ID 인식 프록시로서의 오스키퍼, 드롭인 UI 컴포넌트를 위한 오리 엘리먼트와 결합할 수 있습니다. Auth0는 이러한 많은 기능을 하나의 브랜드 아래 묶지만, 이 번들 역시 공급업체 종속성을 강화합니다. 인프라를 소유할 의향이 있는 팀에게 Ory Kratos - 문서는 제품 마케팅보다는 그들이 실제로 제어하는 인증 시스템을 위한 청사진처럼 읽힙니다.

전체 오리 생태계: 기본 로그인 넘어가기

크라토스는 더 큰 것의 중심에 자리잡고 있습니다: Auth0 및 Okta와 같은 플랫폼이 하나의 불투명한 상자로 판매하는 것들을 분리하려는 모듈형 오리 스택입니다. 하나의 모놀리식 구조 대신, 오리는 아이덴티티를 독립적으로 실행, 확장 및 교체할 수 있는 집중화된 서비스로 나눕니다. 크라토스는 아이덴티티와 세션을 처리하지만, 토큰, 권한 및 엣지 집행은 그 형제에게 넘깁니다.

OAuth2 및 OpenID Connect를 위해 Ory Hydra가 등장합니다. Hydra는 귀하의 권한 부여 서버 역할을 하며, 표준에 준수하는 클라이언트들이 이미 이해하고 있는 OAuth2 액세스 토큰과 OIDC ID 토큰을 발급합니다. Kratos를 로그인 제공자로 설정한 후 Hydra가 웹, 모바일, 기계 간 작업의 동의 흐름, 토큰 생명 주기 및 클라이언트 등록을 관리하도록 합니다.

세분화된 인증은 Ory Keto에서 제공되며, Google Zanzibar 스타일의 관계 기반 접근 제어를 구현합니다. 앱 로직에 역할을 하드코딩하는 대신, “사용자 X가 문서 Y를 수정할 수 있다”와 같은 관계를 모델링하고 경우에 따라 Keto에 결정 요청을 합니다. 이 패턴은 간단한 RBAC에서부터 매 분마다 수천 개의 권한이 변경되는 복잡한 다중 테넌트 설정까지 확장됩니다.

가장자리에서 Ory Oathkeeper는 당신의 API와 서비스 앞에서 정체성을 인식하는 프록시 역할을 합니다. Oathkeeper는 Hydra로부터 토큰을 검증하고, Kratos에서 정체성 특성을 끌어오며, 최종적인 승인 여부를 위해 Keto에 위임할 수 있는 접근 규칙을 시행합니다. 당신은 규칙을 코드가 아닌 설정으로 정의하므로, 애플리케이션을 재배포하지 않고도 정책을 업데이트할 수 있습니다.

이것들을 결합하면 기업용 스위트의 완전한 대안이 됩니다: 아이덴티티를 위한 Kratos, OAuth2/OIDC를 위한 Hydra, 권한 부여를 위한 Keto, 그리고 게이트키퍼 역할을 하는 Oathkeeper. 각각 컨테이너로 실행되며, HTTP/JSON으로 통신하고, 오픈 소스를 유지하기 때문에 베어 메탈, Kubernetes 또는 단일 Docker Compose 파일에 배포할 수 있습니다. MAU 당 요금을 지불하는 대신, 인프라에 대해 요금을 지불하고 인증 파이프라인의 모든 부분을 제어할 수 있습니다.

제로에서 로그인까지: 당신의 첫 번째 크라토스 설정

일러스트: 제로에서 로그인까지: 당신의 첫 번째 크라토스 설정
일러스트: 제로에서 로그인까지: 당신의 첫 번째 크라토스 설정

제로에서 Ory Kratos를 시작하는 것은 웹 대시보드가 아닌 Docker로 시작합니다. `kratos-demo` 폴더를 만들고 `docker` 하위 디렉토리로 들어가, 공식 Ory Kratos 이미지를 가져오는 `docker-compose.yml`을 설정하고, 로컬의 `users.db` SQLite 파일을 마운트하며, `config/kratos.yml`과 `identity.schema.json`을 연결합니다. `docker compose up`을 실행하면 Kratos가 개발 모드로 부팅되어 localhost에서 공용 및 관리자 API를 노출합니다.

`docker-compose.yml` 파일은 공식 quickstart.yml을 대부분 반영하되, 랩탑에 맞게 조정되었습니다. 이 파일은 `KRATOS_PUBLIC_URL`과 `KRATOS_BROWSER_URL`을 각각 `http://localhost:4433`과 `http://localhost:4455`로 설정하고, 구성 디렉토리를 마운트하며, 검증 이메일을 위한 메일 서버 컨테이너를 연결합니다. 포트는 기본값인 4433(공용)과 4434(관리)를 유지하므로 문서의 예제 클라이언트 코드는 변경 없이 작동합니다.

구성은 두 개의 핵심 파일인 `kratos.yml`과 아이덴티티 스키마 JSON으로 이동합니다. 아이덴티티 스키마는 email-password/identity.schema.json에서 복사된 것으로, `email`, `first_name`, `last_name`과 같은 특성과 비밀번호 자격 증명을 포함하는 JSON 스키마를 정의합니다. Kratos의 핵심을 건드리지 않고도 사용자 지정 필드—회사 ID, 역할 또는 기능 플래그—로 확장할 수 있습니다.

`kratos.yml` 파일은 모든 것을 연결합니다. `selfservice.default_browser_return_url`과 허용된 출처를 `http://localhost:3000`의 Next.js 앱으로 지정하고, HTTP 메서드와 CORS 헤더를 화이트리스트에 추가합니다. 각 흐름—`로그인`, `등록`, `복구`, `확인`, `설정`—은 `/auth/login` 또는 `/auth/register`와 같은 프론트엔드 경로에 직접 연결되는 `ui_url`을 갖습니다.

비밀과 이메일 설정은 동일한 YAML 파일에 있습니다. 데모 구성은 자리 표시자 비밀을 사용하지만, 실제 설정에서는 `secrets.cookie`와 `secrets.cipher`에 대해 강력한 키를 교체해야 합니다. SMTP 자격 증명은 메일 서버를 구성하여 Kratos가 확인 및 복구 링크를 발송할 수 있도록 하며, 이 링크는 사용자들을 다시 동일한 `ui_url` 경로로 연결합니다.

프론트엔드에서 Next.js 앱은 `@ory/nextjs`와 Ory Elements를 사용하여 Kratos와 연결됩니다. `NEXT_PUBLIC_KRATOS_PUBLIC_URL=http://localhost:4433` 및 `KRATOS_BROWSER_URL=http://localhost:4455`와 같은 환경 변수는 Docker URL과 일치하도록 `.env.local`에 들어갑니다. 작은 `ory.config.ts` 파일이 SDK를 해당 엔드포인트에 연결합니다.

Next.js 미들웨어는 런타임에서 중요한 작업을 수행합니다. `middleware.ts` 파일은 요청을 가로채고 Kratos의 세션 API를 호출하여 인증된 사용자는 통과시키거나 익명의 방문자를 Kratos 기반 로그인 흐름으로 리다이렉션합니다. 이를 통해 귀하의 스택에서 완전한 등록, 로그인, 이메일 인증 및 MFA 화면을 실행할 수 있으며, Okta나 Auth0의 것이 아닙니다.

UI unpacking: Ory Elements가 당신에게 수주를 절약해주는 방법

관리된 아이덴티티 스택은 일반적으로 프론트 엔드에서 문제가 발생합니다. 공급업체의 호스팅 로그인 박스에 의존하거나, 모든 인증 엣지 케이스에 대해 폼 상태, 유효성 검사 및 오류 처리를 연결하는 데 며칠을 소모하게 됩니다. Ory Elements는 바로 그 번거로움을 없애기 위해 존재합니다.

단일 위젯을 배송하는 대신, Elements는 React, Next.js(앱 라우터 포함) 및 기타 현대 프레임워크를 위한 완전한 UI 컴포넌트 라이브러리입니다. 다른 npm 패키지처럼 설치하고, 라우트에 해당 컴포넌트를 추가한 다음, Ory Kratos 공용 엔드포인트를 가리키면 됩니다.

비결: Elements는 "로그인 양식"이 어떻게 생겼는지를 하드코딩하지 않습니다. Kratos는 로그인, 등록, 복구, 설정, 검증 각 흐름을 필드, 방법, CSRF 토큰 및 메시지를 설명하는 JSON 스키마로 노출합니다. Elements는 런타임에 해당 스키마를 읽고 자동으로 올바른 UI를 렌더링합니다.

데모 Next.js 앱에서 로그인 경로에 접속하면 Elements가 Kratos에서 로그인 흐름을 가져와서 이메일 필드, 비밀번호 필드, 제출 버튼, 유효성 검사 메시지, 그리고 당신의 ID 스키마에서 정의한 추가 속성들을 포함한 양식을 생성합니다. 다중 인증을 활성화하거나 Kratos에 사용자 이름 필드를 추가하면 렌더링된 UI가 프론트엔드 수정 없이 자동으로 업데이트됩니다.

그 동적인 동작은 모든 흐름에 적용됩니다. 기본 설정으로, Elements는 다음을 렌더링할 수 있습니다: - 로그인 및 등록 - 계정 설정 및 프로필 관리 - 비밀번호 복구 및 이메일 확인 - MFA 등록 및 챌린지 화면

개발자는 프레젠테이션에 대한 완전한 제어권을 가집니다. 구성 요소는 스타일이 적용되지 않거나 최소한으로 스타일이 적용되어 있어, 여러분의 레이아웃으로 감싸고 Tailwind 또는 CSS 모듈을 적용하며, 논리를 다시 구현하지 않고도 모든 화면에 브랜드를 적용할 수 있습니다. 복잡한 프로토콜 세부 사항은 아웃소싱하면서 디자인 시스템을 유지할 수 있습니다.

시간 절약은 빠르게 누적됩니다. 일반적인 팀은 인증 양식을 만들고 다듬는 데 1~2주를 소요하고, 요구 사항이 변경됨에 따라 유지 관리하는 데 더 많은 시간을 할애할 수 있습니다. 하지만 Elements를 사용하면 대부분의 작업이 몇 가지 경로와 환경 변수를 설정하는 것으로 간소화되며, Better Stack 데모가 그 예를 보여줍니다.

더 깊은 맞춤화를 위해, 즉 정체성 특성, 흐름 또는 보안 정책을 변경하려면 Kratos 자체를 조정해야 합니다. 공식 Ory Kratos 문서에서는 이러한 백엔드 변경 사항이 어떻게 Elements 기반 UI로 자동으로 반영되는지를 안내합니다.

내장된 보안, 부착된 보안이 아닙니다.

보안은 Ory Kratos의 중심에 자리 잡고 있으며, 후회 없이 덧붙여진 것이 아닙니다. 기본적으로 Kratos는 모든 비밀번호를 Have I Been Pwned의 방대한 데이터 유출 기록을 통해 확인하여, 실제 유출된 경우 이미 노출된 자격 증명을 거부합니다. 이 검증만으로도 비밀번호 재사용에 의존하는 계정 탈취 시도의 전체 클래스를 조용히 차단합니다.

Kratos는 비율 제한, 세션 강화 및 CSRF 보호 기능을 내장하고 있어 미들웨어에서 이를 새로 구현할 필요가 없습니다. 비밀번호 정책, 세션 수명 및 다중 인증은 구성에 포함되어 있으며, 컨트롤러와 플러그인에 흩어져 있지 않습니다. 모든 것이 동일한 API 우선 엔진을 통해 흐르기 때문에 웹, 모바일 및 API 클라이언트 전반에 걸쳐 일관된 보안 태세를 제공합니다.

즉흥적인 “모범 사례” 대신 Kratos는 NIST, IETF, 그리고 Microsoft와 Google의 주요 연구 그룹의 지침을 추적합니다. 이는 현대 해시 알고리즘에 대한 지원, 어디서나 TLS를 선호하는 전송 보안 기본 설정, 그리고 임의 비밀번호 복잡성 규칙과 같은 반패턴을 피하는 로그인 흐름을 의미합니다. 프로젝트 유지 관리자는 Troy Hunt와 다른 이들의 사용 가능한 보안 작업을 명시적으로 인용하며, 기본 설정은 “안전하고 인간적인” 쪽으로 기울어지지 “안전하고 적대적인” 쪽이 아닙니다.

준수 팀은 유행어보다는 통제를 더 중요하게 여기며, 자체 호스팅된 Kratos는 설계상 이를 제공합니다. 사용자 아이덴티티, 세션, 감사 기록은 귀하의 데이터베이스에, 귀하의 지역에서, 귀하의 보존 규칙에 따라 저장됩니다. 귀하는 클라우드, 저장 데이터 암호화, 백업 전략 및 규제 기관에 맞는 데이터 거주 정책을 선택하며, 공급자의 공유 SaaS 클러스터가 아닙니다.

GDPR에 따르면, 이러한 제어는 실질적인 이익으로 이어집니다. 데이터 처리 계약은 타인의 인증 시스템에서 임차인이 아닌 프로세서가 될 때 더 간단해집니다. 삭제 권리, 데이터 내보내기 및 목적 제한은 서드 파티와의 지원 요청이 아닌 귀하의 스택 내 구현 세부 사항이 됩니다.

Auth0와 Okta는 유사한 기준에 맞춰 구성할 수 있지만, 항상 그들의 가이드라인 내에서 운영됩니다. Ory Kratos를 사용하면, 그 가이드라인은 코드와 구성으로 표현된 귀하의 정책이 되며, 인프라의 나머지 부분과 함께 감사됩니다.

차세대 기능: 몇 분 만에 2단계 인증 적용하기

일러스트: 차세대 기능: 몇 분 안에 2단계 인증 설정하기
일러스트: 차세대 기능: 몇 분 안에 2단계 인증 설정하기

다단계 인증은 일반적으로 SDK, QR 코드 라이브러리 및 맞춤형 설정 UI를 조작하는 것을 의미합니다. 그러나 Ory Kratos를 사용하면 YAML 파일에서 몇 개의 플래그를 변경하는 것만으로도 앱이 숙련된 보안 제품처럼 TOTP를 사용할 수 있게 됩니다. Kratos는 API를 통해 전체 2FA 흐름을 공개하므로 백엔드는 깔끔하게 유지되고 프론트엔드는 맞춤형 보안 구조가 필요하지 않습니다.

Kratos 구성에서 TOTP를 활성화하면 서버가 곧바로 아이덴티티 흐름에 새로운 "2FA" 섹션을 추가합니다. 사용자가 가입하면 Kratos가 비밀 키를 생성하고 이를 `otpauth://` URI로 인코딩하여 렌더링 준비가 완료된 QR 코드 페이로드를 반환합니다. 귀하의 앱은 비밀 키에 직접 접근하지 않으며, Kratos는 이를 저장하고 암호화한 후 이후의 모든 로그인에서 인증을 시행합니다.

비디오의 Next.js 데모는 Ory Elements가 그 백엔드 기능을 완전 관리 설정 화면으로 어떻게 전환하는지를 보여줍니다. 요소 컴포넌트를 `/settings` 경로에 드롭하고, 이를 Kratos 공용 URL에 연결하면 추가적인 React 상태 기계 없이도 실시간 사용자 대시보드를 얻을 수 있습니다. 사용자는:

  • 1프로필 속성 업데이트 (이메일, 이름, 성)
  • 2비밀번호 변경하기
  • 3TOTP 기반 2단계 인증을 활성화 또는 비활성화하세요.

모든 요소는 미리 구축된 접근 가능한 컴포넌트로 Elements에서 발송되며, 이는 유형화된 흐름을 사용하여 Kratos와 소통합니다. 임의의 엔드포인트에 사용자 지정 양식을 연결하는 것이 아니라, Kratos가 런타임에 정의하는 선언형 양식 모델을 렌더링합니다. Kratos가 필드를 추가하거나 변경하면 UI가 자동으로 업데이트됩니다.

2단계 인증(2FA) 설정 동안, Kratos는 사용자에게 QR 코드 스캔과 첫 번째 코드 검증 과정을 안내합니다. 서버는 저장된 비밀 키에 대해 TOTP를 검증하고, 시계 차이를 처리하며, 신원 기록에서 두 번째 요소를 활성 상태로 표시합니다. 사용자가 다시 로그인할 때, Kratos는 유효한 TOTP 확인 후 세션을 단일 요소에서 다중 요소로 업그레이드하며, 당신의 애플리케이션은 결과 세션 상태를 읽기만 하면 됩니다.

그러한 관심사의 분리는 핵심입니다: Kratos는 QR 생성, 비밀번호 저장 및 TOTP 검증을 담당하고, Ory Elements는 사용자 경험(UX)을 담당합니다. 귀하의 애플리케이션은 몇 주가 아니라 몇 분 안에 구축할 수 있는 안전하고 완전 관리되는 MFA 파이프라인을 간편하게 사용할 수 있습니다.

개발자 의견: 누구에게 Kratos가 적합한가?

관리형 아이덴티티 플랫폼은 Hacker News에서 개발자들을 계속 잃고 있으며, Ory Kratos는 "이걸로 시작했으면 좋았을 텐데"라는 옵션으로 언급되고 있습니다. 댓글 작성자들은 API 우선 설계, 깔끔한 HTTP 흐름, 그리고 $5 VPS에서 쿠버네티스까지 어디에서나 실행할 수 있다는 점을 꾸준히 강조합니다. Auth0 또는 Okta의 MAU에 따라 규모가 증가하는 견적을 바라보는 스타트업에게 매력은 분명합니다: 예측 가능한 인프라 비용, 사용자당 세금 없음, 나중에 풀기 힘든 독점적인 규칙 엔진 없음.

Kratos는 인증이 제품의 핵심 부분일 때 가장 잘 어울리며, 단순한 체크박스가 아닙니다. 다중 임대 SaaS, 개인 정보 보호에 민감한 앱 또는 규제된 작업을 구축하는 팀은 신원 데이터, 스키마 및 생애주기에 대한 완전한 제어를 얻습니다. 데이터베이스는 당신이 소유하고, JSON 신원 스키마를 정의하며, Ory Elements 또는 자체 UI를 통해 React, Next.js 또는 네이티브 클라이언트에 흐름을 연결하는 방법을 결정합니다.

이상적인 프로젝트는 보통 몇 가지 특성을 공유합니다: - 등록, 복구 및 설정 흐름의 깊은 맞춤화 필요 - 데이터 거주지, GDPR 또는 내부 감사 가능성에 대한 요구 사항 - Ory Hydra, Keto 및 Oathkeeper를 사용하여 OAuth2, SSO 및 세밀한 권한 부여를 추가할 장기 계획

그 모듈형 아키텍처는 "하나의 거대한 아이덴티티 제품" 플랫폼에 실망한 개발자들을 사로잡는 핵심입니다. 이메일/비밀번호와 TOTP로 시작한 후, 나중에 소셜 로그인이나 기업 SSO를 추가할 수 있어 모든 것을 다시 작성할 필요가 없습니다. Ory 문서 허브는 이를 잘 살리고 있으며, 하나의 거대한 설정 마법사 대신 각 서비스에 대한 개별 가이드를 제공합니다.

트레이드오프는 현실이며, Hacker News 스레드는 이를 감추지 않습니다. Kratos를 운영한다는 것은 Docker 이미지, 구성, 마이그레이션, SMTP, 모니터링 및 사고 대응을 소유하는 것을 의미합니다. SaaS 요금을 운영 비용으로 대체하는 것입니다: Terraform 모듈, CI 파이프라인, 로그 집계 및 긴급 대응 대기.

엔지니어 중심의 조직은 이를 공정한 거래로 간주하는 경향이 있습니다. 이미 PostgreSQL, Redis 및 서비스 메쉬를 운영하고 있다면 또 하나의 Go 서비스를 추가하는 것은 혼란이 아닌 소음일 뿐입니다. 그러나 로그인 기능이 있는 마케팅 사이트를 구축하는 두 명의 팀에게는, Auth0 청구서가 나중에 아플지라도 완전 관리형 서비스가 여전히 더 빠를 수 있습니다.

크라토스는 의식적인 선택입니다. 자신만의 아이덴티티 백본을 운영하는 대가로 공급업체 종속에서 자유를 구매하는 것이며, 늘어나는 개발자들 중에서 그 거래는 드디어 매력적으로 보입니다.

당신의 인증, 당신의 규칙: 최종 요점

제어는 현대 인프라를 정의하며, Ory Kratos는 정체성에 대한 실제 제어가 어떤 모습인지를 보여줍니다. Auth0나 Okta에서 로그인 박스를 임대하고 트래픽 증가에 따른 가격 인상이 없기를 기도하는 대신, 당신은 자신의 아이덴티티 서버를 운영하고, 이를 Docker로 배포하며, Next.js, React, Go 등 어떤 스택에도 연결할 수 있습니다. 인증은 더 이상 블랙박스가 아니라 일반적인 애플리케이션 코드가 됩니다.

크라토스는 SaaS 의존성의 틀을 뒤집습니다. 등록, 로그인, 복구, 이메일 검증 및 다중 인증(MFA)을 처리하는 API 우선 엔진을 제공하며, UI 및 프런트엔드 프레임워크에 대해 중립성을 유지합니다. OAuth2, 세분화된 권한 또는 ID 인식 프록시가 필요하십니까? 필요할 때 Hydra, Keto 또는 Oathkeeper를 연결하여 원하는 기능만 추가하면 됩니다. 번들로 제공되는 올인원 플랫폼을 구매할 필요가 없습니다.

비용 구조도 변경됩니다. MAU(월간 활성 사용자)와 기능에 따라 인증 요금을 관리해야 하며, 사용자가 10,000명에서 100,000명으로 급증하면 다섯 자리 숫자의 놀라움을 초래할 수 있습니다. Kratos는 오픈 소스이므로 주요 비용은 컴퓨팅, 스토리지, 운영 시간이며, $5 VPS부터 여러 지역의 Kubernetes에 이르기까지 다양한 방법으로 자체 호스팅이 가능합니다.

개발자 경험은 일류로 유지됩니다. Ory Elements는 미리 구축된 React/Next.js 컴포넌트를 제공하므로, 로그인, 등록 및 설정 플로우를 몇 주가 아닌 몇 시간 안에 작업할 수 있습니다. 빠른 시작을 위한 Docker Compose 파일, 샘플 아이덴티티 스키마, 그리고 Next.js 예제 앱 덕분에 이메일 인증 및 TOTP 기반 2FA를 갖춘 실행 가능한 스택을 한 오후 안에 구축할 수 있습니다.

따라서 이는 단순히 한 인증 제공자를 다른 것으로 교체하는 것이 아니라, 누구의 아이덴티티 레이어가 소유되는지를 결정하는 것에 더 가깝습니다. 새로운 SaaS를 시작하거나 모놀리스를 리팩토링하거나 Auth0의 높은 비용에 대한 충격에서 벗어나고자 한다면, 하루를 할애하여 Kratos를 설정해보세요. 현재의 인증 시스템을 감사해보세요: 가격, 종속성, 데이터 내보내기 경로 및 유연성 등을 분석합니다. 그런 다음 다음 프로젝트가 다른 사람의 로드맵을 따를지, 아니면 본인의 로드맵에서 진행할지를 결정하세요.

자주 묻는 질문

Ory Kratos는 무엇인가요?

Ory Kratos는 오픈 소스의 API 우선 정체성 및 사용자 관리 서버입니다. 이 서버는 등록, 로그인, 다중 인증(MFA) 및 계정 복구와 같은 핵심 인증 흐름을 처리하며, 개발자들이 자체 호스팅하고 인증 스택에 대한 완전한 제어를 유지할 수 있도록 합니다.

Ory Kratos는 완전히 무료인가요?

네, Ory Kratos 소프트웨어의 핵심은 오픈소스이며, 자체 호스팅이 가능합니다. Ory는 또한 고가용성, SLA 및 전담 지원과 같은 추가 기능을 제공하는 유료 기업 라이선스 및 관리형 클라우드 서비스(Ory Network)를 제공합니다.

Ory Kratos는 Auth0와 어떻게 비교됩니까?

크라토스는 자체 호스팅된 오픈소스 모델을 통해 더 큰 유연성, 관리 및 비용 효율성을 제공합니다. Auth0는 더 빠른 설정과 광범위한 사전 구축 통합을 제공하는 완전 관리형 서비스이지만, 공급업체 종속성과 잠재적으로 높은 비용이 따릅니다.

기존 사용자들을 Auth0에서 Ory Kratos로 마이그레이션할 수 있나요?

네, Ory는 Auth0와 같은 플랫폼에서 Kratos로 기존 사용자 기반을 이전하는 방법에 대한 문서와 가이드를 제공하여 원활한 전환을 가능하게 합니다.

Frequently Asked Questions

개발자 의견: 누구에게 Kratos가 적합한가?
관리형 아이덴티티 플랫폼은 Hacker News에서 개발자들을 계속 잃고 있으며, Ory Kratos는 "이걸로 시작했으면 좋았을 텐데"라는 옵션으로 언급되고 있습니다. 댓글 작성자들은 API 우선 설계, 깔끔한 HTTP 흐름, 그리고 $5 VPS에서 쿠버네티스까지 어디에서나 실행할 수 있다는 점을 꾸준히 강조합니다. Auth0 또는 Okta의 MAU에 따라 규모가 증가하는 견적을 바라보는 스타트업에게 매력은 분명합니다: 예측 가능한 인프라 비용, 사용자당 세금 없음, 나중에 풀기 힘든 독점적인 규칙 엔진 없음.
Ory Kratos는 무엇인가요?
Ory Kratos는 오픈 소스의 API 우선 정체성 및 사용자 관리 서버입니다. 이 서버는 등록, 로그인, 다중 인증 및 계정 복구와 같은 핵심 인증 흐름을 처리하며, 개발자들이 자체 호스팅하고 인증 스택에 대한 완전한 제어를 유지할 수 있도록 합니다.
Ory Kratos는 완전히 무료인가요?
네, Ory Kratos 소프트웨어의 핵심은 오픈소스이며, 자체 호스팅이 가능합니다. Ory는 또한 고가용성, SLA 및 전담 지원과 같은 추가 기능을 제공하는 유료 기업 라이선스 및 관리형 클라우드 서비스를 제공합니다.
Ory Kratos는 Auth0와 어떻게 비교됩니까?
크라토스는 자체 호스팅된 오픈소스 모델을 통해 더 큰 유연성, 관리 및 비용 효율성을 제공합니다. Auth0는 더 빠른 설정과 광범위한 사전 구축 통합을 제공하는 완전 관리형 서비스이지만, 공급업체 종속성과 잠재적으로 높은 비용이 따릅니다.
기존 사용자들을 Auth0에서 Ory Kratos로 마이그레이션할 수 있나요?
네, Ory는 Auth0와 같은 플랫폼에서 Kratos로 기존 사용자 기반을 이전하는 방법에 대한 문서와 가이드를 제공하여 원활한 전환을 가능하게 합니다.
🚀Discover More

Stay Ahead of the AI Curve

Discover the best AI tools, agents, and MCP servers curated by Stork.AI. Find the right solutions to supercharge your workflow.

Back to all posts