인증(Authentication)와 인가(Authorization)

2024. 8. 20. 23:56·Spring

인증(Authentication)

인증은 사용자가 누구인지를 확인하는 과정이다. 이는 사용자가 자신이 주장하는 신원을 입증하는 단계로, 다양한 방법을 통해 수행 가능.

 

주요 특징

 

신원 확인: 사용자가 시스템에 접근하기 전에 자신의 신원을 증명한다.

 

인증 방법

  • 무엇을 알고 있는가? : 패스워드, PIN, 보안 질문 등의 입력을 요구하는 방식
  • 무엇을 가지고 있는가?: 스마트 카드, OTP(One-Time-Password)생성기, 보안 토큰 등 물리적인 아이템을 요구하는 방식
  • 무엇인가?: 생체 인식 정보(지문, 얼굴 인식, 홍채, 음성 등)를 활용하는 방식

Ex)

  • 로그인할 때 사용자 이름과 패스워드를 입력하는 과정
  • 지문 인식기나 얼굴 인식을 통해 스마트폰을 잠금 해제하는 과정

인증 과정 예시

  1. 사용자는 시스템에 로그인하기 위해 사용자 이름과 패스워드를 입력한다.
  2. 시스템은 입력된 정보가 저장된 데이터와 일치하는지 확인한다.
  3. 일치할 경우, 사용자의 신원이 확인되었다고 간주된다.

 

인가(Authorization)

인가는 인증된 사용자가 특정 자원이나 서비스를 사용할 수 있는 권한을 가지는지를 결정하는 과정이다. 즉, 인증된 사용자가 수행할 수 있는 작업의 범위를 설정하는 것이다.

 

주요 특징

 

권한 부여 : 특정 사용자나 그룹이 시스템의 자원이나 기능에 접근할 수 있는 권한을 설정한다.

 

권한 설정 방식

  • 역할 기반 접근 제어(RBAC, Role-Based Access Control): 사용자에게 특정 역할을 부여하고, 역할에 따라 권한을 부여하는 방식.
  • 속성 기반 접근 제어(ABAC, Attribute-Based Access Control): 사용자, 자원, 환경 속성에 따라 권한을 부여하는 방식.

Ex)

  • 관리자 계정만이 시스템 설정을 변경할 수 있는 권한을 가지는 경우
  • 특정 사용자가 자신이 생성한 문서에만 접근할 수 있도록 설정하는 경우

인가 과정 예시

  1. 사용자가 인증을 통해 시스템에 접근한다.
  2. 시스템은 해당 사용자 어떤 자원에 접근하려고 하는지 확인한다.
  3. 접근하려는 자원에 대한 권한이 있는지 시스템이 확인한 후, 접근을 허용하거나 거부한다.

간락히 이둘의 차이점을 요약하자면 인증은 "당신이 누구야?"를 확인하는 과정, 인가는 "당신이 무엇을 할 수 있나?"를 결정하는 과정이다.

반응형

'Spring' 카테고리의 다른 글

Entity 연관 관계 1 대 1 관계  (0) 2024.08.23
IOC(Inversion fo Control), DI(Dependency Injection)  (0) 2024.08.22
JPA란?  (0) 2024.08.19
@RestController, @Controller  (0) 2024.08.18
post, put, get, delete  (0) 2024.08.14
'Spring' 카테고리의 다른 글
  • Entity 연관 관계 1 대 1 관계
  • IOC(Inversion fo Control), DI(Dependency Injection)
  • JPA란?
  • @RestController, @Controller
wanduek
wanduek
차근차근 쌓아가는 지식
  • wanduek
    완득님의 블로그
    wanduek
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • Onboarding (0)
      • 아티클 (0)
      • SQL 정리 (20)
      • 웹개발 기초정리(프엔) (9)
      • (Java)코테연습 (27)
      • 미니 프로젝트 (9)
        • 자기소개 웹페이지 (5)
        • 수강생 관리 프로그램(Java) (4)
      • GitHub 오류 및 명령어 정리 (7)
      • Java 문법정리 (Array부터) (17)
      • Java로 이용한 기능 (2)
      • Web지식 (12)
        • web3 (6)
        • 네트워크 (6)
      • 인텔리제이 오류 대처 방법 (1)
      • Computer Science (7)
      • Spring (38)
        • 미니 프로젝트(배달) (2)
        • Spring 트러블 슈팅 (3)
        • QueryDSL, JPQL (3)
        • 미니 프로젝트(뉴스피드) (5)
        • 미니 프로젝트(Trello) (2)
      • 개발자 밋업 (1)
      • Docker (2)
      • Redis (1)
      • AWS (6)
        • AWS 트러블 슈팅 (2)
      • Jmeter (2)
      • 우리 지금 만나 (12)
      • Kafka (1)
      • RabbitMQ (2)
        • 트러블 슈팅 (1)
      • STOMP (2)
      • WebSocket (3)
        • 트러블 슈팅 (2)
      • Node.js (2)
      • Elastic Search (2)
      • Nginx (1)
      • 퍼블엘 (2)
      • openresty (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    jquery
    groupby
    json
    SQL
    백앤드개발자 #초심자
    where
    ㅏㄷ
    github
    git
    fetch
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
wanduek
인증(Authentication)와 인가(Authorization)
상단으로

티스토리툴바