Skip to content

Comments

feat: 인증/보안 통합 수정 v1 (잠금/초기비밀번호/쿠키분리)#11

Merged
yw9142 merged 2 commits intomainfrom
feat/auth-security-integration-v1
Feb 20, 2026
Merged

feat: 인증/보안 통합 수정 v1 (잠금/초기비밀번호/쿠키분리)#11
yw9142 merged 2 commits intomainfrom
feat/auth-security-integration-v1

Conversation

@yw9142
Copy link
Owner

@yw9142 yw9142 commented Feb 20, 2026

요약

ProjectBridge 인증/보안 통합 수정 계획 v1을 반영했습니다.

  • 로그인 잠금 정책 DB 영속화 + 관리자 해제
  • PM 계정 생성 -> 설정코드 기반 최초 비밀번호 설정 플로우
  • HttpOnly 쿠키 인증 전환 및 앱별 쿠키 스코프 분리(PM/Client/Admin)
  • 서명 API/스크립트/문서/CI 품질 게이트 정합성 정리

주요 변경

Backend

  • users 보안 필드 추가 migration
    • failed_login_attempts
    • password_initialized
    • password_setup_code_hash
    • password_setup_code_expires_at
  • Flyway 버전 충돌 복구
    • V11__upload_tickets.sql 복원
    • 인증 하드닝을 V12__auth_hardening_fields.sql로 분리
  • AuthService 잠금 로직 고정
    • 5회 실패 시 LOGIN_BLOCKED
    • 관리자 해제 전까지 유지
    • PASSWORD_SETUP_REQUIRED 처리
  • 신규/변경 API
    • POST /api/auth/first-password
    • POST /api/projects/{projectId}/members/{memberId}/setup-code/reset
    • POST /api/admin/users/{userId}/unlock-login
  • 쿠키 인증 하드닝
    • HttpOnly/SameSite Lax
    • 앱별 쿠키 분리
      • bridge_pm_access_token, bridge_pm_refresh_token
      • bridge_client_access_token, bridge_client_refresh_token
      • bridge_admin_access_token, bridge_admin_refresh_token
    • X-Bridge-App 헤더/app 쿼리 기준 스코프 처리

Frontend

  • PM/Admin 멤버 관리
    • 초기 비밀번호 입력 제거
    • 설정코드/만료 시각 표시 + 코드/안내문 복사
    • 설정코드 재발급 버튼
  • Client
    • /first-password 페이지 추가
    • 로그인 화면에서 /first-password 수동 진입 링크 추가
    • PASSWORD_SETUP_REQUIRED 시 자동 이동
  • Admin
    • 사용자 상세에 잠금 상태/실패 횟수/초기화 상태 표시
    • 잠금 해제 버튼 비활성 UI 및 상태 안내 강화
    • 테넌트 상세의 사용자 목록을 PM 전용이 아니라 테넌트 전체 계정으로 확장
  • 공통 API 클라이언트
    • credentials: include
    • X-Bridge-App 헤더 적용
    • SSE 토큰 쿼리 제거, withCredentials 사용

Docs / CI / Script

  • contractId 기반 서명 경로로 문서/스크립트 정리
  • DoD 스크립트 현행 API 기준 갱신
  • 배포 워크플로우에 quality gate(lint + test + build) 추가

검증

  • pnpm --filter backend test
  • pnpm --filter backend build
  • pnpm --filter pm-web lint
  • pnpm --filter client-web lint
  • pnpm --filter admin-web lint
  • pnpm --filter pm-web build
  • pnpm --filter client-web build
  • pnpm --filter admin-web build

참고

  • 로컬에서 기존 legacy 쿠키(bridge_access_token, bridge_refresh_token)가 남아있다면 브라우저에서 삭제 후 재로그인 필요합니다.

@gitguardian
Copy link

gitguardian bot commented Feb 20, 2026

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
27414267 Triggered Generic High Entropy Secret e3d33b5 docs/Test/evidence/dod-demo-20260220-171959.json View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@yw9142 yw9142 merged commit 4525477 into main Feb 20, 2026
1 check passed
@yw9142 yw9142 deleted the feat/auth-security-integration-v1 branch February 20, 2026 08:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant