AUTH는 로그인 서비스가 아닙니다. 여러 프로젝트가 저마다 다시 만들던 인증·암호화 핵심 코드를 한곳에 모은 모듈 모음입니다. 각 서비스의 사용자 DB와 비즈니스 정책은 가져오지 않고, 검증할 수 있는 인터페이스와 어댑터만 관리합니다.
모듈마다 두 종류의 증명이 있습니다. 명세 증명은 표준 문서에 실린 테스트 벡터를 넣어 같은 값이 나오는지 확인하고, 공격 증명은 막아야 할 입력을 실제로 넣어 거부하는지 확인합니다. 각 모듈 페이지에서 직접 실행할 수 있고, 저장소 동작을 확인하는 증명은 실제 PostgreSQL에서 실행됩니다.
본인 확인 수단과 외부 인증 공급자 연동을 같은 계약으로 다룹니다.
인증이 끝난 뒤 principal을 넘기는 방식과 토큰의 수명 주기를 프레임워크와 무관하게 다룹니다.
민감정보 암호화와 비밀번호 저장, 무결성 검증에 쓰는 기본 구현을 한곳에 모았습니다.
서명하는 쪽과 검증하는 쪽을 나누는 방법, 그리고 미리 공유한 키 없이 키를 나눠 갖는 방법을 다룹니다.
다른 모듈이 모두 기대는 값의 표현과 난수에 관한 계약입니다. 여기가 틀리면 그 위에 쌓은 모듈이 전부 무너집니다.
인증된 principal에 역할과 권한 정책을 적용합니다. 서비스 도메인의 규칙은 소비 서비스가 정합니다.
보안 경계에 닿아 있는 데이터 계약을 규격 재현과 공격 거부, 두 가지 증명으로 고정합니다.
두 프로젝트 이상에서 반복되는 코드, 잘못 구현하면 보안 사고로 이어지는 코드를 먼저 옮깁니다. 외부에 의존하지 않는 핵심 로직은 AUTH가 맡습니다. DB·메일·KMS·프레임워크 연결은 갈아 끼울 수 있는 어댑터로 두고, 회원 정책과 권한 데이터는 각 서비스에 남깁니다.