강의

멘토링

로드맵

BEST
Programming

/

Back-end

スプリングセキュリティ

初級から中級、高級に至るまで、Spring Securityの基本概念からAPIの使い方と内部アーキテクチャを学習することになり、これをもとに本番プロジェクトを完成させていくことで、Spring Securityの認証と認可に関する核心的な技術を身につけることになります。

  • leaven
Java
Spring Boot
Spring Security

学習した受講者のレビュー

こんなことが学べます

  • Spring Securityの基本APIと関連するFilter完全征服

  • Spring Securityの内部アーキテクチャとオブジェクト間の役割と関係の流れを理解する

  • Spring Securityの認証原理と内部動作方法の理解

  • スプリングセキュリティの認可原理と内部動作方式の理解

  • Spring SecurityとSpring MVCの連携方法を理解する

  • Spring Securityを活用した実務レベルのセキュリティシステム構築のノウハウ学習

Spring Securityの最も重要な技術を習得し、応用します。

1.コアスプリングセキュリティ講座の紹介

Spring Securityは、認証と権限制御機能を実装するために必要な強力なAPIを提供しています。
基本的に提供するAPIのみを使用しても、非常に少ないコストで安全なセキュリティシステムを実装できます。

本講座は、スプリングセキュリティの基本的な使い方を全く知らないユーザーから基礎的な知識や使用経験はありますが、より深い知識の習得とスプリングセキュリティの核心的な原理、内部構造、動作方式などを深く理解し、これを応用したい方のために製作されました。

本講座は、スプリングセキュリティの核心概念である認証と認可の二軸を中心に講義が行われます。

[認証]
Spring SecurityはForm、OAuth、JWT、LDAPなどのさまざまな認証方式をサポートしていますが、このコースではForm認証方式について説明します。
多くのWebサービスがForm認証方式に基づいてセキュリティを実装しており、基本的に必ず理解しておく必要がある認証方式だからです。

[認可]
Spring Securityは、Web層権限、サービス階層権限、ドメイン層権限(ACL)アクセス制御機能をサポートしています。
このコースでは、Web層権限とサービス層権限のアプローチについて説明します。
特に第5節の実戦プロジェクト認可編では、実務的レベルでの動的な権限制御が可能になるようにDBと連動する方法を学習することになります。
Web層だけでなく、ビジネス層の権限制御をDBに連動する技術を身につければ、実際の運用サービスでも活用度が非常に高いと予想されます。

本講座は次のように大きく4つのパートに分かれます。

  • Spring Security Basic APIの使い方とそれに関連するフィルタの理解
  • Spring Securityの内部アーキテクチャと動作方法を理解する
  • 実戦プロジェクトを通じたSpring Security認証プロセスの実施
  • 実践プロジェクトを通じたSpring Security認可プロセスの実装 - DB連携による権限制御システムの実装

2. 深い内部アーキテクチャと動作原理を掘り下げる

Spring Securityの基本APIを使用して認証と認可機能を実装できますが、システムの規模が大きくなり、セキュリティに関する要件が多くなると、基本的に提供するAPIだけでは実装したいセキュリティ機能を満たすことが難しくなります。

Spring Securityの機能を自由に拡張し、ニーズに合わせて多様で細かくカスタマイズできるようにするには、Spring Securityの内部アーキテクチャを深く理解し、認証と認可処理がどのように行われているの全体的な動作原理とそれに伴う流れを必ず理解しなければなりません。

また、Spring MVCと連携してセキュリティシステムを構築する場合、予期せず発生する様々なセキュリティエラーに対する正確な原因とその解決策を知るためにも必須です。

本講座を学習すれば、これらの知識を習得し、実務に活用できるようになります。

3. DB連動権限制御システムの実装

Spring Securityが提供する認可方法は2つに分けられます。

1つ目はクライアントからの要求に対して設定ファイルに直接権限情報を明示する宣言的な方法で、2つ目は外部リポジトリと連動してマップベースで権限情報を管理する動的な方法に分けることができます。

1つ目の方法はシステムの規模が大きくなるほど権限の種類と構成が複雑になりますが、このとき設定ファイルで日々認可ポリシーを管理することは非常に非効率的であり、メンテナンスレベルでも高価になります。

Spring Securityは、これらの部分を補完するために、設定ファイルに直接許可ポリシーを管理することなく、メモリやDBなどの外部ストレージに許可ポリシーを管理できるようにサポートしています。

このコースでは設定ファイルに記載されている宣言的方法とDBとの連携による動的な方法の両方について説明します。

これにより、サービス運用時にもサーバー起動なしにリアルタイムの動的権限制御システムを実装できる方法を学習します。

4. 実戦プロジェクトの完成

このコースの最初のセクションと2番目のセクションを学んだ後、それに基づいて3番目のセクションから6番目のセクションまでは、実戦プロジェクトを直接完成していきながら、Spring Securityの機能を理解する方法で進めます。

[ユーザー]
ダッシュボード、ユーザー、マネージャー、環境設定などの画面で構成されており、各メニューで認証ポリシーと承認ポリシーを設定してテストします。
会員登録およびログインページを通じて認証の準備と処理が行われます。

[管理者]
ユーザー管理、権限管理、リソース管理などの画面を提供し、管理者権限を持つユーザーのみがアクセスできます。
リアルタイムで各機能のCRUD処理を介して権限とリソースの動的管理を可能にする
DB連携でユーザーの権限を設定することで、ユーザー画面で即座に結果を確認できるようになります。

本番プロジェクトでは、Spring Boot、Spring MVC、Spring JPAなどの技術を連携して進めます。
この講座を聴く前に事前に学習することをお勧めし、講座を受講しながらスプリング連携技術を並行して学習してください。
重要なのは、Spring Securityの重要な機能を理解することであるため、上記の連携技術は次第に理解してもあまり問題ではありません。

5. 知識共有者紹介

浄水源(leaven)

  • 現職のJava開発者
  • SI/SM/ソリューション/Mobile/Front&Back-end のさまざまなプロジェクト体験
  • Architect/PM/PL として役割を果たす
  • Github

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Spring Securityの基本概念を確実に理解したい方

  • Spring Securityの基本機能を超えて自由に機能を拡張し、カストマイジングしたい方

  • Spring Securityを活用して実務レベルの認証および権限制御システムを実装したい人

  • Spring Security入門者から中高級者まで活用できる内容で構成

前提知識、
必要でしょうか?

  • Java

  • Spring Boot

  • Spring MVC

  • Spring JPA

こんにちは
です。

9,905

受講生

328

受講レビュー

1,210

回答

4.9

講座評価

5

講座

다양한 프로젝트에서 웹/모바일/솔루션 제품 개발과 관련된 업무를 진행해 오고 있으며 분석/설계/개발 Role 을 맡아 오고 있습니다.

공공기간, 교육프로그램, 기업 프로젝트, 쇼핑몰 등의 웹 개발 및 솔루션 프로그램, 프레임워크, 오픈소스 연동 등의 아키텍처 설계 및 구조적 고도화 개선 등을 해 오고 있으며 개발, PL 등의 역할을 맡았습니다.

다양한 Open Source 와 여러 기술적인 경험들을 통해 웹의 전반적인 기술 흐름들을 익혔으며 개발 경험이 거듭될 수록 요구사항의 기능 구현에만 거치지 않고 좀 더 OOP 적인 구조의 소프트웨어로서 안전성과 성능을 고려한 아키텍처링과 튜닝의 기술들을 접목시켜 지속적으로 더 훌륭한 소프트웨어를 완성하기 위한 연구와 개발 실무를 책임감 있게 맡아 오고 있습니다.

 

カリキュラム

全体

64件 ∙ (20時間 58分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

229件

4.7

229件の受講レビュー

  • 공룡님의 프로필 이미지
    공룡

    受講レビュー 4

    平均評価 5.0

    5

    59% 受講後に作成

    컴공 4학년 학생입니다. 스프링 시큐리티의 경우 구글에 검색해도 많은 자료가 나오고 spring.io에서 공식 reference를 참조하는 것도 좋은 방법입니다. 다만 시큐리티의 경우 흩어져 있는 정보를 재조합하는 과정이 매우 어렵습니다. 당장 아무것도 모른채로 구글에 검색을 해도 SecurityConfig를 '어떻게' 설정하는 지만 알려주고 그것을 '왜' 쓰는지는 자세히 안나와있기때문에 개인 프로젝트에 적용하면 정말 수많은 에러가 발생합니다. 제 주관적인 생각이지만, 시큐리티에 대해 아무것도 모르는 상황이라면 이 강의를 믿고 구매하는 것이 직접 검색해서 찾는 시간의 비용보다 훨씬 싼 것이라고 확신합니다. 만약 강의를 들으신다면 1~2과는 처음에 건너띄고 바로 실습으로 가는 것이 좋아보입니다. 실습을 진행하다가 왜 그런지 막히는 부분이 있으면 그때마다 해당 1~2장의 자세한 API 설명을 보면 이해도 더 잘되고 체화되는 속도도 빠르거든요. 예를 들어서 Authentication Flow를 이론만으로 들었을 때는 상당히 난해했으나 실습 3장에서 직접 제 프로젝트에 적용시키고 다시 들어보니 flow 차트가 한번에 눈에 들어왔습니다. PPT도 각 단계별로 눈에 잘 띄게 정리를 잘 해놓으셔서 평생 가지고 가도 될정도의 자료입니다. 저처럼 과거에 프로젝트에서 단순히 패스워드 값을 DB로 암호화없이 다이렉트로 보낸다거나.. 회원가입하는 모든 회원이 다른 사람이 쓴 게시글을 지울수 있다거나.. 이렇게 단순히 프로젝트를 땜빵용으로 제작해오신 분들에게 무조건 강추합니다.

    • 정수원
      知識共有者

      정성어린 소중한 평을 남겨 주셔서 너무나 감사드립니다. 저 역시도 처음 스프링 시큐리티를 접했을 때를 기억해보면 지금 보다 더 참고할 만한 자료가 많지 않았던 때여서 스프링 시큐리티를 사용해서 보안 환경을 구축하는 것이 정말 힘들었습니다. 지금은 예전보다 훨씬 많은 자료들이 넘쳐나지만 진작 실무적으로 활용할만한 소스나 내용들을 찾아서 유의미한 형태의 기능으로 발전시키기가 쉽지 않는 것 또한 사실입니다. 말씀하신 것처럼 순서대로 강의를 들으시는 것도 좋지만 본인의 수준과 이해도에 맞게 강의를 들으시는 것도 좋은 방법이라 생각합니다. Faust 님의 열정과 의지라면 본 강의를 뛰어넘어 훨씬 더 많은 지식을 습득하실 수 있을 거라는 확신이 듭니다. 본 강의는 적지 않은 시간으로 제작되어 있으니 힘드시겠지만 끝까지 완주하셔서 본 강의가 목적하는 바를 다 이루어 가시길 바라겠습니다. 다시 한번 소중한 평가를 남겨 주셔서 진심으로 감사드립니다.

  • 소라연님의 프로필 이미지
    소라연

    受講レビュー 81

    平均評価 5.0

    5

    97% 受講後に作成

    강의에 빠져서 몇주째 헤어나오지 못하고 있습니다. 제공해주시는 자료도 엄청나고 질문답변 게시판에 답변주시는 내용만 봐도 지식공유자님의 내공이 느껴집니다. 완강 후 빠르게 한번 더 들어야 할 것 같습니다. 보석같은 강의를 발견하게 되어 기쁘네요. 다음 강의도 기대 하겠습니다. 좋은 강의 만들어 주셔서 감사합니다. ^___^

    • 정수원
      知識共有者

      부족한 강의인데도 과찬을 해 주시니 더욱 어깨가 무거워집니다 소중한 평가 감사드립니다. 짧은 시간에 많은양의 강의를 들으신 걸 보니 배움과 학습의 열정이 대단하신 것 같습니다. 그만큼 더 큰 보상이 주어질 거라 믿어 의심치 않습니다. 끝까지 화이팅입니다.^^

  • 로시츠키님의 프로필 이미지
    로시츠키

    受講レビュー 1

    平均評価 5.0

    5

    75% 受講後に作成

    아직 api와 아키텍쳐 부분밖에 보지못했지만 너무 좋은 강좌입니다 jsp,스프링을 공부하면서 보안이나 권한을 좀더 자세히 다루고 싶어서 인터넷을 뒤져봐도 제가 워낙 초보수준인지라 ㅋㅋ 가장 좋은점은 강의가 너무 친절합니다 제공해주시는 자료에서도 정성이 느껴지고 저같은 초보도 이해할수 있을 정도로 계속해서 개념을 반복 설명해주십니다 처음에는 개념이 많아서 너무 어렵고 디버깅해주시는것도 이해가 안갔는데 필기 열심히 하고 따라 하기만 해도 이제 전체적인 흐름이 보이기 시작합니다 좋은 강의 만들어주셔서 감사합니다

    • 정수원
      知識共有者

      부족한 강의인데도 도움이 되셨다니 정말 감사드립니다^^ 강의를 들으시면서 궁금하신 점 있으시면 언제든 질문해 주시면 최대한 해결책을 드릴 수 있도록 노력하겠습니다. 강의가 조금 길어서 완주하시기가 쉽지 않으시겠지만 끝까지 들으시면 노력한 만큼의 보상이 뒤따를 것이라 생각합니다. 좋은 평가 해 주셔서 다시 한번 감사드립니다.

  • naelina님의 프로필 이미지
    naelina

    受講レビュー 1

    平均評価 5.0

    5

    91% 受講後に作成

    국내외 모두 통틀어 정말 진심으로 보기 드문 스프링 시큐리티 강좌라 감히 말할 수 있습니다. 정수원 강사님의 강의 3개를 모두 듣고 있는데 각 강좌마다 강의내용, 자료 준비, 디버깅을 통한 내부구조 파헤치기, 전체 아키텍처 분석 등 정수원 강사님만의 강의 패턴 방식에 절로 감탄이 나옵니다. 와 시큐리티를 이렇게 파헤치다니요... 아마 시큐리티를 개발한 개발자분들도 이 강의를 보면 감탄할 거 같습니다. 아시겠지만 스프링 시큐리티는 러닝 커브가 커서 중급 개발자들도 내부 구조와 흐름들을 깊이 이해하는 것이 쉽지 않는데 이 강의는 입문자부터 중급 이상의 개발자들에게도 충분한 기술적 기반지식을 전달하고 있습니다. 적절한 이론과 적절한 실습을 잘 배합하여 어려운 시큐리티가 마법에 홀린 것 처럼 어렵게 느껴지지 않도록 아주 상세하고 쉽게 설명하고 있습니다. 특히 잘 준비된 PPT자료의 도식과 다이어그램을 통해 스프링 시큐리티의 구조와 흐름을 자세히 설명하고 이를 코드로서 디버깅하며 증명하는 부분은 이 강의의 압권이며 강사님의 노하우인것 같습니다. 저도 이런 진행방식을 눈여겨 보면서 하나씩 배우고 있습니다. 이 강의를 듣기 전에는 시큐리티를 따라하는 방법을 아는 수준이었지만 이 강의를 듣고 난 이후는 API, 필터 구조, 인증/인가 내부 흐름, 동적 인가 제어 방법 등 시큐리티의 기본기능 뿐 아니라 상황에 따라 자유롭게 기능을 확장하고 커스트마이징 할 수 있는 활용능력을 갖출 수 있게 되었다는데 실로 엄청난 수준의 강의라고 평가하고 싶습니다. 인퍼런에 있는 강좌들 중에서도 손에 꼽아도 될 정도의 퀄리티와 정보를 제공해 주고 있다고 생각합니다. 사실 시큐리티 강의는 강의하고 싶다고 아무나 강의할 수 있는 기술이 아니기 때문에 이 강의가 더욱 가치가 있는 것 같습니다. 만약 저 혼자서 이 정도의 지식을 독학으로 섭렵할려고 했다면 얼마나 힘들고 어려웠을지 다 듣고 나니 더욱 깨닫게 됩니다. 구글에서 시큐리티를 검색하면 강사님의 강의 내용이 많이 검색되는 것을 보면 진입장벽이 높았던 시큐리티 지식을 많은 개발자들에게 전파하게 되어 진입장벽을 낮추는 역할을 해 주셔서 정말 감사드립니다. 강의 중에 설명내용과 제공해주는 깃헙 소스와 부분적으로 동기화 되지 못한 애로사항이 있었으나 다행히 강사님께서 강의와 매핑되는 소스의 브랜치명을 엑셀로 잘 정리해 주셔서 따라가는데 한결 수월했으며 강의내용과 실제 실습이 차이나는 일부분이 있었으나 전반적인 내용을 이해하는데는 별 어려움이 없었습니다. 그래도 이러한 작은 부분도 다음 강의때는 더 꼼꼼하게 살펴 주셨으면 좋겠습니다. 이제 정수원 강사님의 다음 강의가 기다려 지고 기대됩니다 선배님 같은 개발자분들의 지식 공유를 통해 우리 후배 개발자들은 최소한의 시행착오를 겪게 됩니다. 앞으로도 강사님의 지식공유 활동을 진심으로 응원하겠습니다. 감사합니다.

    • 정수원
      知識共有者

      너무 좋은 평가 해 주셔서 감사드립니다 수강생분들 입장에서 많이 고민하고 연구해서 나온 강의지만 여러가지로 부족한 부분이 많습니다 항상 겸허한 맘으로 준비하고 소통하며 함께 성장하는 강의가 되도록 노력하겠습니다 naelina 님의 성장을 저도 응원합니다 감사드립니다

  • 이한솔님의 프로필 이미지
    이한솔

    受講レビュー 14

    平均評価 4.7

    4

    100% 受講後に作成

    ppt도 분량이 엄청나고 강의량도 엄청납니다. API를 하나하나 메서드단위로 뜯어서 설명해주시는데, 단순히 사용법을 익히는게아니라 스프링 시큐리티가 무엇이고 어떻게 돌아가고 왜 이렇게하는지까지 파악하는데 많은 도움이 된 강의입니다. Git에가서 소스를 받아볼수도 있습니다. 아쉬운점은 강의 스텝별로 코드작성을 따라하고싶어도, git은 완성본만있고 강의에서는 해당 강의에서 구현하는 기능들을 다 상세히보여주거나 하는게 아니고 Git도 강의내용과 다르게 좀 더 리팩토링 및 최신화 되있는 코드들이 꽤 있어서 헷갈리거나 알아서 적당히 맞춰야 하는게 생각보다 피곤합니다. 그런부분들을 제외하면 만족하고 2회차로 한 번 더 강의 들으며 숙련도를 높힐 예정입니다.

    • 정수원
      知識共有者

      네 감사합니다. 강의시간이나 자료들을 제작하고 구성할 때 처음 계획했던 것보다 거의 두배로 늘어났습니다. 양이 많다고 무조건 좋은 건 아니겠지만 이 강의를 통해서 전달하고자 한 내용들을 담고자 노력하다 보니 강의시간이나 구성내용들이 계속 추가되었습니다. 단순히 API 사용법을 익히는 것을 뛰어넘어 원리를 이해하고 응용력을 키울 수 있는 방법들을 제시하고자 했습니다. 되도록 학습자들이 강의를 보면서 실제 코딩을 따라 하면서 학습하도록 진행하였는데 각 단원마다 소스를 구분해서 제공하지 못한 점이 저도 아쉽네요 다음 강의를 제작하게 되면 꼭 참고해서 반영하도록 하겠습니다. 긴 시간동안 힘든 과정을 완주하시느라 수고 많으셨고 아무쪼록 이 강의가 조금이나마 이한솔 님의 현장과 실무에 도움이 될 수 있기를 저도 응원하도록 하겠습니다. 도움되는 평 남겨주셔서 정말 감사합니다

公開していない講座のため、受講が制限されます。
非公開講座

leavenの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!