Spring Security 入門:Spring Boot アプリケーションにフォーム認証と権限管理を実装しよう

Spring Boot アプリケーションに Spring Security を導入し認証・認可を実装します。認証はユーザーIDとパスワードを使ったフォーム認証を作ります。認可はユーザーのロールによってアクセスを制限する権限管理を作ります。

4.15 (144 reviews)
Udemy
platform
日本語
language
Other
category
Spring Security 入門:Spring Boot アプリケーションにフォーム認証と権限管理を実装しよう
1,321
students
3.5 hours
content
Feb 2024
last update
$19.99
regular price

What you will learn

Spring Security でフォーム認証を実装します

Spring Security で認可処理を実装します

安全なセッション管理の手法について学びます

パスワードの安全な保存方法について学びます(ハッシュ・ソルト・ストレッチング)

Description

※※※※※

【ご注意】

この講座は Spring Security 5.5 を中心に解説しています。

講座中のほとんどのレクチャーは 5.7 で非推奨になった WebSecurityConfigurerAdapter を使用しているコードとなっています。


セクション『補足:Spring アップデート対応』にて 5.7 への移行を解説していますが、はじめから 5.7 の記法で進めたい方はほかの講座をあたっていただけますと幸いです。

※※※※※




公式ドキュメントや書籍で Spring Security を勉強して挫折した経験はありませんか?


この講座は、Spring Security を使って Spring アプリケーションにセキュリティ関連の機能を実装していく講座です。
メインテーマは、『フォーム認証』と『ロールによる権限管理』です。

※ OAuth や LDAP などの認証は扱っていません。


受講前の姿

次のどれかにあてはまる方は、この講座を受講すると知識と実装力を身につけることができます:

  • 書籍などで勉強してみたが、実際のWebアプリケーションにログイン機能や権限管理機能を実装する方法がいまいちイメージできない

  • Web上のサンプルコードにはパスワードをデータベースに保存するものがなく、実装方法が分からず困っている

  • データベースにユーザーが入力したログインパスワードをそのまま保存している


受講後の姿

  • ログイン・ログアウト機能を実装できる

  • Cookie・セッションを理解している

  • ログインに必要なパスワードをデータベースに保存できる

  • パスワードの安全な保管方法を理解している(ハッシュ・ソルト・ストレッチング)

  • ロールによる権限管理を実装できる(管理者ユーザーのみユーザーを閲覧/作成できる)

Content

紹介

実装するアプリケーション
IntelliJ をインストールしよう
プロジェクトのソースコードをダウンロードしよう
IntelliJ にプロジェクトをインポートしよう

認証機能を実装しよう

ログインページを表示しよう
ログインページを表示しよう
ログインフォームを表示しよう
ログイン処理を実装しよう(ログイン成功)
ログイン処理を実装しよう(ログイン失敗)
ログアウト処理を実装しよう

ログイン/ログアウトの仕組みと攻撃手法を理解しよう

セッションとは?
Cookieの挙動をデバッグしてみよう
セッションの要件①:セッション ID を推測が困難なものにする
セッションの要件②:セッション ID を URL パラメータに格納しない
セッションの要件③: ログイン成功後に新しくセッションIDを発行する

ユーザー情報をデータベースで管理しよう

UserDetails と UserDetailsService の役割を理解しよう
UserDetailsService を実装しよう
UserDetails を実装しよう
ユーザーを管理するテーブルを作成しよう
ユーザーの初期データを登録しよう
ユーザー情報をデータベースから取得しよう

ユーザー一覧 / ユーザー登録を作ろう

ユーザー一覧:画面を作ろう
ユーザー一覧:画面にデータベースから取得した情報を表示しよう
ユーザー作成:作成画面を表示するためのハンドラーメソッドを実装しよう
ユーザー作成:作成画面に入力フォームを表示しよう
ユーザー作成:ハンドラーメソッドを実装しよう
ユーザー作成:画面で入力された値をサーバー側に渡そう
ユーザー作成:ハンドラーメソッドにバリデーションの処理を追加しよう
ユーザー作成:バリデーションエラーのメッセージを画面に表示しよう
ユーザー作成:ユーザー情報をデータベースに保存しよう
ユーザー作成:ユーザー名の重複チェックをする Validator を作ろう
ユーザー作成:ユーザー名の重複チェックをしよう

パスワードを安全に管理しよう

理論編:弱いパスワードが設定できないようにしよう
理論編:パスワードを安全に保存しよう
パスワードの長さを確かめるバリデーションを実装しよう
パスワードをエンコードしてデータベースに保存しよう
エンコードしたパスワードを初期データとして投入しよう
エンコードしたパスワードを使ってログインできるようにしよう

認可:ユーザーの権限に応じて可能な操作を制限しよう

理論編:認可の概要と実現方法を理解しよう
権限を保存するカラムを users テーブルに追加しよう
データベースから権限情報を取得しよう
認可①:権限によって画面の表示内容を変えよう
認可②:権限によってメソッド呼び出しを制御しよう
認可③:権限によってWebリソースへの呼び出しを制限しよう

ユーザー管理機能を拡充しよう

ユーザー登録画面で権限を選択できるようにしよう
画面で選択した権限をサーバーで受け取るようにしよう
ユーザー登録で権限の設定をデータベースに保存しよう
ユーザー一覧に権限を表示しよう
権限が入力されているかバリデーションしよう

Reviews

はおり
April 22, 2023
セクション2 認証機能を実装しようの7にてエラー発生。 このソースに合わせて、末尾を5に修正すると動きました。 implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'の末尾のの【5】が最新では【6】になっているため。
K
February 15, 2023
SpringSecurityで出来ることやその実現方法を、とてもわかりやすく学ぶことができるコースでした。 欲を言えば、使用するIDEがEclipseの方が個人的には嬉しかったのと、何かしらのアプリを作り切れるところまであるとより最高でした! 学ばせていただきありがとうございました。
Kate
July 18, 2022
1レクチャーが短く、細やかな説明でとても楽しく学習できた。 一方で、講師のペースでガシガシとコードを打っていく感じも受けたので もう少し受講者の不安(分かるかどうかという不安があるはず)を取り除く、間合いとか声がけとかあると優しい先生になれるんじゃないかな?
H.
May 18, 2022
書籍での独学では分かりにくい実践的なSpring Securityの知識を身に付けることができました。ただ、最低限のJavaとSpringの知識がないと(全くの初学者だと)、難しいと感じる箇所は多々あると感じました。初学者が受講する際は、別の教材か書籍で入門レベルをクリアされてから受講することをお勧めします。
Oba9tarou
December 19, 2021
この講師の方の講義は、SpringSecurityのみならず実践的なコーディング方法も教えていただけるので全ての講義を購入しています。 SpringSecurityは書籍を読んでもなかなか理解出来なかったのですが、講義を終了した後は何となくですが理解できたのでもう1回講義を反復後、投げだした書籍にチャレンジします。 UdemyではSpringに関する講義は外国の方の講師が良いと評判が多いですが、日本語で実践的な方法を教えて頂けるのは大変助かります。 今後も頑張ってください。

Charts

Price

Spring Security 入門:Spring Boot アプリケーションにフォーム認証と権限管理を実装しよう - Price chart

Rating

Spring Security 入門:Spring Boot アプリケーションにフォーム認証と権限管理を実装しよう - Ratings chart

Enrollment distribution

Spring Security 入門:Spring Boot アプリケーションにフォーム認証と権限管理を実装しよう - Distribution chart
4387602
udemy ID
11/8/2021
course created date
12/12/2021
course indexed date
Bot
course submited by