3.7 KiB
3.7 KiB
Milestone: 조직 신원과 접근 제어
위치
- Roadmap: ROADMAP.md
- Phase: PHASE.md
목표
여러 조직 사용자가 검증된 외부 신원으로 Ariadne에 들어와 자신이 속한 조직만 선택하고 접근할 수 있게 한다. 최초 사용자·조직 생성과 구성원 관리가 마이그레이션 또는 전역 실행 역할의 권한 확대 없이 수행되도록 책임 경계를 확정한다.
상태
[스케치]
승격 조건
- 첫 인증 방식과 신원 검증 주체를 확정한다.
- 최초 조직 생성과 이후 초대·가입 권한 정책을 확정한다.
- SDD 사용자 리뷰를 해결하고 gate를 통과한다.
- 인증·조직 관리 API와 감사 기록 기능 단위를 구현 가능한 수준으로 고정한다.
구현 잠금
- 상태: 잠금
- SDD: 필요
- SDD 문서: SDD.md
- SDD 사유: 신원 기준, 조직 생성 권한, 구성원 lifecycle과 API·데이터베이스 권한 경계에 영향을 준다.
- 잠금 해제 조건:
- SDD 잠금이 해제되어 있다.
- SDD 사용자 리뷰가 승인·해결되어 있다.
- Acceptance Scenario가 Milestone 기능 Task와 연결되어 있다.
- Evidence Map이 완료 시 검증 가능한 근거와 연결되어 있다.
- 결정 필요:
- [D01] 첫 인증·조직 진입 방식과 그에 따른 최초 조직 생성·초대 책임
범위
- 검증된
issuer + subject신원과 Ariadne 사용자 연결 - 최초 조직 생성 전용 관리 경계
- 활성 조직 멤버십 조회와 조직 선택
- 소유자, 관리자, 구성원, 조회자 역할별 인가
- 초대, 역할 변경, 탈퇴와 감사 기록
기능
Epic: [identity] 신원과 조직 진입
인증된 주체만 조직 범위를 획득하도록 한다.
- [verify-identity] 선택한 인증 방식으로 토큰 또는 세션을 검증하고
issuer + subject를 내부 사용자와 연결한다. - [bootstrap-org] 전용 관리 경계에서 최초 조직과 소유자 멤버십을 원자적으로 생성하고 감사 기록을 남긴다.
- [select-org] 활성 멤버십에 포함된 조직만 선택할 수 있는 세션·요청 범위 규칙을 제공한다.
Epic: [membership] 구성원 권한
조직 안에서 역할과 구성원 lifecycle을 관리한다.
- [authorize-role] API 동작별 역할 권한을 중앙 규칙으로 강제한다.
- [manage-member] 구성원 초대, 역할 변경과 탈퇴를 이력 보존 방식으로 처리한다.
- [tenant-tests] 다른 조직 신원·식별자를 사용한 접근과 권한 상승을 차단한다. 검증: 인증·인가 및 실제 PostgreSQL 교차 조직 통합 검사가 통과한다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 검토 항목: SDD gate, 인증·인가 통합 검사와 감사 기록
- agent-ui 상태 반영: 해당 없음
- 리뷰 코멘트: 없음
범위 제외
- 소셜 로그인별 전용 사용자 경험
- 엔터프라이즈 단일 로그인 자동 프로비저닝
- 조직 간 데이터 공유
작업 컨텍스트
- 관련 경로:
internal/platform/database/identity.go,internal/platform/httpserver/,internal/domain/organization/ - 표준선: 요청 본문의 조직 식별자를 신뢰하지 않고 검증된 신원과 활성 멤버십에서 범위를 결정한다.
- 선행 작업: 기반 스캐폴드 안정화
- 후속 작업: 프로젝트와 분석 대상 등록
- 확인 필요: USER_REVIEW.md