appsok/agent-roadmap/phase/security-distribution/milestones/auth-broker-evaluation.md

3.6 KiB

Milestone: Auth Broker와 Jenkins Plugin 후보 검토

위치

  • Roadmap: agent-roadmap/ROADMAP.md
  • Phase: agent-roadmap/phase/security-distribution/PHASE.md

목표

Jenkins LDAP 로그인 이후 영역에서 앱 사용 권한을 매끄럽게 확인하는 구조를 검토한다. 사용자별 token 방식이 충분하지 않을 때, Auth Broker 또는 Jenkins plugin으로 앱 전용 short-lived token/callback을 제공할지 판단한다.

상태

[스케치]

승격 조건

  • Jenkins 운영팀이 plugin 설치 또는 reverse proxy 경로 추가 가능 여부를 답했다.
  • 보안팀이 WebView token 자동화, Auth Broker, Jenkins plugin 중 허용 가능한 후보를 제시했다.
  • MVP에서 사용자별 API token 방식의 UX/보안 문제가 실제로 충분히 커졌는지 확인했다.
  • 구현 후보를 하나 이하로 좁히고, 후속 [계획] Milestone으로 분리했다.

구현 잠금

  • 상태: 잠금
  • 잠금 해제 조건: 사용자 리뷰에서 아래 항목을 승인하거나 방향을 결정할 때까지 Auth Broker 또는 Jenkins plugin 구현을 시작하지 않는다.
  • 결정 필요: 사용자 리뷰 체크리스트
    • 별도 서버를 구축할 수 있는지 결정한다.
    • Jenkins plugin 설치가 가능한지 결정한다.
    • 앱이 Jenkins WebView에 비밀번호를 입력받는 방식이 허용되는지 결정한다.

범위

  • 사용자별 API token 방식의 한계 검토
  • WebView token 자동 발급의 보안/UX 검토
  • Auth Broker 구조 검토
  • Jenkins plugin callback 구조 검토
  • 감사 로그와 short-lived token 후보 정리

기능

Epic: [options] 인증 구조 후보

LDAP을 직접 제어하지 못하는 제약 안에서 가능한 인증 후보를 비교한다.

  • [user-token] 사용자별 Jenkins API token 방식의 UX와 보안 리스크를 정리한다.
  • [webview-token] Jenkins WebView 로그인 후 token 자동 발급 방식의 장단점을 정리한다.
  • [broker] Auth Broker가 필요한 경우의 server/API/token 책임 경계를 정리한다.
  • [plugin] Jenkins plugin endpoint가 제공할 callback/code/token 흐름을 정리한다.

Epic: [decision] 승격 판단

스케치를 구현 가능한 계획으로 승격할 조건을 만든다.

  • [security-review] 보안팀 리뷰 질문 목록을 작성한다.
  • [ops-review] Jenkins 운영팀 리뷰 질문 목록을 작성한다.
  • [roi-check] 별도 서버/plugin의 비용이 UX 개선 효과를 넘는지 판단 기준을 만든다.
  • [next-milestone] 선택된 후보를 후속 [계획] Milestone으로 분리한다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증 충족 후 기록한다.
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 없음

범위 제외

  • LDAP 직접 연동
  • 공용 Jenkins token 내장
  • 사용자가 결정하지 않은 서버/plugin 구현 착수

작업 컨텍스트

  • 관련 경로: lib/src/features/settings/, lib/src/services/token_store.dart, agent-roadmap/phase/security-distribution/
  • 표준선(선택): MVP는 사용자별 credential을 기본으로 두고, broker/plugin은 필요성이 검증될 때만 승격한다.
  • 선행 작업: Jenkins 로그인과 credential 수명주기, macOS 배포와 sandbox 검증
  • 후속 작업: 선택된 인증 구조의 별도 계획 Milestone
  • 확인 필요: 구현 잠금의 사용자 리뷰 체크리스트가 Jenkins 운영 정책, 보안팀 허용 범위, 별도 서버 구축 가능성을 다룬다.