강의

멘토링

커뮤니티

BEST
Programming

/

Back-end

Spring Security OAuth2

Spring Security OAuth2の基本概念から、APIの使い方と内部アーキテクチャを学びます。また、OAuth2 Client、OAuth2 Resource Server、Authorization Serverを統合して連携する方法を見て、独自の認可サーバーを構築し、これによりOAuth2サービスを実装する方法を学習します。

  • leaven
스프링
스프링시큐리티
스프링부트
자바
oauth
Java
Spring
Spring Boot
OAuth

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

受講後に得られること

  • Spring Securityのコアコンセプトを理解する

  • OAuth 2.0 Authorizatioin Frameworkの基本

  • Java Cryptography Architectureの基礎

  • JWT基本/活用

  • Spring Security OAuth 2.0 Client理論/実践/活用

  • Spring Security OAuth 2.0 Resource Serverの理論/実践/活用

  • Spring Security OAuth 2.0 Authorization Server理論/実践/活用

強力な認証/認可処理のための最善の選択!
きちんと学ぶSpring Security OAuth2 🔐

Spring Security OAuth2?

Spring Security OAuth2は、OAuth 2.0 Authorization Framework標準技術仕様を採用し、OAuth2 Client、Resource Server、Authorization Serverのファミリーに分類してAPIを提供しています。

伝統的なセッションベースの認証方式の強力な代替

過去から現在に至るまで、レガシーシステムの伝統的な認証および認可方式でセッション/クッキーを活用した技術を多く使用しています。しかし、システムの規模が大きくなり、モバイル、タブレット、PC、IOTなど多様な機器の認証処理を行う上で、セッション共有の問題やサーバーリソースの負担、セキュリティの安全性、複雑なアーキテクチャ構成など、従来のセッション方式の認証構成が複数の問題と限界を持っていると認識されています。

特にモノリシックではなくMSA方式のインフラがますます傾向になっている現時点では、さらにセッションベースの認証方式が効率的な代替にならないことも事実です。

このため、上記の限界点と問題を解決するための方法で、セッションではなくトークン方式で認証/認可処理をする必要性が台頭し、OAuth、JWTなどの認証処理技術が誕生しました。これにより、グローバル企業であるグーグル、フェイスブック、フェッヘットでサービスするOAuthサービスを活用し、より簡潔で強力な認証/認可処理ができるようになりました。

本講義は、Spring Security OAuth2の知識に初めて接する入門者から基礎的な知識や使用経験はありますが、より深い知識の習得とSpring Security OAuth2の核心原理、内部構造、動作方式などを深く理解し、これを応用したい中~高級者の方々のために製作されました。


Spring Security OAuth
コア理解講義は

🔑

単純なAPIの使用法と文法だけを学習しません。認定技術の原理と構造に基づいて、コア技術の理解を高めます。

🎓

Spring Security OAuth2がどのような構造で動作するのか正確な流れを理解し、原理を把握します。

🧰

Spring Security OAuth2が提供する基本機能を拡張して、カスタマイズする能力を向上させることができます。

Spring Security OAuth2の技術をどのように実践的に活用できるかについての感覚を身につけます。

主な学習内容

💡このレッスンは、OAuth 2.0標準技術とそれに基づいたSpring Security OAuth2の重要な概念であるOAuth2 Client、Resource Server、Authorization Serverの3つの軸を中心に授業を行います。

1) OAuth 2.0 Authorization Framework

RFC標準技術であるOAuth 2.0認可フレームワークの全体的な概念と原理、構造などの内容を調べます。

Spring Security OAuth2の本格的な技術を学ぶ前に、OAuth 2.0の標準技術の基礎と基本的な理論をまず理解し、実習を通じて正確な概念を熟知することで、Spring Security OAuth2の内容を困難なく追いつくことができるようにします。

2) OAuth2 Client

OAuth 2.0のクライアントモジュールとして、クライアントが認可サーバーと連携できるさまざまなタイプの承認タイプと要求APIを紹介し、認可サーバーから発行されたトークンを使用してリソースサーバーへのアクセス制御をどのように実装するかについて学びます。

また、Google、Facebook、FagHet、Naver、Cacaoなど、OAuth 2.0 Authorization Serverサービスプロバイダとの連携を通じてソーシャルログイン機能を実装する方法を紹介します。認証プロトコルであるOpenID Connectを紹介し、認証処理のためのさまざまなオプション設定方法とフローを理解します。

3) OAuth2 Resource Server

ユーザーのリソースを保護しているサーバーとして、APIサーバーの役割を果たします。リソースサーバーがリソースを保護する方法を調べて、Access Tokenを含む要求に対してトークンを検証する方法と、権限スキームを制御する流れについて学びます。

OAuth2サービスプロバイダによって発行されたAccess TokenがJWT形式で生成されたトークンである場合は、Scope(範囲)を抽出する内容を調べ、リソースサーバーでAccess Tokenに含まれているScopeを分析して権限がどのように決定されるかを学習します。

4) OAuth2 Authorization Server

市場には、オープンソースを含むさまざまなAuthorization Serverの商用製品とサービスがあります。 Spring Security Development チームは Authorization Server フレームワーク プロジェクトを中断しましたが、多数の開発者の撤退が要求されたため、Authorization Server プロジェクトはまったく新しい設計に戻りました。

このレッスンでは、新しいアーキテクチャで再誕生したAuthorization Serverプロジェクトに基づいてレッスンを作成しました。 OAuth2 ClientとResource Serverとの連携を通じた認可サーバとしての機能の詳細を見て、自ら認可サーバを構築してサービスできる知識を持たせることに重点を置きました。

Authorization Server機能を処理する主なクラスを学び、カスタマイズする方法を学びます。また、OAuth 2.0標準エンドポイントの仕様を調べて、各エンドポイントに設定されたフィルタの構造と処理プロセスを学習します。

アーキテクチャ/フロー/原理を理解することができます。

Spring Frameworkのプロジェクトの中で、Spring Securityは、技術アーキテクチャ、動作原理、フロー理解などの内部ソースレベルの実装に関する全体的な理解が非常に重要です。

与えられたAPIを中心に使用しても予期しないエラーや問題に遭遇したら、Googleで検索して解決策を見つけます。しかし、Spring Security OAuth2に関する資料が多くなく、ほとんど同様のケースが繰り返されるレベルであるため、Spring Security OAuth2の内部構造と動作原理を正確に理解できない場合や分析できない場合は、サービス運営に多くの困難を経験します。

そのため、今回の講義は、さまざまな図式やフローとデバッグを通じた正確で詳細な説明を通じて、単純なAPIの使い方や機能例を越えて、Spring Security OAuth2の構造と流れを完全に分析し理解することで、どんな状況でも柔軟な対処が可能な知識を備えることに重点を置いています。これは、本講師が開設した講義のパターンと共通の特徴といえる。


講義の構成と詳細なカリキュラム

Part 1. Spring Bootベースで開発するSpring Security

Spring Securityの重要な概念である認証と認可の2つの軸を中心に講義が行われます。春のセキュリティの基礎と基本は非常に重要なので、Part。 1では、Spring Securityを構成する重要な構造と認証、および認証に関連する主な項目の正確な概念を理解し、例と実践を通じて実践的な開発に役立つように構成しました。

Part. 1 を受講すると、Spring Security の全体的な Fundamentals を確実に確立するとともに、さらにセキュリティシステム構築時のセキュリティ基本構造を拡張し、応用可能なレベルの能力を養うことになります。

Part 2. Spring Boot ベースで開発する Spring Security OAuth2

OAuth2の基本的な概念と流れの正確な理解とSpring Security OAuth2のコアモジュールであるOAuth2 Client、Resource Server、Authorization Serverの技術について学びます。 Part. 2をスムーズに学習するためにPart。 1の基本内容の理解が必須であるため、必ず事前に知識を習得してから受講する必要があります。

Part. 2では、OAuth2に関するさまざまな技術が複合的に構成されているため、膨大なOAuth2関連の概念を十分に理解し、これに基づいてクライアントアプリ、リソースサーバー、認可サーバー相互の連携過程を詳細かつ深く分析し、検討します。

Spring Security Fundamentals

Spring Securityの重要な基礎を見てください。初期化プロセスの詳細と原理を学び、HttpBasic、Corsなどの要素を扱います。

OAuth 2.0 Authorization Framework

OAuth 2.0 標準技術の詳細仕様について学習します。 OAuth 2.0で表現されているさまざまな用語をまず理解し、権限付与フローのタイプに関する概念整理とkeycloakオープンソースを活用して認可フレームワークの全体的な流れを理解します。

OAuth 2.0 Client - oauth2Login()

クライアントアプリの機能を自動化し、権限付与フローのタイプであるAuthorization Code方式で認可サーバーとの連動方法を学習し、ユーザー承認と承認からAccess Tokenを受け取り、認証/認可処理に至るまでの全過程を調べ、内部構造について学習することになります。

OAuth 2.0 Client - oauth2Client()

oauth2Login() API が提供する権限付与フローのタイプである Authorization Code の他に、Resource Owner Password と Client Credentials タイプで認可サーバーと連動する方法を見て、 DefaultOAuth2AuthorizedClientManager、@RegisteredOAuth2AuthorizedClient の使い方を知ります。

OAuth 2.0 Client - OAuth 2.0 Social Login

OAuth2サービスプロバイダーとして、Google、Facebook、FagHet、Naver、Cacaoなどがありますが、デュアルGoogle、Naver、KeyClockを使用してログイン認証する方法と認証後の後続処理の実装方法を見てください。

OAuth 2.0 Resource Server API - jwt()

リソースサーバーの構成方法とAccess Token要求を処理するJwtDecoderの機能を調べて、トークン検証の成功後に生成される認証関連オブジェクトの構造と使用方法を学習します。また、Access Tokenの検証に使用されるMAC&RSAアルゴリズムの仕組みとは何ですか?どの処理手順によって検証が行われるのかを調べます。

OAuth 2.0 Resource Server - リソースサーバー権限の実装

Access Token 要求を処理するフィルタと、JwtDecoder によって抽出された Scope を権限に変換し、変換された権限でリソースのアクセス可否を制御する方法について学習します。

OAuth 2.0 Resource Server - opaque()

リモートトークンチェックプロセスとして、アクセストークンを有効にするかどうかを認可サーバーと直接通信する方法を学びます。

Spring Authorization Server - 主要ドメインクラス

認可サーバーを構成する主要ドメインクラスの種類と概念、役割などを学習し、これらのクラスがSpring MVCでどのように参照および利用できるかを学習します。

Spring Authorization Server - エンドポイントプロトコル

認可サーバーの重要な機能であるさまざまなタイプのエンドポイントプロトコルについて学びます。承認要求を開始したエンドポイントからユーザー情報を要求するエンドポイントまでの全体のプロセスを図式とフローで詳しく見ていきます。

OAuth 2.0 Client + Resource Server + Authorization Serverの連携

Spring Securityが提供する各OAuth2のモジュールを連携および連携する方法を学び、それを使用してOAuth2サービスプロバイダとして機能する具体的な項目を例に示します。


この講義を作った
知識共有者を紹介します。

浄水源(leaven)

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

一緒に見れば良い講義

こんな方に
おすすめです

学習対象は
誰でしょう?

  • OAuth 2.0の基礎と概念を確実に理解したい方

  • Spring Security OAuth2に関連する全体的な基礎と原則を正確に理解したい人

  • Spring Security OAuth 2.0を活用して認証/認可機能を実装したい人

  • OAuth 2.0 の認可サーバーを構築してサービスしたい方

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

  • Spring Security Basic(必須)、Spring Boot& MVC、DB

  • Lombok

  • MySQL

こんにちは
です。

10,099

受講生

353

受講レビュー

1,212

回答

4.9

講座評価

5

講座

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

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

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

 

カリキュラム

全体

109件 ∙ (44時間 31分)

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

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

受講レビュー

全体

75件

4.9

75件の受講レビュー

  • progammer님의 프로필 이미지
    progammer

    受講レビュー 8

    平均評価 5.0

    5

    100% 受講後に作成

    こんにちは。セキュリティとOAUTH2講義はよく聞きました。 講師様が講義をたくさん用意されたことが感じられ、情熱も感じられます。 それでもとても知識的に深い方ということもあります。 でも教授法はちょっと補完していただければいいと思います。 1. 説明が少し急に進む感じがあります。これはサバサギンなのにじっくり講義を導いてくださるのがサバサを減らす方法のようだと思われます。たまには発音のせいでどんな言葉なのか、最後には知らずに渡ったこともあります。 2. 講義は、受講生が主導的に学習しにくい構造です。基本的に従うしかありません。そのような状況で講義者と受講生が正しく同期できなくなり、講義者が受講生とコンテキストが違うようになると受講生はとてもストレスを受けます。コミュニティにもそんな部分で不満を表わすちょっと感情的な文がたまに見えたんですよ。心情は少し理解していきます。講義購入者はほとんどかなり多くの期待をして講義の受講を始めることになるからです。 講義者の立場であまりにも当たり前のことが(年次が高く知識を多く知るほどこういう傾向が強くなります)、受講生の立場では全くそうでない時が王王あります。 3. 例えば、許可要求をポストマンで練習してからスプリングに進むの自体は良かったです。まあ。おっしゃるスピードが特別なポイントなしで早いので、重要な話のようなものが水の流れのように進む感じがあります。たとえば、最初の許可を要求するときにログインボタンを押すと、クライアントが/oauth2/authorizationで要求し、クライアントが許可サーバーに一時コードを要求するときは/oauth2/authorizeに降ります。 。かなり長い間、少し混乱して混乱していました。だから、一人で汗をかくデバッグしながら慣れました。おそらく講師様の立場ではあまり慣れていないので、そんなことに対する認知がうまくいかないかもしれないと思いますが、講義の際に "最初のログインは/oauth2/authorization、コード要求は/oauth2/authorizeです。 。この文脈で覚えておくといいでしょう"同じように一度お会いできるのが受講生の立場では学習にかなり大きな役に立つポイントになります。 4. 次のチャプター講義を進行する際に、新しいコード(最初から)を進行する場合が多いです。受講評にどんな方がコードを維持してもらったのが同じ理由のようです。ヨンハン様が初めて講義以後にはすべてコードを残してくれるので確かに楽だったんですよ。その過程が編集せずに行われますが、ただそれを一緒に見て従うだけでも勉強になることもあり、受講生と講義者が同じページに置くことができ、長所があります。 水原講師様のように毎回新しいブランチから始めてもいいのですが、講義序盤にちょうど一度のガイドがあったらよかったと思います。各クリップやセクションは分岐単位で管理されているので、やっと受講生たちもそうしてほしい。羽初級者もいるかもしれませんからね。一度だけ見せてください。 PRを飛ばしてマスターにマージするわけではないので、ただブランチだけを新たに生成するだけを見せてくれれば、受講生が講師様と同じページにいるようになるのです。 5. 最後に Filter -> Manager -> Provider -> .. このような関係は、講義本格的な開始前に教えてくださった方が良かったと思います。講義中後半部に言及されたんですよ。講義を聞きながらそのパターンが決まっていることを知ることになりましたが、序盤にパターンを知っていたらもっと簡単になりそうです。おそらく他の講義は少し少ないかもしれませんが、セキュリティがあまりにもクラスが多く、深さが深いので、講義を追ってみると少し精神的ではなく、講義に従う途中でも道を失うことになりました。もちろん講師様が序盤にクラス図式も同じことで流れをつかんでいただくのに初めて見る、長い名前のクラスたちが画面をいっぱいに満たせば。もちろん役に立ちますが、まだ受講生と同じページにいないようです。 ああ、そしてインメモリーに保存するのではなく、最終実習の時はdbに保存するとはっきり言われましたが、途中で忘れたのか最後までインメモリーして実習が終了したのは少し残念でした。これは小さいですが、最終実習の際にリソースサーバー名を1、2こうするよりResourceServerPhoto こんなふうにしてくれればもっといいようです。昔、C++の講義を聞いたときに講義者が話すことを "毎回同じ例なので(ほぼPersonクラスに名前、年齢、いくつかの情報だけを入れて例を作成する) ちょっと退屈したり面白くないかもしれませんが、皆さんはこれから学ぶことが多いだからこういう部分では、新しさに対するハードルが低くなければ学習しやすいと言われたのが記憶に少し残るあります。 アインシュタインが言うことを、説明する時は関連知識のないおばあちゃんも理解できるようにしなければならないという言葉が好きなので、教授法に関して感じたことが多く、思いを残しました。 それにもかかわらず、受講生の皆さん、セキュリティもそうであり、この講義は、セキュリティフレームワークの深い本音を把握する際に、優れた指針となってくれる講義です。私は、デバッグ時にブレークポイントをどこでどのように撮るべきかをほとんど知っています。私が思ったところにブレークポイントが撮られないと、さらに前後になり、正しい流れを把握できるようになりました。セキュリティやOAUTH2 明らかに簡単な講義ではありませんが、それだけ努力すれば得られるのが多くの講義だと思います。 よく学びます。ありがとうございます。

    • leaven
      知識共有者

      講義の評価をこれまで丁寧にしてくださると、激しい感動です そして、心からのアドバイスにも感謝します。 教えてくれた項目は講義制作時にできるだけ参考にさせていただきます。 ただ、習慣というのが怖いと気を使うと言ったのですが、いろいろ不足していることが出てくることができるという点、あなたが理解していただきありがとうございます。 キャリアや年次を離れて、世界には素晴らしい開発者が思ったよりもはるかに多いことを考え、常に謙虚な姿勢で自分自身を眺めるように努力します。 私はインパロンで講師として活動していますが、講師が受講生よりも優れているか、能力が優れていることを教える場所にいるとは思いません。 もちろん、講義する立場で受講生の方々に最大限の品質を提供するために努力しなければならないというのは当然だろうが、それが必ずしも実力や能力がより出場するためではなく、講師が知っている知識を必要とする対象が存在するためであり、受講生の方々の中で講師よりも優れた開発者が存在するという考えを増やしながら講義を準備します。 まだ専門講師の要件を多く揃えておらず、虚しい点や改善すべき部分が少なくなっており、講義を制作する際はいつも悩んで改善していくための努力をしています。 もう一度心からのアドバイスと応援ありがとうございました。 ありがとうございます。

  • ghkvud22405님의 프로필 이미지
    ghkvud22405

    受講レビュー 1

    平均評価 5.0

    5

    100% 受講後に作成

    本当に良い講義であることは明らかです。 Springバッチ>セキュリティ> OAuth2まですべて聞いています 長所は他の方々がみんな教えてくださったので、提案(?)あるいは惜しい点について申し上げたいです。 スプリングのすべてのソースコードレベルをデバッグモードで確認することが大きな助けになるかと思いました。 もちろん、どんな技術を使うにはすべて知らなければならない!そうですが、デバッグプロセスまですべてを習得するには膨大な時間が投資されなければならず、実務にすぐ使用するためにこの講義を聞いたなら実務に適用することは次に延ばすべきだと思います。 講師様がこれからもより良い講義を作っていただきたいという心から受講評を残します。

    • leaven
      知識共有者

      はい、誠実な評価をしていただきありがとうございます^^ おっしゃるとおり、講義でデバッグを活用したソースレベルの処理過程を示すことがある意味では必須要素ではないでしょう。 比較的講義時間も増えて、またデバッグ過程を一度見ても簡単に理解できないものもあります。 それにもかかわらず、講義にデバッグ要素を置く理由は、フレームワークまたはライブラリの内部処理プロセスの明確な理解を助けたいと思います。 もちろん、すべてのモジュールとAPIの内部プロセスとフローを知る必要はありません。 私の観点から見ると、このAPIは、内部処理プロセスを知ることがどの機能を実装する際に重要であると判断された場合、デバッグを通じて全体的な処理プロセスを説明しています。 デバッグはデバッグ自体で終わることは意味がありません デバッグを通じてその API を設計した目的と原理を確実に理解することで、API を単純に使用することを超えて、私が望むようにカスタムに拡張したり応用できる能力を養うためです。 たとえ私たちが直接スプリングセキュリティを設計したり作成したりすることはありませんが、デバッグを通じて間接的にそのコア技術設計に参加し、どの原理で実装したのかを部分的に体験する良い方法だからです。 このプロセスが繰り返され、積み重ねられ、積み重ねられると、APIの基本的な使用はもちろん、その技術の深い理解に基づいて複雑なカスタムアプリケーションが可能になり、例外や問題発生時に迅速に対応できます。 しかし、過剰不給のように、あまりにも過度にソースレベルを覗いてみると、全体像を見逃すことがあるので、本人のレベルと理解能力に応じて調整して分析していく方法を取らなければなりません。 それは私が緩急調節を通じて適切なレベルでのデバッグ活用を講義に溶かすことができるように引き続き悩みながら発展していくようにします もう一度大切な評価ありがとうございます^^

  • dhtmdgus21343562님의 프로필 이미지
    dhtmdgus21343562

    受講レビュー 3

    平均評価 5.0

    5

    40% 受講後に作成

    本当に詳しく説明してくれます。 デバッグプロセスを見せて覚えてるほどずっと残りますね。 この程度はしなければOAuth 2.0使ってみたということができると思います。

    • leaven
      知識共有者

      繰り返し着実にしてみると、そう難しかったのもお酒を解く瞬間が来るようになります。 そのゴビをよく渡してください。 大切な評価ありがとうございます。^^

  • kingbj04292512님의 프로필 이미지
    kingbj04292512

    受講レビュー 30

    平均評価 5.0

    5

    36% 受講後に作成

    良い講義ありがとうございます:) 韓国講義でしっかりとしたセキュリティ関連の講義がなくてユデミーで聞こうとしたが、ちょうど完璧なタイミングで完璧な講義が出たようです!まだ1/5くらいしか聴いていないけど..本当に充実した講義です!!とても満足しています:)

    • leaven
      知識共有者

      初受講評です^^ ありがとう〜! 講義時間が長くても最後まで完走いただき応援致します。

  • sorayeon님의 프로필 이미지
    sorayeon

    受講レビュー 81

    平均評価 5.0

    5

    100% 受講後に作成

    待っていた講義がリリースされたので、喜んで受講してください。 一生懸命勉強中です。 OAuth2標準の理解とSpring Securityがどのようにコードを実装したのかを考え、授業を聞くと役に立ちます。 実は少し難しいですが、最後まで頑張って個人的にも成長できればと思います。 良い講義ありがとうございました。健康です^^

    • leaven
      知識共有者

      はい、ありがとうございます^^ おっしゃったように、OAuth2.0標準仕様に準拠して実装したSpring Security OAuth2のスキルを学んでみると、いつのまにかほとんど与えた専門家のOAuth2.0の概念を習得することになります。 なぜなら、それだけスプリングセキュリティのOAuth2.0の技術的完成度が高いからです。 全体的な技術難易度が容易ではないでしょうが、最後まで完走して良い成果がありますように~~

期間限定セール、あと8日日で終了

¥84,700

30%

¥15,193

leavenの他の講座

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

似ている講座

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