Voyage_dev
항해하는 개발자
Voyage_dev
전체 방문자
오늘
어제
  • All (158)
    • Front-End (102)
      • HTML & CSS (7)
      • JavaScript (13)
      • Web & 표준 & ETC (15)
      • React (17)
      • Next (13)
      • TypeScript (6)
      • Zustand (1)
      • AWS (4)
      • Redux (1)
      • MobX (9)
      • GraphQL (1)
      • Flutter (15)
    • 알고리즘 (12)
      • Java (11)
      • JavaScript (1)
    • Git (1)
    • Project (2)
      • 개인 (1)
      • 팀 (1)
    • Books (30)
      • 누구나 자료구조와 알고리즘 (20)
      • Do It 타입스크립트 프로그래밍 (9)
    • 자료구조 (6)
    • 취업 (1)
    • 항해플러스 (1)
      • 1주 (1)

블로그 메뉴

  • 👨🏻‍💻 Github
  • 💻 Rss 블로그
  • 🏊‍♂️ Resume
  • 🗂️ Portfolio

인기 글

최근 댓글

hELLO · Designed By 정상우.
Voyage_dev

항해하는 개발자

[Web] Authentication vs Authorization
Front-End/Web & 표준 & ETC

[Web] Authentication vs Authorization

2022. 8. 15. 17:55

인증 (Authentication) / 인가 (Authorization)은 항상 함께 등장하는 개념인 동시에 사용하기에 헷갈리는 용어이다. 그래서 서로 다른 개념이지만 이 둘의 차이를 두지 않고 종종 혼용되어 쓰이고 있다.

인증 (Authentication)

인증이란 어떤 개체 즉, 유저 혹은 디바이스에 대한 신원을 확인하는 절차 및 과정이다. 개체는 보통 어떤 인증 요소를 증거로 제시하여 자신을 인증한다. 예를 들어 은행에 가서 돈을 인출하려면 은행직원은 돈을 인출하는 사람이 누구인지 확인하기 위해 신분증을 제시해 달라고 요청할 수 있다. 더 간단히 말하면 어떤것을 검증할 수 있는 방법이다.

인가 (Authorization)

인가는 인증과 달리 어떤 개체 즉, 유저 혹은 디바이스에 대한 접근 권한이 있는지를 검증하는 것이다. 즉, 어떤 리소스에 접근할 수 있는지 또는 어떤 동작을 수행할 수 있는지를 검증하고 없을 시 거부할 수 있는 행위이다. 예를들어 비행 시 여권과 함께 가져가는 비행기 티켓은 여권으로 신분확인이 되더라도 비행기 티켓이 있어야 비행기에 탈 수 있다. 인터넷 기반 앱에서는 보통 토큰이라 부르는 것을 사용한다. 유저는 자신의 인가 세부사항을 가진 토큰을 통해 서버에 인증받고 서버는 유저의 토큰을 보고 권한이 있는지 판단한다.

인증 vs 인가

인증과 인가는 한 번에 쓰일 수도 있다. 예를 들어 회사에 출근하면 찍는 지문 인식기는 내가 누구인지도 인식하면서, 내가 회사 출입문을 통과할 수 있도록 회사 내부 접근을 인가하기도 한다. 즉, 인증과 인가는 어떤 시나리오에서는 서로 바꿔서 사용할 수 있는 주제이기도 하다. 그렇기 때문에 혼란을 야기한다.

 

하지만 중요한 점은 인증은 인가로 이어지지만 인가는 인증으로 이어지지는 않는다. 신원증명이 접근 권한을 승인하기에 충분하다고 해도, 즉 무언가를 얻는데 인가를 받을 수 있다고 해도 인가가 항상 개체를 식별하는데 사용할 수 있는게 아니다. 예를 들어 탑승권은 비행기를 타는 데 인가를 하는 역할도 하고 신원 데이터도 포함되어 있다. 하지만 공연 티켓같은 경우 신원 세부사항을 담고 있지는 않는다. 단지 공영장에 입장할 권리를 나타낼뿐.

요약

  • 인증은 유저나 디바이스의 신원을 증명하는 행위입니다. (내가 누구인지 확인하는 행위)
  • 인가는 유저나 디바이스에게 접근권한을 부여하거나 거부하는 행위입니다. (내가 권한이 있는지)
  • 인증은 인가 의사결정의 한 요소가 될 수 있습니다.
  • 인가 가공물(토큰)로 유저나 디바이스의 신원을 파악하는 방법은 유용하지 않습니다.

 

 

출처 : 아래의 사이트들을 보면서 큰 공부 하였습니다

https://choise.tistory.com/19

https://jake-seo-dev.tistory.com/76

https://www.okta.com/kr/identity-101/authentication-vs-authorization/

https://auth0.com/intro-to-iam/authentication-vs-authorization/

https://velog.io/@aaronddy/인증Authentication과-인가Authorization

https://dextto.tistory.com/234

'Front-End > Web & 표준 & ETC' 카테고리의 다른 글

브라우저 렌더링의 원리  (1) 2024.07.25
[Web] 프론트엔드 성능 최적화  (0) 2022.08.23
웹팩과 바벨 (Webpack vs Babel) 넌 또 누구냐!!  (0) 2022.07.05
모듈과 번들러 (Module Bundler) 넌 누구니?!  (0) 2022.07.05
[Web] SSR (서버사이드 렌더링) vs CSR (클라이언트 사이드 렌더링)  (0) 2022.03.15
    'Front-End/Web & 표준 & ETC' 카테고리의 다른 글
    • 브라우저 렌더링의 원리
    • [Web] 프론트엔드 성능 최적화
    • 웹팩과 바벨 (Webpack vs Babel) 넌 또 누구냐!!
    • 모듈과 번들러 (Module Bundler) 넌 누구니?!
    Voyage_dev
    Voyage_dev

    티스토리툴바