Auth 도메인 용어집
핵심 개념
| 용어 | 정의 | 관련 컨텍스트 | 동의어 |
|---|---|---|---|
| 인증(Authentication) | 사용자의 신원을 확인하는 프로세스 | 로그인, 토큰 관리 | Auth |
| 세션(Session) | 사용자의 인증된 상태를 유지하는 기간 | 세션 관리, 토큰 | 로그인 세션 |
| 토큰(Token) | 인증된 사용자를 식별하는 암호화된 문자열 | 인증, 세션 관리 | 인증 토큰 |
| 다중 인증(Multi-factor Authentication) | 두 가지 이상의 인증 방법을 조합하여 사용자 신원을 확인하는 프로세스 | 보안 강화, 로그인 | MFA, 2FA |
| OAuth | 외부 서비스를 통한 인증을 제공하는 표준 프로토콜 | 소셜 로그인 | 소셜 인증 |
| 자격 증명(Credential) | 사용자 인증에 사용되는 정보 | 로그인, 보안 | 인증 정보 |
| 앱 토큰(App Token) | 로그인 전 API 호출을 위한 토큰, 앱 무결성 검증 후 발급 | 앱 인증, 앱 보안 | 앱 인증 토큰 |
| 디바이스 식별자(Device Identifier) | 장치를 고유하게 식별하는 정보, SHA-256으로 해싱하여 관리 | 앱 보안, 디바이스 관리 | 디바이스 ID |
| 챌린지-응답(Challenge-Response) | 앱 무결성 검증을 위한 시간 기반 질의-응답 메커니즘 | 앱 보안, 무결성 검증 | 앱 검증 |
| GesundheitsID | 독일 의료 시스템에서 사용되는 디지털 건강 ID | 대체 로그인, 신원 확인 | 건강 ID |
| 약관(Terms) | 서비스 이용을 위한 이용 약관 | 약관 관리, 사용자 동의 | 이용 약관, 서비스 약관 |
| 동의 정보(Consent Information) | 사용자의 데이터 사용 동의 정보로, Access Token의 consents 클레임으로 관리됨 | 개인정보 보호, 데이터 처리 | 동의 데이터, 권한 동의 |
엔티티
| 엔티티 | 정의 | 식별자 | 주요 속성 |
|---|---|---|---|
| 세션(Session) | 사용자의 인증 상태 정보 | sessionId | 토큰, 만료 시간, IP 주소 |
| 토큰(Token) | 인증 상태를 나타내는 객체 | tokenId | 값, 유형, 만료 시간 |
| 로그인 시도(LoginAttempt) | 사용자의 로그인 시도 기록 | attemptId | IP, 시간, 성공 여부 |
| MFA 설정(MFAConfig) | 다중 인증 설정 정보 | configId | 유형, 비밀키, 상태 |
| OAuth 제공자(OAuthProvider) | OAuth 인증 제공자 정보 | providerId | 이름, 설정, 상태 |
| 디바이스(Device) | 앱이 설치된 장치 정보 | deviceIdHash | 플랫폼, 버전, 마지막 활동 시간 |
| 앱 토큰(AppToken) | 앱 인증을 위한 토큰 | tokenId | 디바이스 ID, 권한, 만료 시간 |
| 챌린지(Challenge) | 앱 무결성 검증을 위한 챌린지 | nonce | 챌린지 값, 타임윈도우, 만료 시간 |
| 약관(Terms) | 서비스 이용 약관 정보 | termsId | 버전, 상태, 생성일, 만료일 |
| 약관 버전(TermsVersion) | 약관의 특정 버전 | versionId | 버전 번호, 콘텐츠, 생성일 |
| 약관 번역(TermsTranslation) | 약관의 다국어 번역 | translationId | 언어, 콘텐츠, 버전 ID |
| 사용자 약관 동의(UserAgreement) | 사용자의 약관 동의 기록 | agreementId | 사용자 ID, 약관 ID, 동의일, 버전 |
| GesundheitsID 연결(GesundheitsIDLink) | 사용자 계정과 GesundheitsID의 연결 정보 | linkId | 사용자 ID, 건강 ID 식별자, 연결일 |
| 동의(Consent) | 사용자의 특정 목적 데이터 사용 동의 정보 | consentId | 사용자 ID, 동의 목적, 동의 상태, 동의일 |
값 객체
| 값 객체 | 정의 | 불변 속성 | 동등성 기준 |
|---|---|---|---|
| 자격 증명(Credential) | 사용자 인증에 사용되는 정보 | 유형, 값, 만료일 | 모든 속성 |
| 비밀번호(Password) | 사용자 인증을 위한 비밀 문자열 | 해시값, 솔트, 알고리즘 | 해시값 |
| MFA 코드(MFACode) | 다중 인증을 위한 임시 코드 | 코드값, 만료 시간 | 모든 속성 |
| 세션 상태(SessionStatus) | 세션의 현재 상태 | 상태 코드, 갱신 시간 | 모든 속성 |
| 토큰 유형(TokenType) | 토큰의 종류를 나타내는 값 | 유형, 설명 | 유형 |
| 디바이스 식별자(DeviceIdentifier) | 디바이스 식별을 위한 정보 | UUID, 플랫폼, 버전, 타임스탬프, 서명 | 모든 속성 |
| 챌린지 응답(ChallengeResponse) | 앱 무결성 검증 응답 값 | 암호화된 응답, 타임스탬프 | 모든 속성 |
| 앱 권한(AppPermission) | 앱 토큰이 가진 권한 | 권한 코드, 설명 | 권한 코드 |
| 약관 상태(TermsStatus) | 약관의 현재 상태 | 상태(초안/활성/비활성/만료) | 상태 값 |
| 약관 유형(TermsType) | 약관의 유형 | 유형(필수/선택), 설명 | 유형 값 |
| GesundheitsID 상태(GesundheitsIDStatus) | GesundheitsID 연결 상태 | 상태(활성/비활성), 검증 날짜 | 모든 속성 |
| 동의 목적(ConsentPurpose) | 사용자가 동의한 데이터 사용 목적 | 목적 코드, 설명 | 목적 코드 |
| 액세스 토큰 페이로드(AccessTokenPayload) | 액세스 토큰에 포함된 정보 | 사용자 ID, 범위, 동의 정보, 만료 시간 | JWT ID |
집계
| 집계 | 정의 | 루트 엔티티 | 포함된 엔티티/값 객체 |
|---|---|---|---|
| 인증 세션(AuthSession) | 사용자의 인증 상태를 관리하는 집계 | Session | Token, LoginAttempt, SessionStatus |
| 사용자 자격 증명(UserCredential) | 사용자의 인증 정보를 관리하는 집계 | Credential | Password, MFAConfig |
| OAuth 연동(OAuthIntegration) | OAuth 인증 정보를 관리하는 집계 | OAuthProvider | OAuthConfig, OAuthToken |
| 앱 보안(AppSecurity) | 앱 보안 및 무결성 검증을 관리하는 집계 | Device | AppToken, Challenge, DeviceIdentifier |
| 약관 관리(TermsManagement) | 약관 정보를 관리하는 집계 | Terms | TermsVersion, TermsTranslation, TermsStatus, TermsType |
| 사용자 약관(UserTerms) | 사용자의 약관 동의를 관리하는 집계 | UserAgreement | Terms, TermsVersion |
| GesundheitsID 연결(GesundheitsIDConnection) | GesundheitsID 연결을 관리하는 집계 | GesundheitsIDLink | GesundheitsIDStatus |
| 동의 관리(ConsentManagement) | 사용자의 동의 정보를 관리하는 집계 | Consent | ConsentPurpose, AccessTokenPayload |
도메인 이벤트
| 이벤트 | 정의 | 트리거 | 처리자 |
|---|---|---|---|
| UserLoggedIn | 사용자가 성공적으로 로그인함 | 로그인 성공 | 세션 관리자, 감사 로그 |
| UserLoggedOut | 사용자가 로그아웃함 | 로그아웃 요청 | 세션 관리자, 감사 로그 |
| LoginFailed | 로그인 시도 실패 | 잘못된 인증 정보 | 보안 관리자, 알림 서비스 |
| SessionExpired | 세션이 만료됨 | 시간 초과 | 세션 관리자 |
| TokenRefreshed | 토큰이 갱신됨 | 토큰 갱신 요청 | 토큰 관리자 |
| DeviceRegistered | 새 디바이스 등록 | 앱 설치 및 최초 실행 | 디바이스 관리자 |
| AppTokenIssued | 앱 토큰 발급 | 디바이스 등록 성공 | 토큰 관리자 |
| AppIntegrityVerified | 앱 무결성 검증 성공 | 챌린지-응답 검증 | 앱 보안 관리자 |
| AppIntegrityViolated | 앱 무결성 검증 실패 | 변조된 앱 감지 | 보안 관리자, 알림 서비스 |
| ChallengeIssued | 보안 챌린지 생성 | 앱 무결성 검증 시작 | 챌린지 관리자 |
| GesundheitsIDLinked | GesundheitsID가 계정에 연결됨 | GesundheitsID 연결 요청 성공 | 사용자 프로필 관리자 |
| GesundheitsIDUnlinked | GesundheitsID가 계정에서 연결 해제됨 | GesundheitsID 연결 해제 요청 | 사용자 프로필 관리자 |
| GesundheitsIDLoginSucceeded | GesundheitsID로 로그인 성공 | GesundheitsID 로그인 요청 | 인증 서비스 |
| GesundheitsIDLoginFailed | GesundheitsID로 로그인 실패 | 잘못된 GesundheitsID 인증 | 보안 관리자 |
| TermsCreated | 새 약관 생성됨 | 약관 생성 명령 | 약관 관리자 |
| TermsUpdated | 약관 업데이트됨 | 약관 업데이트 명령 | 약관 관리자 |
| TermsActivated | 약관 활성화됨 | 약관 활성화 명령 | 약관 관리자 |
| TermsDeactivated | 약관 비활성화됨 | 약관 비활성화 명령 | 약관 관리자 |
| TermsExpired | 약관 만료됨 | 약관 만료일 도달 | 약관 관리자 |
| TermsTranslationAdded | 약관 번역 추가됨 | 약관 번역 추가 명령 | 약관 관리자 |
| UserTermsAgreementRecorded | 사용자의 약관 동의 기록됨 | 사용자 약관 동의 | 사용자 약관 관리자 |
| ConsentGranted | 사용자가 특정 목적에 동의함 | 동의 추가 요청 | 동의 관리자, 액세스 토큰 서비스 |
| ConsentRevoked | 사용자가 특정 목적의 동의를 철회함 | 동의 철회 요청 | 동의 관리자, 액세스 토큰 서비스 |
| ConsentUpdated | 사용자의 동의 정보가 업데이트됨 | 동의 수정 요청 | 동의 관리자, 액세스 토큰 서비스 |
서비스
| 서비스 | 정의 | 책임 | 의존성 |
|---|---|---|---|
| 인증 서비스(AuthenticationService) | 사용자 인증 관련 기능 제공 | 로그인, 로그아웃, 세션 관리 | SessionService, TokenService |
| 토큰 서비스(TokenService) | 토큰 생명주기 관리 | 토큰 발급, 검증, 갱신 | TokenRepository |
| MFA 서비스(MFAService) | 다중 인증 관련 기능 제공 | MFA 설정, 검증 | MFARepository |
| OAuth 서비스(OAuthService) | OAuth 인증 처리 | OAuth 로그인, 콜백 처리 | OAuthProviderRepository |
| 보안 서비스(SecurityService) | 보안 관련 기능 제공 | 보안 검증, 위반 처리 | SecurityRepository |
| 디바이스 인증 서비스(DeviceAuthService) | 디바이스 관리 및 등록 | 디바이스 등록, 검증 | DeviceRepository |
| 앱 보안 서비스(AppSecurityService) | 앱 무결성 검증 | 챌린지 생성, 검증 | ChallengeRepository |
| 앱 권한 서비스(AppPermissionService) | 앱 권한 관리 | 앱 권한 조회, 업데이트 | PermissionRepository |
| GesundheitsID 서비스(GesundheitsIDService) | GesundheitsID 연동 관리 | GesundheitsID 연결, 검증, 로그인 | GesundheitsIDRepository |
| 약관 관리 서비스(TermsManagementService) | 약관 관리 기능 제공 | 약관 생성, 업데이트, 활성화 | TermsRepository |
| 사용자 약관 서비스(UserTermsService) | 사용자 약관 동의 관리 | 약관 동의 기록, 조회 | UserAgreementRepository |
| 동의 관리 서비스(ConsentService) | 사용자 동의 관리 기능 제공 | 동의 추가, 검증, 철회 | ConsentRepository, TokenService |
정책
| 정책 | 정의 | 규칙 | 영향 |
|---|---|---|---|
| 비밀번호 정책 | 안전한 비밀번호 사용을 강제하는 정책 | 최소 길이, 복잡도 요구사항 | 사용자 인증 |
| 세션 정책 | 세션 관리 규칙을 정의하는 정책 | 세션 타임아웃, 동시 접속 제한 | 사용자 세션 |
| MFA 정책 | 다중 인증 사용 규칙을 정의하는 정책 | 필수 사용자 그룹, 검증 횟수 | 로그인 프로세스 |
| 토큰 정책 | 토큰 관리 규칙을 정의하는 정책 | 만료 시간, 갱신 제한 | 토큰 관리 |
| 보안 정책 | 보안 관련 규칙을 정의하는 정책 | 로그인 시도 제한, IP 제한 | 보안 관리 |
| 디바이스 관리 정책 | 디바이스 식별 및 관리 규칙을 정의하는 정책 | 디바이스 ID 해싱, 정보 검증 | 디바이스 관리 |
| 앱 무결성 정책 | 앱 무결성 검증 규칙을 정의하는 정책 | 챌린지 유효기간, 검증 빈도 | 앱 보안 |
| 앱 권한 정책 | 앱 권한 관리 규칙을 정의하는 정책 | 권한 범위, 버전별 권한 | 앱 토큰 관리 |
| 약관 관리 정책 | 약관 관리 규칙을 정의하는 정책 | 버전 관리, 활성화 규칙, 만료 규칙 | 약관 관리 |
| 사용자 약관 동의 정책 | 사용자 약관 동의 관리 규칙을 정의하는 정책 | 필수 동의 항목, 재동의 요구 규칙 | 서비스 접근 |
| GesundheitsID 연동 정책 | GesundheitsID 연동 관리 규칙을 정의하는 정책 | 인증 방식, 검증 요구사항 | GesundheitsID 로그인 |
| 동의 관리 정책 | 동의 정보 관리 규칙을 정의하는 정책 | 동의 범위, 동의 갱신 주기, 만료 처리 | 데이터 접근 제어 |
변경 이력
| 버전 | 날짜 | 작성자 | 변경 내용 |
|---|---|---|---|
| 0.1.0 | 2025-03-25 | bok@weltcorp.com | 최초 작성 |
| 0.2.0 | 2025-04-15 | bok@weltcorp.com | 동의 정보(Consent Information) 통합 관련 용어 추가 |