auth.inft.kr
├── /oauth2/*, /.well-known/openid-configuration, /.well-known/jwks.json → backend
├── /.well-known/webfinger → backend
├── /api/* → backend
├── /login, /consent, /logout, /signup, /settings → www
inft.kr
└── /.well-known/webfinger → backend
PostgreSQL (신원 데이터 단일 DB)
├── auth DB → backend (OAuth2 클라이언트, interaction/세션 상태) [Prisma]
└── lldap DB → lldap (사용자 신원: 이메일/이름/그룹/비밀번호)
개요
OAuth 2.0 / OIDC / LDAP / 소셜 로그인을 지원하는 자체 인증 플랫폼 inft-auth를 신규 구축한다. 모노레포 + Docker 배포 패키지 + 외부 SDK로 패키지화한다.
목표
oidc-provider)/.well-known/webfinger) 제공으로 Tailscale 커스텀 OIDC 등 타 플랫폼과 연동auth.inft.kr운영 (WebFinger는inft.kr)아키텍처
oidc-provider), WebFinger, LDAP 인증, 소셜 로그인, 세션 관리useSession/signIn/signOut), 쿠키 규칙@inft/auth-sdk, npm 배포)도메인 라우팅
데이터 구조
작업 항목
packages/shared구현 (공용 상수·타입)packages/auth-core구현 (types / client / server guard / React hooks / shared)packages/auth-sdk구현 (OIDC discovery / PKCE / code exchange / userinfo / JWT 검증 / refresh / logout)apps/backend구현 — PR feat(backend): nest.js OIDC provider, session API and admin client management #5 머지 완료oidc-provider, 발급/검증/claims)apps/wwwUI 구현 (auth-core 기반) — PR feat(www): Next.js App Router 프론트 구현 (socket), #6 머지 완료packages/auth-sdknpm 배포 준비 (README/package.json/vitest 테스트/dry-run 완료)packages/auth-sdknpm 공개 배포 (@INFT scope 소유 확인 후 별도 진행)deploy/배포 패키지 — PR feat(deploy): add self-hosted Docker Compose deployment #7 (feat/deploy → develop, 머지 대기)config.yml/credentials.json)는 gitignore, 템플릿만 추적)--profile tunnel)9fb9695) — DB 자격증명 로그 redact,npx --no-install, TCP 프로브 타임아웃,check_tools호출, tunnel 프로파일https://login.tailscale.com/a/oauth_response, scope:openid profile email)auth.inft.kr/.well-known/openid-configuration) 200 확인dummy@inft.kr생성,POST /api/v1/auth/ldap201 +inft_session쿠키 +GET /api/v1/session200)/auth,/token,/interaction/*등)로 매핑 (현재/oauth2*만 backend, 루트 경로가 www로 샘 → 404)devInteractionsoff, www에 로그인/consent 처리 필요)http://엔드포인트를 노출 (x-forwarded-proto/trust proxy 처리)docs/) 작성 —deploy/README.md작성 완료, 나머지 후속진행 기록
8e105f0) — Nest.js OIDC/세션 API, admin 클라이언트 API, LDAP bind 인증, WebFinger, 권한 비트필드fe86396) — Next.js 스캐폴딩(shadcn/ui + 포털 테마), 홈/로그인/로그아웃/signup·consent, settings(+admin OIDC 클라이언트 관리)stable에서develop으로 패스트포워드 병합됨deploy/), locally-managed cloudflared,setup.sh.env 생성 + 터널 자산 생성, Copilot 리뷰 반영 완료deploy/스택 기동 후 실 도메인(auth.inft.kr)으로 OIDC discovery/WebFinger 200, LDAP 로그인(더미 유저dummy@inft.kr) 201 + 세션 200 확인/oauth2*만 backend로 매핑, 실제 oidc-provider 라우트(/auth,/token,/interaction/*등 루트 경로)가 www로 샘 → 404. discovery가http://엔드포인트 노출(x-forwarded-proto미처리). 다음 세션에서 ingress + interaction UI + trust proxy 처리 예정관련 사항
auth.inft.kr(OIDC issuer),inft.kr(WebFinger) — Cloudflare Tunnel 사용HttpOnly; Secure; SameSite=Lax