TIL.70

hyunki__ss·2022년 9월 29일
0

2022년 9월 29일 목요일

@ 어느덧 70일차다, 어떻게 보면 엄청 빠른 시간 안에
많은 것을 배우며 경험할 수 있던 것 같아서
당연히 힘들고 어려운 것 같기도 하다,
어떤 장단에 기준을 두고 맞춰야 할지는 모르겠지만
확실한 것은 절대 쉽지 않은 시간들을 보내왔다는 것이다.
이제 절반이 좀 지난 상태인데, 방향성은 잡혔으니
우직하게 이어나가서 수료, 취업, 실무를 잘해보자.

[수업 순서]

  • 스프링부트 시큐리티

[스프링 시큐리티]
= 스프링 기반의 어플리케이션 보안(인증, 인가 등)을
담당하는 스프링 하위 프레임워크이다.

  • 모든 URL 요청을 가로챈 뒤 인증을 요구하며
    login form을 제공한다.
  • 여러가지 Servlet API 메소드를 제공한다.
    (Servlet API 메소드)
  • 인증 및 권한 부여에 대한 확장이 가능하도록 지원한다.
  • 웹 애플리케이션을 CSRF 공격으로부터 보호할 수 있다.

[인증, 인가, 보안 주체]

  • 인증 : 보호된 리소스에 접근하는 사용자를 식별하는 과정으로
    사용자를 증명하는 것으로 볼 수 있다.
  • 인가 : 인증된 사용자가 시스템 자원에 대한 접근 시
    권한이 있는지 확인하는 과정으로 권한 부여라고 볼 수 있으며
    인증에 성공하여 인증된 사용자에 대해 인가 절차가 진행된다.
  • 보안 주체 : 보안 시스템이 작동되고 있는 애플리케이션에
    접근하는 유저를 말하며 Principal이라 하고,
    리소스에 접근하는 대상의 비밀번호는 Credential이라 한다.

[스프링 시큐리티 서블릿 필터]
= 스프링 시큐리티에서 요청이 들어오면 해당 요청은
서블릿 필터들로 개발한 시큐리티 필터를 동작 시키게 되는데
이 때, 여러가지 필터들이 순서대로 동작한다.
(Authentication Filter Chains)

= 아 중에서 중요한 필터 두 가지가 있는데 하나는 인증과
관련된 UsernamePasswordAuthenticationFilter로
사용자의 인증 정보를 이용해서 인증을 처리해준다.
또 한가지는 인가와 관련된 FilterSecurityIncerceptor로
인증에 성공한 사용자가 해당 리소스에 접근할 권한이
있는지를 검증하고, 인증을 실패하면 로그인 페이지로
인가를 실패하면 권한 없음 페이지를 전송하며
리소스에 대한 접근 차단 역할을 한다.

[시큐리티를 통한 전반적인 로그인 절차]

※ 프로젝트에 사용할 실전 코드들이 나오는데,
이해도가 현저히 떨어진다, 계속해서 도전해서
끝내는 이해하고 응용도 가능한 상태로 만들 것이다!

profile
야구선수 출신 개발자

0개의 댓글