항해99 - day22

Dasole Kwon·2022년 5월 30일
0

항해99

목록 보기
23/47

오늘은 하기 내용에 대해 강의를 들었지만.........😔😔😔

  1. 웹의 인증 및 인가의 개념을 이해한다.
  2. 스프링 시큐리티를 이용해 폼 로그인 기능을 구현한다.
  3. 스프링 시큐리티 OAuth2 를 이용해 소셜 로그인 기능을 구현한다.
    4. JWT 로그인 기능을 구현한다. -> 아직 무리임.

내용이 너무 방대해서 머릿속에 아직 들어오지 않은 느낌이다.
일단은 정리해보겠다ㅠㅠ


인증 vs 인가

  • 인증(authentication): 사용자 신원을 확인하는 행위
    ex.회사출입을 위한 출입증 혹은 생체정보 인식
  • 인가(authorization): 사용자 권한을 확인하는 행위
    ex. 방문자-> 회의실만 접근가능, 직원 -> 회의실, 사무실 접근가능, 관리자 -> 회의실,사무실,서버실,물품보관실 접근 가능

웹에서의 인증 및 인가

  • 인증: 로그인을 통해 본인임을 확인 (주로, 아이디와 패스워드 이용)
  • 인가: 주로 역할에 따른 사용 권한 관리

쿠키와 세션

  • 쿠키와 세션 모두 HTTP에 상태 정보를 유지하기위해 사용됨. 즉, 쿠키와 세션을 통해 서버에서는 클라이언트 별로 인증 및 인가를 할 수 있음.

1. 쿠키
: 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일

  • 구성요소
    • Name (이름): 쿠키를 구별하는 데 사용되는 키 (중복될 수 없음)
    • Value (값): 쿠키의 값
    • Domain (도메인): 쿠키가 저장된 도메인
    • Path (경로): 쿠키가 사용되는 경로
    • Expires (만료기한): 쿠키의 만료기한 (만료기한 지나면 삭제됩니다.)
  1. 세션
    • 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용
    • 서버에서 클라이언트 별로 유일무이한 '세션 ID' 를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장
    • 서버에서 생성한 '세션 ID' 는 클라이언트의 쿠키값('세션 쿠키' 라고 부름)으로 저장되어 클라이언트 식별에 사용됨
    • 세션 동작 방식

(그냥 참고하려고 올리는 api설계도)

'Spring Security' 프레임워크
: spring security프레임워크는 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해줌으로써 개발의 수고를 덜어줌.

ex.user테이블

  • 관리자 회원 가입 인가 방법
    • '관리자 가입 토큰' 입력 필요: 랜덤하게 생성된 토큰 사용
  • 회원 가입 요청 처리
    1. 회원 중복 Id 확인
    2. 관리자 가입 요청에 대해서는 '관리자 가입 토큰' 인가

암호화 후 패스워드 저장이 필요.

  • 평문 → (암호화 알고리즘) → 암호문
    - "nobodynobody" → "2a$10.."
    일방향' 암호 알고리즘
    암호화: 평문 → (암호화 알고리즘) → 암호문
    복호화: 불가 (암호문 → (암호화 알고리즘) → 평문)

spring security 사용시, '권고'하고 있는 'BCrypt 해시함수'를 사용해 패스워드를 암호화하여 DB 에 저장

로그인/로그아웃 기능 구현

OAuth 란?
:OAuth는 개방형 표준으로, 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단. 사용자가 애플리케이션에게 모든 권한을 넘기지 않고 사용자 대신 서비스를 이용할 수 있게 해주는 HTTP 기반의 보안 프로토콜. ex.카카오, 구글, 페이스북, 네이버 등

마지막으로, JWT는.... 아직 이해하기 어려우므로.....OAuth가 익숙해지면 다시 공부하겠다ㅎㅎㅎㅎ

0개의 댓글