초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 인가와 관련된 핵심적인 기술들을 익히게 됩니다.
이런 걸
배워요!
스프링 시큐리티의 기본 API 와 관련 Filter 완전 정복
스프링 시큐리티의 내부 아키텍처와 객체들간의 역할 및 관계흐름들 이해
스프링 시큐리티의 인증원리와 내부 동작방식 이해
스프링 시큐리티의 인가원리와 내부 동작방식 이해
스프링 시큐리티와 스프링 MVC 를 연계하는 방식 이해
스프링 시큐리티를 활용해 실무적 수준의 보안 시스템 구축 노하우 학습
스프링 시큐리티는 인증과 권한 제어 기능을 구현하는데 필요한 강력한 API를 제공하고 있습니다.
기본적으로 제공하는 API만을 사용해도 아주 적은 비용으로 안전한 보안 시스템을 구현할 수 있습니다.
본 강좌는 스프링 시큐리티의 기본적인 사용법을 전혀 모르는 사용자부터 기초적인 지식 및 사용 경험은 있지만 좀더 깊이있는 지식 습득과 스프링 시큐리티의 핵심적인 원리, 내부구조, 동작방식 등을 심도있게 이해하고 이를 응용하고자 하는 분들을 위해 제작되었습니다.
본 강좌는 스프링 시큐리티의 핵심 개념인 인증과 인가의 두 축을 중심으로 강의가 진행됩니다.
[인증]
스프링 시큐리티는 Form, OAuth, JWT, LDAP 등 여러 인증 방식들을 지원해주고 있는데 본 강좌는 Form 인증 방식에 대해서 살펴봅니다.
다수의 웹 서비스들이 Form 인증 방식 기반으로 보안화를 구현하고 있어, 기본적으로 꼭 이해하고 있어야 하는 인증 방식이기 때문입니다.
[인가]
스프링 시큐리티는 웹 계층 권한, 서비스계층 권한, 도메인 계층 권한(ACL) 접근 제어 기능을 지원해 주고 있습니다.
본 강좌는 웹 계층 권한과 서비스 계층 권한 접근 방식에 대해서 살펴봅니다.
특히 다섯 번째 섹션의 실전 프로젝트 인가 편에서는 실무적 수준에서의 동적인 권한제어가 가능하도록 DB와 연동하는 방식을 학습하게 됩니다.
웹 계층 뿐 아니라 비즈니스 계층의 권한제어를 DB로 연동하는 기술을 익힌다면 실제 운영 서비스에서도 활용도가 매우 높을 것으로 예상됩니다.
본 강좌는 다음과 같이 크게 4가지 파트로 나뉩니다.
스프링 시큐리티의 기본 API를 사용해서 인증과 인가 기능을 구현할 수 있지만 시스템의 규모가 커지고 보안과 관련한 요구사항이 많아지면 기본적으로 제공하는 API만으로는 구현하고자 하는 보안 기능을 충족하기가 어려워지게 됩니다.
스프링 시큐리티의 기능을 자유롭게 확장하고 요구사항에 맞게끔 다양하고 세세하게 커스트마이징 할 수 있기 위해서는 스프링 시큐리티의 내부 아키텍처를 깊이 이해하고 인증과 인가 처리가 어떻게 이루어지고 있는지의 전체적인 동작원리와 그에 따른 흐름들을 반드시 이해하여야 합니다.
또한 Spring MVC와 연계해서 보안 시스템을 구축할 경우 예기치 않게 발생하는 여러가지 보안 오류에 대해 정확한 원인과 그에 대한 해결책을 알기 위해서도 꼭 필요한 내용입니다.
스프링 시큐리티에서 제공하는 인가 방식은 두 가지로 나눌 수 있습니다.
첫번째는 클라이언트의 요청에 대해서 설정파일에 직접 권한정보를 명시하는 선언적 방식이고 두번째는 외부 저장소와 연동하여 맵 기반으로 권한 정보를 관리하는 동적인 방식으로 나눌 수 있습니다.
첫번째 방식은 시스템의 규모가 커질 수록 권한의 종류와 구성이 복잡해지게 되는데 이때 설정 파일로 일일히 인가 정책을 관리한다는 것은 매우 비효율적이며 유지보수 차원에서도 비용이 많이 들게 됩니다.
스프링 시큐리티에서는 이러한 부분들을 보완하기 위해 설정파일에 직접 인가정책을 관리하지 않고 메모리나 DB 와 같은 외부 저장소에 인가 정책을 관리할 수 있도록 지원하고 있습니다.
본 강좌는 설정 파일에 명시하는 선언적 방식과 DB와의 연동을 통한 동적인 방식 두가지 모두에 대해서 살펴 볼 것이며 특히 웹 계층의 URL 방식 권한 제어 뿐 아니라 비즈니스 계층의 Method와 Pointcut 방식의 권한제어에 대해서도 살펴봅니다.
이로써 서비스 운영시에도 서버 기동 없이 실시간적 동적 권한 제어 시스템을 구현할 수 있는 방법을 학습하게 됩니다.
본 강좌의 첫번째 섹션과 두번째 섹션을 학습한 이후 이를 바탕으로 세 번째 섹션부터 여섯 번째 섹션까지는 실전 프로젝트를 직접 완성해 가면서 스프링 시큐리티의 기능을 이해하는 방식으로 진행합니다.
[사용자]
대시보드, 사용자, 매니저, 환경설정과 같은 화면으로 이루어져 있으며 각 메뉴마다 인증 및 인가 정책을 설정하고 테스트 합니다.
회원등록 및 로그인 페이지를 통해 인증 준비 및 처리가 이루어집니다.
[관리자]
사용자 관리, 권한 관리, 리소스 관리와 같은 화면을 제공하며 관리자 권한을 가진 사용자만 접근이 가능합니다.
실시간적으로 각 기능의 CRUD 처리를 통해 권한과 자원에 대한 동적 관리가 가능하도록 구성합니다
DB 연동으로 사용자의 권한을 설정함으로써 사용자화면에서 즉시 결과를 확인할 수 있게 됩니다.
실전 프로젝트에서는 Spring Boot, Spring MVC, Spring JPA 등과 같은 기술을 연계해서 진행하게 됩니다.
이 강좌를 듣기 전에 미리 학습하길 권장해 드리고 강좌를 수강하시면서 스프링 연계 기술들을 병행해서 학습하시면 됩니다.
중요한 것은 스프링 시큐리티의 핵심 기능을 이해하는 것이기 때문에 위의 연계 기술은 차차 이해해도 크게 문제되지는 않습니다.
학습 대상은
누구일까요?
스프링 시큐리티의 기본 개념을 확실하게 이해하고 싶은 분
스프링 시큐리티의 기본 기능을 넘어 자유롭게 기능을 확장하고 커스트마이징 하고자 하는분
스프링 시큐리티를 활용해 실무적 수준의 인증 및 권한 제어 시스템을 구현하고자 하는 분
스프링 시큐리티 입문자부터 중고급자까지 활용할 수 있는 내용으로 구성
선수 지식,
필요할까요?
Java
Spring Boot
Spring MVC
Spring JPA
다양한 프로젝트에서 웹/모바일/솔루션 제품 개발과 관련된 업무를 진행해 오고 있으며 분석/설계/개발 Role 을 맡아 오고 있습니다.
공공기간, 교육프로그램, 기업 프로젝트, 쇼핑몰 등의 웹 개발 및 솔루션 프로그램, 프레임워크, 오픈소스 연동 등의 아키텍처 설계 및 구조적 고도화 개선 등을 해 오고 있으며 개발, PL 등의 역할을 맡았습니다.
다양한 Open Source 와 여러 기술적인 경험들을 통해 웹의 전반적인 기술 흐름들을 익혔으며 개발 경험이 거듭될 수록 요구사항의 기능 구현에만 거치지 않고 좀 더 OOP 적인 구조의 소프트웨어로서 안전성과 성능을 고려한 아키텍처링과 튜닝의 기술들을 접목시켜 지속적으로 더 훌륭한 소프트웨어를 완성하기 위한 연구와 개발 실무를 책임감 있게 맡아 오고 있습니다.
전체
64개 ∙ (20시간 58분)
가 제공되는 강의입니다.
1) 프로젝트 구성 및 의존성 추가
11:39
2) 사용자 정의 보안 기능 구현
16:46
3) Form Login 인증
18:01
6) Remember Me 인증
14:00
11) 권한설정과 표현식
31:34
2) 필터 초기화와 다중 보안 설정
23:59