onjsdnjs
103
2020-11-13 22:41:30 작성 2020-11-13 22:49:25 수정됨
0
165

스프링 시큐리티 강의 (스프링 부트 기반)


 강좌 바로 가기

 스프링 부트 기반 스프링 시큐리티

 https://www.inflearn.com/course/코어-스프링-시큐리티?inst=a8a38747

 해당 링크를 통해 강의를 들으시는 분들께는 별도의 할인 기간이 아닌 경우에 10% 할인 쿠폰을 드립니다

 leaven73@gmail.com 로 계정 아이디를 보내 주시면 됩니다.


스프링 시큐리티의 가장 핵심적인 기술을 익히고, 응용합니다.


1. 스프링 부트 기반 스프링 시큐리티 강좌 소개

스프링 시큐리티는 인증과 권한 제어 기능을 구현하는데 필요한 강력한 API를 제공하고 있습니다. 
기본적으로 제공하는 API만을 사용해도 아주 적은 비용으로 안전한 보안 시스템을 구현할 수 있습니다.

본 강좌는 스프링 시큐리티의 기본적인 사용법을 전혀 모르는 사용자부터 기초적인 지식 및 사용 경험은 있지만 좀더 깊이있는 지식 습득과 스프링 시큐리티의 핵심적인 원리, 내부구조, 동작방식 등을 심도있게 이해하고 이를 응용하고자 하는 분들을 위해 제작되었습니다.

본 강좌는 스프링 시큐리티의 핵심 개념인 인증과 인가의 두 축을 중심으로 강의가 진행됩니다.


[인증]
스프링 시큐리티는 Form, OAuth, JWT, LDAP 등 여러 인증 방식들을 지원해주고 있는데 본 강좌는 Form 인증 방식에 대해서 살펴봅니다.
다수의 웹 서비스들이 Form 인증 방식 기반으로 보안화를 구현하고 있어, 기본적으로 꼭 이해하고 있어야 하는 인증 방식이기 때문입니다.

[인가]
스프링 시큐리티는 웹 계층 권한, 서비스계층 권한, 도메인 계층 권한(ACL) 접근 제어 기능을 지원해 주고 있습니다. 
본 강좌는 웹 계층 권한과 서비스 계층 권한 접근 방식에 대해서 살펴봅니다.
특히 다섯 번째 섹션의 실전 프로젝트 인가 편에서는 실무적 수준에서의 동적인 권한제어가 가능하도록 DB와 연동하는 방식을 학습하게 됩니다.
웹 계층 뿐 아니라 비즈니스 계층의 권한제어를 DB로 연동하는 기술을 익힌다면 실제 운영 서비스에서도 활용도가 매우 높을 것으로 예상됩니다.


본 강좌는 다음과 같이 크게 4가지 파트로 나뉩니다.

  • 스프링 시큐리티 기본 API 사용법과 이와 관련된 Filter 이해
  • 스프링 시큐리티 내부 아키텍처와 동작 방식 이해
  • 실전 프로젝트를 통한 스프링 시큐리티 인증 프로세스 구현
  • 실전 프로젝트를 통한 스프링 시큐리티 인가 프로세스 구현 - DB 연동을 통해 권한 제어 시스템 구현


2. 심도 있는 내부 아키텍처 및 동작원리 파헤치기

스프링 시큐리티의 기본 API를 사용해서 인증과 인가 기능을 구현할 수 있지만 시스템의 규모가 커지고 보안과 관련한 요구사항이 많아지면 기본적으로 제공하는 API만으로는 구현하고자 하는 보안 기능을 충족하기가 어려워지게 됩니다.

스프링 시큐리티의 기능을 자유롭게 확장하고 요구사항에 맞게끔 다양하고 세세하게 커스트마이징 할 수 있기 위해서는 스프링 시큐리티의 내부 아키텍처를 깊이 이해하고 인증과 인가 처리가 어떻게 이루어지고 있는지의 전체적인 동작원리와 그에 따른 흐름들을 반드시 이해하여야 합니다.

또한 Spring MVC와 연계해서 보안 시스템을 구축할 경우 예기치 않게 발생하는 여러가지 보안 오류에 대해 정확한 원인과 그에 대한 해결책을 알기 위해서도 꼭 필요한 내용입니다. 

본 강좌를 학습하게 되면 이러한 지식들을 습득하고 실무에 활용할 수 있게 됩니다.





3. DB 연동 권한 제어 시스템 구현

스프링 시큐리티에서 제공하는 인가 방식은 두 가지로 나눌 수 있습니다.

첫번째는 클라이언트의 요청에 대해서 설정파일에 직접 권한정보를 명시하는 선언적 방식이고 두번째는 외부 저장소와 연동하여 맵 기반으로 권한 정보를 관리하는 동적인 방식으로 나눌 수 있습니다.

첫번째 방식은 시스템의 규모가 커질 수록 권한의 종류와 구성이 복잡해지게 되는데 이때 설정 파일로 일일히 인가 정책을 관리한다는 것은 매우 비효율적이며 유지보수 차원에서도 비용이 많이 들게 됩니다.

스프링 시큐리티에서는 이러한 부분들을 보완하기 위해 설정파일에 직접 인가정책을 관리하지 않고 메모리나 DB 와 같은 외부 저장소에 인가 정책을 관리할 수 있도록 지원하고 있습니다.

본 강좌는 설정 파일에 명시하는 선언적 방식과 DB와의 연동을 통한 동적인 방식 두가지 모두에 대해서 살펴 볼 것이며 특히 웹 계층의 URL 방식 권한 제어 뿐 아니라 비즈니스 계층의 Method와 Pointcut 방식의 권한제어에 대해서도 살펴봅니다.

이로써 서비스 운영시에도 서버 기동 없이 실시간적 동적 권한 제어 시스템을 구현할 수 있는 방법을 학습하게 됩니다.



4. 실전 프로젝트 완성

본 강좌의 첫번째 섹션과 두번째 섹션을 학습한 이후 이를 바탕으로 세 번째 섹션부터 여섯 번째 섹션까지는 실전 프로젝트를 직접 완성해 가면서 스프링 시큐리티의 기능을 이해하는 방식으로 진행합니다.


[사용자]
대시보드, 사용자, 매니저, 환경설정과 같은 화면으로 이루어져 있으며 각 메뉴마다 인증 및 인가 정책을 설정하고 테스트 합니다.
회원등록 및 로그인 페이지를 통해 인증 준비 및 처리가 이루어집니다.

[관리자]
사용자 관리, 권한 관리, 리소스 관리와 같은 화면을 제공하며 관리자 권한을 가진 사용자만 접근이 가능합니다.
실시간적으로 각 기능의 CRUD 처리를 통해 권한과 자원에 대한 동적 관리가 가능하도록 구성합니다
DB 연동으로 사용자의 권한을 설정함으로써 사용자화면에서 즉시 결과를 확인할 수 있게 됩니다.


실전 프로젝트에서는 Spring Boot, Spring MVC, Spring JPA 등과 같은 기술을 연계해서 진행하게 됩니다. 
이 강좌를 듣기 전에 미리 학습하길 권장해 드리고 강좌를 수강하시면서 스프링 연계 기술들을 병행해서 학습하시면 됩니다.
중요한 것은 스프링 시큐리티의 핵심 기능을 이해하는 것이기 때문에 위의 연계 기술은 차차 이해해도 크게 문제되지는 않습니다.


 강좌 바로 가기

 스프링 부트 기반 스프링 시큐리티

 https://www.inflearn.com/course/코어-스프링-시큐리티?inst=a8a38747

 해당 링크를 통해 강의를 들으시는 분들께는 별도의 할인 기간이 아닌 경우에 10% 할인 쿠폰을 드립니다

 leaven73@gmail.com 로 계정 아이디를 보내 주시면 됩니다.


5. 지식공유자 소개

정수원(leaven)

  • 현직 20년차 자바 개발자
  • SI/SM/솔루션/Mobile/Front&Back-end 의 다양한 프로젝트 경험
  • Architect/PM/PL 로서 역할 수행
  • Github
0
  • 댓글 0

  • 로그인을 하시면 댓글 을 등록할 수 있습니다.