인증(Authentication) vs 인가(Authorization), 아직도 헷갈리시나요?

인증(Authentication) vs 인가(Authorization), 아직도 헷갈리시나요?

IT 보안 공부를 시작하면 가장 먼저 마주치고, 또 가장 자주 헷갈리는 두 개념이 있습니다. 바로 인증인가입니다. 이름도 비슷하고 둘 다 '로그인' 과정과 관련이 있다 보니 혼동하기 쉬운데요. 오늘은 아주 쉬운 비유를 통해 이 둘의 차이점을 확실히 정리해 보겠습니다!


1. 인증(Authentication): "당신은 누구십니까?"

인증은 한 마디로 **'신원 확인'**입니다. 사용자가 주장하는 그 사람이 진짜 맞는지 확인하는 절차죠.

  • 쉽게 말하면: 공항 입국 심사대에서 여권을 보여주는 것과 같습니다.
  • 보안의 관점: 시스템이 "오, 당신은 우리 서비스에 가입된 '홍길동'이 맞군요!"라고 인정해 주는 단계입니다.
  • 대표적인 예시:
    • 아이디와 비밀번호 입력
    • 스마트폰 지문 인식 / Face ID
    • OTP 번호 입력
Gemini_Generated_Image_2fgt6b2fgt6b2fgt.png

2. 인가(Authorization): "무엇을 할 수 있습니까?"

인가는 신원이 확인된 사람에게 **'권한을 부여'**하는 과정입니다. 인증을 통과했다고 해서 모든 곳에 들어갈 수 있는 건 아니니까요.

  • 쉽게 말하면: 비행기 티켓 등급에 따라 비즈니스 라운지에 들어갈 수 있는지, 아니면 일반석에 앉아야 하는지 결정하는 것과 같습니다.
  • 보안의 관점: 시스템이 "홍길동님은 확인됐습니다. 하지만 당신은 '일반 사용자'이므로 '관리자 페이지'에는 들어갈 수 없습니다"라고 통제하는 단계입니다.
  • 대표적인 예시:
    • 카페 회원이 '우수 회원' 전용 게시판에 접근할 때
    • 회사원이 자기 팀의 문서함은 볼 수 있지만, 인사팀 문서함은 못 열 때
Gemini_Generated_Image_3dfc633dfc633dfc.png

3. 한눈에 비교하기 (요약)

구분 인증 (Authentication) 인가 (Authorization)
핵심 질문 "너 누구니?" (Who are you?) "너 뭐 할 수 있니?" (What can you do?)
비유 공항의 여권 심사 비행기의 탑승권(Ticket) 등급
실패 시 결과 로그인 실패 (존재하지 않는 계정 등) 접근 거부 (권한이 없는 페이지 등)
순서 반드시 먼저 수행 (1단계) 인증 후 수행 (2단계)

4. 왜 구분해야 할까요?

실제 웹 서비스에서 에러 메시지를 볼 때 이 차이를 알면 훨씬 이해가 빠릅니다.

  • 401 Unauthorized: "너 누구인지 모르겠어." (로그인 필요)
  • 403 Forbidden: "너 누구인지는 알겠는데, 여기 들어올 권한은 없어." (접근 권한 부족)

보안의 시작은 '누구인지 정확히 알고(인증)', '허락된 범위만큼만 행동하게 하는 것(인가)'에서 시작됩니다. 이 두 가지만 잘 구분해도 보안의 절반은 이해하신 셈입니다!