[CS] 인증 (Authentication)

2024. 11. 20. 00:54·CS
728x90
728x90

인증 (Authentication)

  - 클라이언트가 서버에 접근하기 전에 본인임을 증명하는 과정

  - API는 요청을 보낸 사용자가 누구인지 확인하고, 해당 사용자가 허가된 요청만 수행할 수 있도록 제어함

 

 


# API Key

  - 클라이언트가 요청 헤더 또는 URL에 고유한 키를 포함하여 요청을 보내는 방식

 

# 기본 인증 (Basic Authentication)

  - 사용자 이름과 비밀번호를 Base64로 인코딩하여 요청 헤더에 포함해서 보내는 방식

 

# 쿠키 기반 인증 (Cookie-Based Authentication)

  - 브라우저에서 쿠키를 사용하여 인증 정보를 저장하고, 이후 모든 요청에 자동으로 쿠키를 포함시켜 보내는 방식

  - Stateful (상태 유지)

     : 서버가 클라이언트의 세션 정보를 유지하고, 이를 기반으로 요청을 처리함

 

# OAuth (Open Authorization)

  - 외부 애플리케이션이 사용자의 인증 정보를 대신 사용하여 API에 접근하는 방식

  [작동 방식]

     i. 클라이언트가 인증 서버에 인증 요청

     ii. 인증 서버가 Access Token 발급

     iii. 클라이언트가 API 요청 시 토큰 사용

     iv. 서버가 토큰을 확인하고 요청 처리

 

# JWT (JSON Web Token)

  - 클라이언트와 서버 간에 JSON 객체로 인증 정보를 안전하게 전송하기 위한 표준

  - 토큰 자체에 인증 정보가 포함되어 있음

     → 서버는 별도로 세션 상태를 관리할 필요 없이, 토큰만을 검증하면 됨 (Stateless)

     → 서버가 여러 대인 경우에도 클라이언트는 동일한 토큰을 사용할 수 있음

  - 보안성

     · 유효기간이 있어, 자동으로 만료됨

     · 서버만 알고 있는 비밀 키로 생성된 '서명'이 존재함

        → 서버가 원본 비밀 키를 사용하여 서명을 검증하기 때문에, 변조가 불가능함

  [작동 방식]

     i. 사용자가 아이디와 비밀번호를 서버로 전송하여 로그인 요청

     ii. 로그인 요청이 유효한 경우, 서버가 JWT 토큰을 생성하여 클라이언트에 반환함

     iii. 클라이언트는 반환받은 JWT를 로컬 스토리지 or 세션 스토리지 or 쿠키 등에 저장함

     iv. 이후 클라이언트가 API 요청을 보낼 때마다 JWT 토큰을 요청 헤더에 포함하여 서버에 전송함

     v. 서버는 요청에 포함된 토큰을 검증하고, 토큰이 유효한 경우에만 요청을 처리함

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'CS' 카테고리의 다른 글

[CS] 백엔드 개발자 로드맵 따라가기 (진행중)  (0) 2024.11.23
[CS] 캐싱 전략  (0) 2024.11.21
[CS] API (Application Programming Interface)  (5) 2024.11.19
[CS] 브라우저 (Browser)  (1) 2024.11.18
[CS] 호스팅 (Hosting)  (1) 2024.11.17
'CS' 카테고리의 다른 글
  • [CS] 백엔드 개발자 로드맵 따라가기 (진행중)
  • [CS] 캐싱 전략
  • [CS] API (Application Programming Interface)
  • [CS] 브라우저 (Browser)
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (384)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • etc. (13)
      • Error Note (16)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    jsp
    Android
    vuejs
    개발일지
    Hotkeys
    면접
    Swing
    git
    zapier
    SEO
    티스토리챌린지
    errorNote
    HTML
    http
    jQuery
    Codeigniter
    php
    cs
    SQL
    Wordpress
    java
    CSS
    tailwindcss
    SpringBoot
    오블완
    C#
    SWAGGER
    js
    typeScript
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[CS] 인증 (Authentication)
상단으로

티스토리툴바