RestAPI (5) 인증과 인가

별빛사막·2024년 12월 23일

1. 인증과 인가의 차이

인증과 인가는 웹 애플리케이션에서 사용자 접근을 제어하는 중요한 개념이다.

  • 인증 (Authentication): 사용자가 누구인지 확인하는 과정이다. 사용자가 제공한 정보가 올바른지 확인하고, 이를 통해 사용자의 신원을 보증한다.

    • 실패 시 보통 401 Unauthorized 상태코드와 함께 요청을 종료한다.
    • ex. "너 누구야? 너 정말 너 맞아?"
  • 인가 (Authorization): 인증을 통과한 사용자가 요청한 자원에 접근할 권한이 있는지를 확인하는 과정이다.

    • 실패 시 403 Forbidden 상태코드와 함께 요청을 종료한다.
    • ex. "너가 이걸 할 자격이 되니? 그렇다면 권한 줄게."

구분인증 (Authentication)인가 (Authorization)
목적사용자의 신원을 확인한다사용자의 자원 접근 권한을 확인한다
주요 질문"너 누구야? 너 정말 너 맞아?""너가 이걸 할 자격이 되니?"
결과사용자 신원을 보증한다사용자가 자원에 접근 가능 여부를 결정한다
HTTP 코드401 Unauthorized403 Forbidden


2. 인증정보의 저장 위치

인증정보는 일반적으로 URL, 헤더(Header), 또는 HTTP Body에 저장할 수 있다.

  • URL: URL에 인증정보를 포함하면 정보가 외부에 쉽게 노출될 수 있으므로 권장하지 않는다.
  • 헤더(Header): 헤더에 인증정보를 포함하는 것이 가장 보안성이 높으며, 일반적으로 Authorization 헤더에 저장한다.
  • HTTP Body: 인증정보를 전송할 때 POST, PUT, PATCH 요청에서 사용할 수 있지만, DELETE, GET 요청에서는 사용할 수 없다.

3. 인증정보 설정 방법

  1. headers 탭에 작성 : 요청 헤더에 Authorization 값을 추가하여 인증정보를 설정
  2. Authorization 탭 - Auth type - Bearer Token : 관례적으로 Bearer 접두사를 붙인 인증 토큰을 Authorization 헤더에 설정
    ex. Authorization: Bearer eyJhbGciOiJIUz...
  3. Authorization 탭 - Auth type - Inherit auth from parent : 부모 요청에서 인증정보를 상속하여 자식 요청에서도 동일한 인증을 사용
profile
조금씩 매일 성장하자

0개의 댓글