인증과 인가

오하수·2026년 2월 18일

서비스에서 사용자의 신원을 검증하고 식별된 사용자에 맞춰 서비스를 제공하기 위해서는 별도의 검증 프로세스가 필요하다.

인증

"너 누구야?"를 확인하는 과정

사용자가 누구인지 신원을 확인하는 절차이다.

  • 아이디 + 비밀번호 로그인
  • 지문 인식
  • OTP 인증
  • 구글 로그인

과정 흐름
1. 사용자가 로그인 요청
2. 서버가 비밀번호/토큰 확인
3. 맞으면 -> 인증 성공
4. 틀리면 -> 인증 실패

@PostMapping("/login")
public ResponseEntity<?> login(@RequestBody LoginDto dto) {
    authenticationManager.authenticate(
        new UsernamePasswordAuthenticationToken(dto.getUsername(), dto.getPassword())
    );
}
// 인증은 신원 확인이다.

인가

"그래서 이 사람이 이걸 해도 돼?"를 확인하는 과정

이미 인증된 사용자가 특정 자원에 접근할 권한이 있는지를 확인하는 과정이다.

  • 일반 유저는 관리자 페이지 접근 불가
  • 글 작성자는 자기 글만 수정이 가능
  • 관리자만 회원 삭제 가능
@PreAuthorize("hasRole('ADMIN')")
@GetMapping("/admin")
public String adminPage() {
    return "관리자 페이지";
}
// 인가는 권한 확인이다.

현대적인 온라인 서비스들은 대부분 인증과 인가를 기반으로 운영된다. 또한 대부분의 웹/앱 서비스들은 HTTP 프로토콜을 사용하여 통신한다. HTTP 프로토콜은 비연결성(Connectionless), 무상태(Stateless)의 특징을 지니기 때문에, 최초 로그인을 한 이후 서버에서 클라이언트에 이전 상태를 기억하고 있지 않다.

profile
오늘하루도수고하세용~

0개의 댓글