Spring Security 초보에서
마스터되기 강의에 오신 것을 환영합니다
보안은 어떤 웹 애플리케이션에서든
다루기 어려운 복잡한 주제입니다
하지만 Spring Security 프레임워크의 도움을 받는다면
그것은 아주 간단한 일이 될 것 입니다
종류와 상관없이
어떤 Java 기반의 웹 애플리케이션을 개발하든지
MVC 애플리케이션이든
REST 서비스이든
모바일 애플리케이션이든
마이크로 서비스든 어떠한 종류의
웹 애플리케이션이든지 Spring Security 프레임워크를 완벽 숙달하면
보안을 쉽게 실행시킬 수 있습니다
그리고 이 강의는 여러분이
그 체제를 숙달할 수 있도록 도와줄 것 입니다
Spring Security 프레임워크와는 별개로
이 강의에서는
보안에 대해
이야기할 때 나오는
'보안은 무엇일까?' 와
'왜 웹 애플리케이션에 보안을 적용하는 것에 관심을 가져야할까?'
등과 같이 자주 언급되는 질문들에
답을 할 것입니다
비밀번호 다루는 법, 유저와 롤의 도움을 통해
웹 애플리케션 내에 인가 및 인증을 실행하는 법
그리고 CSRF, CORS와 같이
흔한 보안 공격에 대응하는 법
이런 흔한 보안 관련 질문들은
강의에서 상세하게 다루어질 예정입니다
일반적인 보안 관련 질문들 외에도
강의에서는
보안 관련 고급 컨셉도 다룰 것입니다
JWT tokens 또는 OAUTH2 프로토콜, OpenID 프로토콜과 같은
고급 주제들을 다루며
Spring Security 프레임워크의 도움으로
웹 애플리케이션에 구현시킬 것입니다
강의 목차에 대해 이야기하자면
먼저 Spring Security가 무엇인지에 대해 나눌 것입니다
Spring Security를 배워야 하는 이유 그리고
Spring Security의 도움으로 간단한
웹 애플리케이션을 안전하게 만드는 법에 대해서 다룰 것입니다
웹 애플리케이션을 안전하게 만든 후
Spring Security 프레임워크 내에
중요한 인터페이스, 클래스
그리고 사용 가능한 annotation 등과 같이
Spring Security 프레임워크의 더 깊은 분석을 진행할 것 입니다
그리고 이러한 Spring Security 내부의 디테일에 대해 명확해진 후
Spring Security 프레임워크의 도움으로
웹 애플리케이션 내에
인증, 인가를 구성하는 법에
대해서 다룰 것입니다
Spring Security 프레임워크의 기초 컨셉 다음으로는
역할과 권한의 도움으로
웹 애플리케이션 내에
역할 기반 접근 매커니즘을 시행하는 법에 대해
이야기 나눌 것입니다
역할 기반 접근 법에 대해 명확해진 후
비밀번호 없는 보안은 상상을 할 수 없기에
비밀번호에 많은 집중을 할 것입니다
그래서 우리는 비밀번호를 보관하는 법
해시하는 방식, 비밀번호를 다룰 때마다
웹 애플리케이션에서 지켜야하는 기준
등과 같이 비밀번호에 대해서
많이 다룰 예정입니다
또한 API와 웹 서비스 확보와는 별개로
매소드 레벨 보안에 대해서도 이야기 나눌 것 입니다
Spring Security의 도움으로
우리는 우리의 메소드도 보호 할 수 있습니다
메소드가
repository layer, controller layer
또는 service layer에 있든 위치와 상관 없이
인증된 권한이 부여된 유저들만이 Java메소드를 불러낼 수 있도록
메소드를 지킬 수 있습니다
메소드 레벨 보안 다음으로는
CSRF 공격, CORS 보호와 같이
웹 애플리케이션에서 일어날 수 있는 가장 흔한
보안 공격에 대해서 다룰 것입니다
이 강의에서는 가장 흔하게 일어나는 보안 이슈에
대해 집중적으로 다뤄
직접 제작할 프로덕션 애플리케이션에서
잘 해결할 수 있도록
도와줄 것입니다
그리고 드디어 JWT tokens와 같이
고급 컨셉에 대해서도 다룰 것입니다
인증과 인가에서 그들이
가지고 있는 역할 등과 같이
JWT tokens에 대해서 명확하게 다룬 후
OAUTH2 프로토콜, OpenID 프로토콜
보안에 대해서 이야기 나눌 때
산업의 기준이 되는 이들을 사용하여 웹 애플리케이션을
안전하게 만드는 법에 대해서도 깊은 분석을 할 것 입니다
OAUTH2 와 OpenID에 대해서 대화를 나눈 후
Keycloak 인가 서버에 대해서도
다룰 것입니다
Keycloak의 도움으로
우리가 제작할 웹 애플리케이션에
OAUTH2 프로토콜 와 OpenID 프로토콜을 시행할 것입니다
또한 이러한 고급 주제들과는 별개로
'해싱(Hashing)은 뭐지?'
'토큰은 뭐지?'
등과 같이 여러 다른 보안 컨셉를 다룰 것입니다
이러한 중요한 보안 관련 주제들도 모두
다룰 것입니다
이것이 본 강의에서 진행할
고급 단계 강의 목차입니다
이론 논의 이외에
웹 애플리케이션을 직접 개발할 것이며
이 웹 애플리케이션에
프로젝트 주요 단계를 모두 포함시킬 것입니다
처음에는 간단한 백엔드 웹 애플리케이션을 제작할 것이고
Spring Security의 도움으로
기본적인 보안만 가능하게 할 것입니다
이후에는 엔드 유저가 본인 신용 정보를 기록하고
전한 API경로와 URL를
전부 보호하고 있는
잘 갖춰진 로그인 페이지를 갖게 될 것입니다
또한 웹 애플리케이션 내에서 CSRF와 CORS와 같은
보안 공격도 전부 대응할 것입니다
그리고 마일스톤 3에서는
역할과 권한의 도움으로 웹 애플리케이션 내에
인가를 강화시킬 것입니다
인가 이후에는
메소드 레벨 보안의 도움으로
보안의 횡단 관심사를 다룰
커스텀 필터도 직접 사용하여
웹 애플리케이션을 더 발전 시킬 것입니다
그리고 본 강의에서
우리가 달성하게 될 마지막 마일스톤는
우리가 직접 개발 예정인 웹 애플리케이션입니다
JWT tokens와 Keycloak 인가 서버의 도움으로
OAUTH 와 OpenID 프로토콜을 레버리지 할 것입니다
이렇게 하면서 보안을 단계별로 배우게 됩니다
그러면서 동시에
Spring Security 프레임워크에 대해서도 배우게 됩니다
또한 보안이 복잡한 주제이자
몇몇 학생들한테는 지루할 수도 있어
강의 중에 모든 세부 사항을 쉽게 이해할 수 있는
형식으로 준비했습니다
또한 이 내용을
PDF 형식으로 공유할테니
강의 중에 노트 필기는 걱정하지 않으셔도 됩니다
본 강의에서 다룰 예정인
이 모든 내용을 기반으로
보안은 매우 재밌을 것이고
우리는 함께 Spring Security 프레임워크를 마스터할 것입니다
그래서 꼭 강의를 이해하시길 바랍니다
이론 논의와 별개로 아까 말한것과 같이
Spring Security 프레임워크의 도움으로
안전한 웹 애플리케이션 또한 개발할 것입니다
본 강의에서 어떤 것을 개발하는지 이해할 수 있도록
짧게 보여주겠습니다
이것은 우리가 개발할 웹 애플리케이션입니다
은행 애플리케이션을 예로 들겠습니다
이 은행 애플리케이션은 아무런 자격 정보 없이
누구나 접속할 수 있는 공공 페이지이며
APA를 여러 개 가지고 있을 것입니다
하지만 인증이 된 인가 받은 유저들만 접속할 수 있는
보안 페이지도 여러 개 있을 것입니다
가령 로그인을 누르고
자격증명을 기입하려고 하면
대쉬보드로 연결됩니다
그리고 이 대쉬보드에서 엔드 유저는
아무 탭이나 눌러 계정 잔고 상태 확인
은행과 공유하는
대출 정보
은행과 맺은 카드 정보 등을 확인 할 수 있습니다
이것은 Angular 기반 UI어플리케이션이며
Spring Boot 프레임워크를 기반으로 개발한
조력하는 백엔드 애플리케이션입니다
또한 이 애플리케이션을 개발하며
보안에 관한 많은 대화를 나눌 것이고
Spring Security 프레임워크의 도움으로
애플리케이션의 정확한 안전성을 확실하게 할 것입니다
Angular가 익숙치 않다면 걱정하지 않으셔도 됩니다
Postman의 도움으로 개발할 예정인
백엔드 애플리케이션을 시험하는 법도 보여드릴 것입니다
모든 응용 강의에서와 마찬가지로
Postman의 도움으로
특정 확보된 API를
확인하는 것도 보여줄 것입니다
이걸 끝으로 본 강의 목차에 대한
명확한 이해도를 가졌다는 생각이 듭니다
본 강의에 망설이지 말고
수강하고 함께
Spring Security 프레임워크를 마스터 합시다
다음 강의에서 볼 수 있었으면 좋겠습니다
감사합니다 즐겁게 배워봅시다
수고하셨습니다