[جدید] آموزش جامع Spring Security 7 به همراه OAuth2، JWT، Auth0 و Keycloak - آخرین آپدیت

دانلود [NEW] Spring Security 7 + OAuth2 + JWT + Auth0 + Keycloak

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: دوره جامع امنیت Full Stack با استفاده از Angular، Spring Boot 3 و میکروسرویس‌ها شامل OIDC، RBAC، ورود اجتماعی (Social Login)، CSRF، CORS و پیاده‌سازی POCهای پیشرفته در این دوره شما موارد زیر را خواهید آموخت: - تسلط بر معماری Spring Security 7 شامل احراز هویت (Authentication)، تعیین سطح دسترسی (Authorization)، زنجیره فیلترهای امنیتی و جریان درخواست‌های داخلی - پیاده‌سازی احراز هویت کاربر با استفاده از UserDetailsService، PasswordEncoder و مدیریت کاربران مبتنی بر دیتابیس - درک تفاوت Roleها و Authorityها و پیاده‌سازی RBAC و ABAC در اپلیکیشن‌های واقعی - اعمال امنیت در سطح Endpoint و متد با استفاده از @PreAuthorize و @PostAuthorize - تسلط بر Request Matcherها شامل Ant، MVC، Regex و رویکردهای مدرن Spring Security 6 - یادگیری مفاهیم بنیادی OAuth2 شامل Actorها، Scopeها، جریان‌ها و معماری امنیتی - پیاده‌سازی Authorization Code Flow و PKCE برای اپلیکیشن‌های وب و موبایل مدرن - پیاده‌سازی Client Credentials Flow برای ارتباطات امن ماشین-به-ماشین (M2M) - پیاده‌سازی Refresh Token Flow و درک چرخه حیات توکن‌ها و بهترین متدهای امنیتی - تسلط بر امنیت JWT شامل ساختار توکن، Claims، امضا، تایید اعتبار و رمزنگاری کلید عمومی/خصوصی - اعتبارسنجی JWT با استفاده از JwtDecoder و JwtAuthenticationConverter در Spring Boot - درک OIDC (OpenID Connect) و نحوه عملکرد لایه هویت روی OAuth2 - پیاده‌سازی معماری SSO (ورود یکپارچه) با استفاده از OAuth2 و OIDC - درک مکانیزم حفاظتی CSRF و دلیل فعال بودن پیش‌فرض آن در Spring Security - پیکربندی CORS و درک رفتار امنیتی درخواست‌های Cross-Origin - پیاده‌سازی Auth0 شامل Applicationها، APIها، Audience، نقش‌ها و نگاشت دسترسی‌ها در JWT - پیاده‌سازی Keycloak شامل Realm، Clientها، نقش‌ها، گروه‌ها و تنظیمات Identity Provider - پیاده‌سازی ورود اجتماعی با گوگل و گیت‌هاب از طریق OAuth2 / OIDC - پیاده‌سازی RBAC در میکروسرویس‌ها با استخراج نقش‌ها و دسترسی‌ها از توکن‌های JWT - تحلیل تفاوت JWT و Opaque Tokens و زمان استفاده از هر استراتژی - طراحی معماری امنیت End-to-End مورد استفاده در اپلیکیشن‌های سازمانی واقعی - ساخت اپلیکیشن Full Stack با Angular و Spring Boot مجهز به Spring Security - ساخت POC کامل Auth0 شامل ورود، نقش‌ها، دسترسی‌ها و APIهای امن شده با JWT - ساخت POC کامل Keycloak شامل Realm، کلاینت‌ها، نقش‌ها و میکروسرویس‌های امن - پیاده‌سازی کامل جریان احراز هویت از لاگین فرانت‌اند تا APIهای امن بک‌اند - اعمال بهترین متدهای امنیتی (Best Practices) و اجتناب از اشتباهات رایج در سیستم‌های Production - تحلیل تفاوت‌های Keycloak و Auth0 و معیارهای انتخاب هر یک پیش نیازها: - دانش پایه Java و Spring Boot - آشنایی اولیه با REST API و مفاهیم HTTP - آشنایی مقدماتی با Angular یا فرانت‌اند (کمک‌کننده است اما اجباری نیست) - نیازی به دانش قبلی از Spring Security، OAuth2 یا JWT نیست - سیستمی با قابلیت اجرای Java، IDE و مرورگر سرفصل‌های آموزشی: اساسيات Spring Security: - تسلط بر امنیت - امنیت در Spring Boot و میکروسرویس‌ها - چرا اپلیکیشن Spring Boot شما به امنیت نیاز دارد؟ - Spring Security چیست؟ - مفاهیم کلیدی Spring Security - احراز هویت (Authentication) - تعیین سطح دسترسی (Authorization) - فیلترهای Servlet - جایگزین‌های Spring Security چیست؟ - مسئولیت پیاده‌سازی امنیت بر عهده کیست؟ - شروع عملی - تحلیل خطای 401 - جمع‌بندی - رویکرد Convention-over-Configuration در Spring Security - بازیگران کلیدی در فریم‌ورک احراز هویت - جریان احراز هویت در Spring Security - Beanهای خودکار در Spring Security - بررسی UserDetailsService - بررسی PasswordEncoder پیکربندی Spring Security: - معرفی POC 2 - بازنویسی (Overriding) تنظیمات پیش‌فرض - شخصی‌سازی پیکربندی Spring Security - چرا اکنون احراز هویت شکست می‌خورد؟ - رفع خطاهای احراز هویت گام به گام - تعریف اعتبارنامه‌های کاربر - افزودن کاربر به InMemoryUserDetailsManager - تعریف PasswordEncoder Bean - چرا باید از HTTP Basic Authentication اجتناب کرد؟ مدیریت کاربران: - مفاهیم مدیریت کاربر - اجزای مدیریت کاربر - بررسی UserDetails - بررسی UserDetailsManager - بررسی User - شخصی‌سازی User Details Service - پیاده‌سازی POC 3 - ایجاد جداول User و Authority - نگاشت جداول کاربر و دسترسی‌ها - تحلیل Eager Fetching در Authorityها - دریافت دسترسی‌های ذخیره شده از SecurityContext تعیین سطح دسترسی (Authorization): - مفاهیم Authorization - نحوه عملکرد تعیین سطح دسترسی - اهداف آموزشی این بخش - بررسی GrantedAuthority - تفاوت بین Authority و Role - سطوح مختلف پیاده‌سازی Authorization - تعیین سطح دسترسی در سطح Endpoint زنجیره فیلترهای امنیتی (Security Filter Chain): - مفاهیم Security Filter Chain - تعریف یک Filter Chain - تغییر در Filter Chain - چرا همچنان خطای 403 دریافت می‌کنیم؟ - بررسی anyRequest().authenticated() - بررسی anyRequest().permitAll() - بررسی anyRequest().hasAuthority() - بررسی anyRequest().hasAnyAuthority() - مفهوم Role - بررسی anyRequest().hasRole() - بررسی anyRequest().hasAnyRole() - تحلیل 401 در مقابل 403 - بررسی anyRequest().access() - مزایای متد access() - معایب متد access() - بررسی anyRequest().denyAll() درخواست‌های تطبیق‌دهنده (Request Matchers): - معرفی متدهای Matcher - لیست کامل تمامی متدهای Matcher - معرفی Request Matcher - متدهای Request Matcher - مثال‌های دنیای واقعی برای درک بهتر - نحوه عملکرد requestMatchers() در این تنظیمات - بررسی کدها انواع Matcherها: - Ant Matcher - متدهای Ant Matcher - دلیل محبوبیت Ant Matcher - مثال در Spring Security 5.x - دلیل منسوخ شدن در Spring Security 6+ - MVC Matcher - متدهای MVC Matcher - دلیل استفاده از MVC Matcher - Regex Matcher - بررسی regexMatchers() - کاربردهای Regex Matcher - Dispatcher Type Matcher - مفهوم و کاربرد DispatcherType - Servlet Path Matcher - کاربرد Servlet Path Matcher - آیا در اپلیکیشن‌های Spring Boot کاربردی دارد؟ - ترکیب تمامی متدهای Matcher امنیت در سطح متد (Method Level Security): - تعیین سطح دسترسی در سطح متد - تحلیل وضعیت فعلی - آیا Spring Security در اپلیکیشن‌های غیر وب قابل استفاده است؟ - کجا می‌توانیم امنیت متد را اعمال کنیم؟ - چرا از Method Security استفاده کنیم؟ - نقش احراز هویت در فعال‌سازی امنیت متد - چرا نباید از permitAll() در امنیت متد استفاده کرد؟ - بررسی قطعه کدهای نمونه - نحوه فعال‌سازی امنیت متد - روش‌های جدید فعال‌سازی Authorization در سطح متد - تحلیل اتفاقات پشت صحنه - چرا از اصطلاح Aspect استفاده می‌شود؟ - جلوگیری از ایجاد God Class با امنیت متد - بهترین متدها (Best Practices) - اولویت قوانین: تنظیمات Security Config در مقابل امنیت متد - ملاحظات عملکردی: امنیت در سطح متد در مقابل سطح فیلتر - چگونه امنیت متد فراتر از فیلترها عمل می‌کند؟ - استفاده از @PreAuthorize چندخطی برای قوانین پیچیده - معایب قوانین چندخطی - فراتر از SpEL: بررسی‌های امنیتی مبتنی بر Bean - بررسی Post Authorize - تفاوت @PreAuthorize و @PostAuthorize فیلترها در امنیت متد: - بررسی Pre filter - نکات کلیدی Pre filter - نکات کلیدی Post filter - تله‌ها و اشتباهات رایج Post Filter - مقایسه PreFilter و PostFilter - مقایسه @Pre/@PostAuthorize با @Pre/@PostFilter مبانی OAuth2 و OIDC: - معرفی OAuth2 و OIDC - مفاهیم پایه - بازیگران و نقش‌ها در OAuth2 - جریان (Flow) در OAuth2 - راهکار ارائه شده توسط OAuth 2.0 - دلیل قدرت و محبوبیت این پروتکل - گام‌های OAuth 2 - نحوه دریافت توکن - هسته مرکزی همکاری OAuth2 و Spring Security - انواع Grant types - بررسی انواع Grant types - Grant typeهای منسوخ شده - اصل امنیتی اصلی OAuth - چرا Password Grant Type منسوخ شد؟ - جایگزین‌های مدرن - چرا Implicit Grant Type منسوخ شد؟ - جمع‌بندی جریان Authorization Code Flow: - مفاهیم Authorization Code Flow - Grant Type کد تایید چیست؟ - تحلیل گام به گام جریان - مزایا - معایب جریان Authorization Code Flow به همراه PKCE: - PKCE چیست؟ - دلیل معرفی PKCE - بازیگران در PKCE - تحلیل گام به گام Authorization Code Flow با PKCE - نحوه جلوگیری از حملات توسط PKCE - نحوه عملکرد Verifier و Challenge - مثال دنیای واقعی: قفل و کلید - جمع‌بندی جریان PKCE - مقایسه Authorization Code در مقابل نسخه PKCE - نکات مهم برای به خاطر سپردن جریان Client Credentials Flow: - Grant Type اعتبارنامه کلاینت - Client Credentials چیست؟ - چه زمانی از آن استفاده کنیم؟ - بازیگران این جریان - تحلیل گام به گام جریان - پاسخ نمونه توکن - متدهای احراز هویت کلاینت با AS - نحوه نگاشت Scopes به Authorities - بررسی Scopes و authorities - توکن‌ها: JWT در مقابل Opaque - ملاحظات امنیتی و بهترین متدها - تله‌ها و نکات حیاتی جریان Refresh Token Flow: - Grant Type توکن تازه‌سازی - Refresh Token چیست؟ - چرا به Refresh Token نیاز داریم؟ - چه کسانی از این جریان استفاده می‌کنند؟ - تحلیل جریان Refresh Token - توکن‌های استاتیک (قابل استفاده مجدد) - توکن‌های چرخان (یک‌بار مصرف) - نحوه تصمیم‌گیری سرورهای OAuth2 - وظایف کلاینت‌ها - زمان‌های کلیدی عمر توکن - چرا Refresh Tokenها حساس هستند؟ - مقایسه جریان Access Token و Refresh Token توکن‌ها: - توکن Opaque چیست؟ - نحوه عملکرد توکن Opaque - پاسخ Introspection - توکن‌های غیر Opaque در مقابل Opaque JWT (JSON Web Token): - معرفی JWTها - JWT چیست؟ - ساختار پایه یک توکن JWT - نحوه عملکرد JWT - متدهای امضای JWT - Claimهای رایج در JWT - نحوه تایید اعتبار JWTها - کلیدهای خصوصی و عمومی - فایل jwks.json چیست؟ - دلیل محبوبیت JWTها - محدودیت‌ها و تله‌ها OIDC (OpenID Connect): - معرفی OIDC - OIDC چیست؟ - جریان کد تایید با PKCE - مثال دنیای واقعی (ورود با گوگل) - دلیل وجود OIDC - ماهیت واقعی OIDC - اجزای اصلی OIDC - توکن ID (ID Token) - Claimهای استاندارد در ID Token - Scopeهای OIDC - Endpointهای OIDC - مزایای OIDC - اشتباهات رایج - مفهوم Nonce - چرا از Nonce استفاده می‌کنیم؟ SSO (ورود یکپارچه): - مفاهیم SSO - SSO چیست؟ - بازیگران در SSO - گام‌های SSO با مثال واقعی - چرا SSO به این شکل بهینه عمل می‌کند؟ - اشتباهات رایج در SSO - مزایای امنیتی SSO - سناریوهای خروج (Logout) در SSO - چرا OAuth2 و OIDC برای SSO ضروری هستند؟ CSRF (جعل درخواست میان‌سایتی): - مفاهیم CSRF - CSRF چیست؟ - رفتار اصلی مرورگر - چرا CSRF خطرناک است؟ - نحوه توقف CSRF توسط وب‌سایت‌ها - چرا Spring Security به صورت پیش‌فرض CSRF را فعال می‌کند؟ CORS (اشتراک منابع بین مبدا): - مفاهیم CORS - CORS چیست؟ - دلیل وجود CORS - مفهوم Origin چیست؟ - قوانین CORS - پیکربندی CORS در Spring Boot - اشتباهات رایج در CORS - مقایسه CORS در مقابل CSRF پروژه عملی Full Stack POC: - معرفی پروژه Full Stack - معرفی اپلیکیشن Foodify - بررسی UI اپلیکیشن Foodify - بررسی بک‌اند اپلیکیشن Foodify - پیکربندی‌های Auth0 - پیاده‌سازی Spring Security Auth0: - Auth0 چیست؟ - اجزای کلیدی Auth0 - اتفاقات هنگام لاگین - چرا از Auth0 استفاده کنیم؟ - MFA (احراز هویت چندعاملی) - ورود اجتماعی (Social Login) - هویت متمرکز - بهره‌وری توسعه‌دهنده - چه زمانی باید سیستم را خودمان بسازیم؟ نقش‌ها و دسترسی‌ها: - تفاوت Authentication و Authorization - OAuth2 / OIDC چیست؟ - معماری POC End-to-End با Auth0 - مفهوم Application در Auth0 - مفهوم API در Auth0 - Audience چیست؟ - Roleها چیستند؟ - Permissionها چیستند؟ - مقایسه Role در مقابل Permission - RBAC چیست؟ - چرا از RBAC استفاده می‌شود؟ - چرا نقش‌ها و دسترسی‌ها در JWT قرار می‌گیرند؟ پردازش JWT در Spring Security: - JwtDecoder چیست؟ - JwtAuthenticationConverter چیست؟ - مفهوم Authority در Spring - پیشوند _ROLE - اشتباهات رایج گام‌های پیاده‌سازی: - مراحل پیاده‌سازی Spring Security - مراحل تنظیم Auth0 - مراحل افزودن نقش‌ها به توکن - تحلیل اتفاقات در بک‌اند - جریان نهایی (End-to-End) - مفاهیم کلیدی - اشتباهات رایج Keycloak: - معرفی Keycloak - Keycloak چیست؟ - معماری سطح بالا - اصطلاحات کلیدی - انواع Clientها - انواع نقش‌ها - Client Scope - گروه‌ها (Groups) - تامین‌کننده هویت (IDP) - جریان‌ها - مقایسه Keycloak در مقابل Auth0 - مقایسه ویژگی‌ها - چه کسی باید Keycloak یا Auth0 را انتخاب کند؟ ورود اجتماعی (Social Login): - مفاهیم Social Login - Social Login چیست؟ - نحوه عملکرد - مزایای ورود اجتماعی - پیکربندی Identity Providerها در Keycloak - گام‌های ورود با گوگل - گام‌های ورود با گیت‌هاب

سرفصل ها و درس ها

مقدمه Introduction

  • معرفی دوره Course Introduction

اساسيات Spring Security Spring Security Basics

  • چرا اپلیکیشن Spring Boot شما به امنیت نیاز دارد؟ Why Security for your spring boot app ?

  • Spring Security چیست؟ What is Spring Security ?

  • مفاهیم کلیدی Spring Security Key Spring Security Concepts​

  • احراز هویت (Authentication) چیست؟ What is Authentication ?

  • تعیین سطح دسترسی (Authorization) چیست؟ What is Authorization​ ?

  • فیلترهای Servlet چیستند؟ What are Servlet Filters​ ?

  • جایگزین‌های Spring Security چیستند؟ What are the alternatives of Spring Security ?

  • مسئولیت پیاده‌سازی Spring Security بر عهده کیست؟ Spring Security Implementation - Who’s responsibility

  • کوییز مفاهیم پایه Spring Security Spring Security Basic Quiz

  • بحث مفاهیم پایه با Karan Spring Security Basic with Karan

POC 1: پیکربندی پیش‌فرض POC 1 : Default Configuration

  • پیاده‌سازی POC POC implementation

  • تحلیل خطای 401 Why 401 ?

  • جمع‌بندی Summary

  • Spring Security: اولویت قرارداد بر پیکربندی Spring Security : Convention over Configuration

POC 2: احراز هویت POC 2 : Authentication

  • اجزای احراز هویت Components of Authentication

  • UserDetailService چیست؟ What is UserDetailService ?

  • PasswordEncoder چیست؟ What is PasswordEncoder

  • پیاده‌سازی POC 2 POC 2 Implementation

مدیریت کاربران User Management

  • اجزای مدیریت کاربر Components of User Management

  • قرارداد UserDetails UserDetails contract

  • قرارداد UserDetailsManager UserDetailsManager contract

  • بررسی User User

  • جمع‌بندی Summary

POC 3: شخصی‌سازی User Details Service POC 3 : Custom User Details Service

  • شخصی‌سازی User Details Service Customising User Details Service

  • پیاده‌سازی POC 3 POC 3 implementation

  • دریافت احراز هویت ذخیره شده از Security Context Fetch saved Authentication from Security Context

تعیین سطح دسترسی Authorization

  • Authorization چیست؟ What is Authorization ?

  • Authorization چگونه کار می‌کند؟ How Authorization works ?

  • چه مواردی را خواهیم آموخت؟ What are we going to learn ?

  • بررسی Granted Authority Granted Authority

  • تفاوت بین Authority و Role Difference between Authority and role

  • سطوح مختلف Authorization Different Authorization level

Authorization در سطح Endpoint Endpoint Level Authorization

  • Authorization در سطح Endpoint Endpoint level Authorization

  • زنجیره فیلتر امنیتی (Security Filter Chain) Security Filter Chain

  • تغییر Filter Chain بر اساس مورد استفاده تجاری Modify Filter Chain based on business use case

  • قانون Authenticated Authenticated Rule

  • قانون Permit all Permit all Rule

  • قانون Has Authority Has Authority Rule

  • قانون Has Any Authority Has Any Authority Rule

  • قانون Has Role Has Role Rule

  • متد Access برای ارزیابی قوانین Access Method for Rule evaluation

  • مزایای متد access Advantages of access Method

  • معایب متد access Disadvantages of access method

  • قانون Deny All Deny All Rule

قوانین تعیین سطح دسترسی Authorization Rules

  • معرفی متدهای Matcher Matcher Methods Introduction

  • لیست تمامی متدهای Matcher List Of All Matcher methods

  • معرفی Request Matcher Request Matcher Introduction

  • مثال دنیای واقعی از Request Matcher Real life analogy of request matcher

  • مثال کد Request Matcher Code example of Request matcher

  • معرفی Ant Matcher Ant Matcher Intro

  • چرا Ant Matcher محبوب بود؟ Why Ant matcher was so popular

  • قطعه کد Ant Matcher Code snippet of ant matcher

  • مثال دنیای واقعی Ant Matcher Real time analogy of ant matcher

  • چرا Ant Matcher منسوخ شد؟ Why was ant matcher deprecated

  • معرفی MVC Matcher MVC matcher introduction

  • چرا MVC Matcher مفید بود؟ Why MVC matcher was useful ?

  • کد نمونه MVC Matcher MVC matcher example code

  • مثال دنیای واقعی MVC Matcher Real life analogy of MVC matcher

  • چرا MVC Matcher منسوخ شد؟ Why MVC matcher was deprecated ?

  • نحوه جایگزینی Request Matcher با Ant و MVC قدیمی How request matcher replaces old ant and mvc matcher

Regex Matcher Regex Matcher

  • معرفی متد Regex Matcher Introduction to Regex matcher method

  • چرا و کجا از Regex Matcher استفاده کنیم؟ Why and where to use Regex matcher ?

  • مثال کد Regex Matcher Code example of regex matcher

  • مثال دنیای واقعی Regex Matcher Real life analogy of Regex Matcher

Dispatcher type Matcher Dispatcher type Matcher

  • معرفی Dispatcher type matcher Dispatcher type matcher introduction

  • قطعه کد Dispatcher type matcher Code snippet for Dispatcher type matcher

Servlet path matcher Servlet path matcher

  • معرفی Servlet path matcher Servlet path matcher Introduction

  • مثال دنیای واقعی Servlet path matcher Real life analogy of Servlet path matcher

  • چه زمانی Servlet path matcher واقعاً مفید است؟ When is Servlet path matcher really useful

  • قطعه کد Servlet path matcher Code snippet for Servlet path matcher

جمع‌بندی تمامی متدهای Matcher All matcher methods summary

  • نحوه ترکیب متدهای مختلف Matcher How to combine different matcher method

  • جمع‌بندی تمامی متدهای Matcher Summary of all matcher methods

Authorization در سطح متد Method level Authorization

  • وضعیت فعلی در Authorization سطح متد Method level authorization Where do we standNow

  • آیا می‌توان از Spring Security برای اپلیکیشن‌های غیر وب استفاده کرد؟ Can we use Spring Security for non web apps

  • کجا می‌توانیم قوانین Authorization سطح متد را اعمال کنیم؟ Where can we apply method level authorization rules

  • چرا از امنیت در سطح متد استفاده کنیم؟ Why use method level security

  • نقش احراز هویت role of authentication

  • بررسی قطعه کد code snippet

  • نحوه فعال‌سازی امنیت سطح متد How to enable method level security

  • اتفاقات پشت صحنه What happens behind the scene

  • چرا از اصطلاح Aspect استفاده می‌شود؟ Why called aspect behind the scene

  • جمع‌بندی انوتیشن‌های فعال‌سازی امنیت متد Summary of enable method level security annotation

  • جلوگیری از ایجاد God Class Prevent God class

  • بهترین متدها (Best Practices) Best Practices

  • اولویت با کیست: فیلتر یا Authorization سطح متد؟ Who takes priority filter or method level Auth

  • جمع‌بندی Summary

  • ملاحظات عملکردی Performance consideration

  • چگونه امنیت متد فراتر از فیلترها عمل می‌کند؟ How Method-Level Security Goes Beyond Filters

  • قطعه کد methodLevelSec Code Snippet - methodLevelSec

  • جمع‌بندی امنیت متد فراتر از فیلترها Summary-MethodLevelSecurityBeyondFilters

  • استفاده از @PreAuthorize چندخطی برای قوانین پیچیده Multi-line @PreAuthorize for Complex Security Rules

  • قطعه کد @preauthorize چندخطی Code Snippet MultiLine @preauthorize

  • معایب قوانین چندخطی Disadvantage of multiline rules

  • فراتر از SpEL: بررسی‌های امنیتی مبتنی بر Bean Moving Beyond SpEL Bean-Based Security Checks

  • دموی CustomBean برای @PreAuthorize با SpEL CustomBeanForPreAuthorizeAnnotationWithSPEL Demo

  • Authorization پس از اجرا (Post Authorization) Post Authorization

  • قطعه کد Post Authorize Code snippet post authorize

  • مقایسه Pre و Post Authorization Pre vs Post Authorization

  • مورد استفاده از Post Authorization Use case of post authorization

  • همه چیز درباره Pre filter All About Pre filter

  • دموی عملی Pre filter Live demo for pre filter

  • بررسی Post filters Post filters

  • تله‌های Post Filter Post Filter Pitfall

  • مقایسه Pre و Post Filter Pre vs Post Filter

  • مقایسه Authorize و Filter در حالت PrePost Authorize vs filter(PrePost)

OAuth2 OAuth2

  • بازیگران در OAuth2 Actors in oauth2

  • بدون OAuth2 چه اتفاقی می‌افتد؟ What will happen without Oauth2

  • جریان (Flow) در OAuth2 Flow of Oauth2

  • چرا این پروتکل بسیار قدرتمند است؟ Why is it so powerful

  • گام‌های OAuth2 Steps of Oauth2

  • مثال دنیای واقعی Real world analogy

  • هسته مرکزی OAuth2 و Spring Security Heart of Oauth2 and Spring security

OAuth 2 و OIDC OAuth 2 & OIDC

  • معرفی OAuth Oauth Intro

انواع Grant types Grant types

  • Grant type چیست؟ What is grant type

  • انواع Grant Types Types Of Grant Types

  • اصل امنیتی اصلی OAuth Oauths Main Security principle

  • Password Grant type چه بود؟ What was Password Grant type

  • چرا Password Grant type بد بود؟ Why was password grant type bad

  • جایگزین مدرن Password Grant type Mordern replacement of password grant type

  • Implicit grant type چیست؟ What is implicit grant type ?

  • چرا Implicit بد بود؟ Why implicit was bad ?

  • جایگزین مدرن برای Implicit grant type Mordern replacement fro implicit grant type

  • جمع‌بندی Grant typeهای منسوخ شده Summary of deprecated Grant types

جریان Authorization Code flow Authorization Code flow

  • معرفی جریان Authorization code grant type Intro of Authorization code grant type flow

  • گام‌های جریان Authorization code Steps in authorization code grant type flow

  • ارتباط بین بازیگران در Authorization code flow 1-1 Communication between actors in authorization code flow

  • مزایای Authorization code grant type Advantages of Authorization code grant type

  • معایب Authorization code grant type Disadvantages of Authorization code grant type

PKCE PKCE

  • PKCE چیست؟ What is PKCE ?

  • چرا PKCE؟ Why PKCE ?

  • بازیگران در PKCE Actors in PKCE

  • گام‌های سطح بالای PKCE High level PKCE Steps

  • جزئیات گام‌های PKCE Details of steps in PKCE

  • چگونه PKCE امنیت را افزایش داده و از حملات جلوگیری می‌کند؟ How PKCE is much more secured and prevent attacks

  • مثال دنیای واقعی Real time anology

  • نحوه عملکرد Verifier و Challenge How verifier and challenge works

  • مثال دنیای واقعی Verifier و Challenger Real world anology of verifier and challenger

  • جمع‌بندی PKCE Summary of PKCE

  • مقایسه Authorization code در مقابل PKCE Authorization code grant type VS PKCE

  • نکات مهم Points to remember

Client credentials grant types Client credentials grant types

  • Client credential grant type چیست؟ What is client credential grant type ?

  • چه زمانی از Client credential استفاده کنیم؟ When to use client credential grant type

  • بازیگران در Client credential Actors in client credential grant type

  • گام‌های Client credential Steps for client credential grant type

  • دیاگرام جریان Client credential Flow diagram of client credential grant type

  • پاسخ نمونه توکن Typical token response

  • متدهای احراز هویت در Client credential Authentication methods of client credential grant type

  • نحوه عملکرد Scope و Authority How scope and authority works ?

  • مقایسه JWT و Opaque tokens JWT VS Opaque tokens

  • بهترین متدها در Client credential Best Practices in client credential grant type

  • تله‌های Client credential Pitfalls in client credential grant type

Refresh token grant type Refresh token grant type

  • Refresh token grant type چیست؟ What is refresh token grant type ?

  • چرا Refresh token grant type؟ Why refresh token grant type

  • چه کسی می‌تواند از Refresh token استفاده کند؟ Who can use refresh token grant type

  • دیاگرام توالی جریان Refresh token Sequence diagram of refresh token grant type flow

  • جریان گام به گام Refresh token Step by step flow of refresh token grant type

  • انواع سیاست‌های سرورهای Authorization در مورد Refresh token Types of authorization servers policy wrt refresh token grant type

  • توکن‌های Refresh استاتیک Static reuseable refresh tokens

  • توکن‌های Refresh چرخان (یک‌بار مصرف) Rotating (1-time) refresh tokens

  • کدام سرور از کدام سیاست استفاده می‌کند؟ Which Authorization server uses which policy ?

  • بهترین متدهای Refresh token Best practices of refresh token grant type

  • مثال برای توکن‌های استاتیک در مقابل چرخان Analogy for static vs rotation refresh tokens

  • عمر توکن‌های استاتیک در مقابل چرخان Life of static vs rotating tokens

  • چرا Refresh tokenها حساس هستند؟ Why refresh tokens are sensitive ?

  • ملاحظات امنیتی Refresh tokenها Security considerations of refresh tokens

  • مقایسه Access token flow و Refresh token flow Access token flow VS refresh token flow

  • جمع‌بندی Refresh token grant type Summary of refresh token grant type

توکن‌های Opaque و Non Opaque Opaque and Non Opaque tokens

  • توکن Opaque چیست؟ What is an Opaque token ?

  • توکن Opaque چگونه کار می‌کند؟ How Opaque Token works ?

  • گام‌ها و پاسخ سرور برای توکن Opaque Steps and response of AS for opaque Token

  • توکن‌های Non opaque چیستند؟ What are non opaque tokens ?

  • توکن‌های Non opaque چگونه کار می‌کنند؟ How non opaque tokens works ?

  • انواع توکن‌های Non opaque Types of Non opaque tokens

  • چرا از توکن Non opaque استفاده کنیم؟ Why use non opaque token ?

  • نقاط ضعف توکن Non opaque Drawbacks of non opaque token

  • مقایسه Opaque و Non opaque Opaque vs Non opaque tokens

  • مثال دنیای واقعی: کارت پرواز Real time analogy - Boarding pass

JWTها JWTs

  • JWT چیست؟ What is JWT ?

  • ساختار توکن JWT Structure of JWT token

  • توکن JWT چگونه جابجا می‌شود؟ How JWT token is circulated ?

  • متدهای امضای JWT JWT Siggining methods

  • انواع Claimها در JWT Types of claims in JWT

  • مثال دنیای واقعی خطوط هوایی برای JWT Airlines analogy real time for JWT

  • نحوه تایید اعتبار JWTها How JWTs are verified

  • کلید خصوصی و عمومی چیست و چه کسی مالک آن‌هاست؟ What is private and public key and who owns it ?

  • JWKS.json چیست؟ What is JWKS.json ?

  • پاسخ jwks.json Response of jwks.json

  • مثال برای پاسخ JWKs Analogy of JWKs response

  • جمع‌بندی تمامی هدرهای jwks.json Summary of all headers of jwks.json

  • نحوه تایید محلی توکن JWT توسط Resource Server How resource server verifies the JWT token locally

  • چرا به JWKS نیاز است؟ Why JWKS is needed ?

  • مثال Jwks در Teams Teams Jwks example

  • مثال سیستم دفترخانه (Notary) Analogy Of Notary system

  • چرا از JWT استفاده کنیم؟ Why use JWTs

  • محدودیت‌ها و تله‌های JWT Limitations and pitfalls of JWTs

  • بررسی Jwk و JWKs Jwk and JWKs

  • استفاده از JWT در OAuth2 و OIDC JWT usage in Oauth2 and OIDC

  • جمع‌بندی مثال Teams در JWT JWT Teams analogy summary

OIDC OIDC

  • OIDC چیست؟ What is OIDC ?

  • مثال دنیای واقعی برای OIDC Real world example for OIDC

  • اگر OAuth2 احراز هویت می‌کند، چرا به OIDC نیاز داریم؟ Why OIDC if Oauth2 provides authentication

  • چرا جزئیات احراز هویت را نمی‌توان از Access token گرفت؟ Why auth details cant be fetched from acess token

  • مثال دنیای واقعی در مورد عدم استفاده از Access token Real world analogy why not access token

  • احراز هویت واقعاً کجا اتفاق می‌افتد؟ Where authentication happens really

  • کدام Grant type توکن ID را برمی‌گرداند؟ Which grant type returns ID token

  • چرا OIDC؟ Why OIDC

  • مثال دنیای واقعی OIDC Real world anology of OIDC

  • اجزای اصلی OIDC Core Component of OIDC

  • OIDC چه چیزی به OAuth2 اضافه می‌کند؟ What does OIDC adds over oauth2

  • ID token چیست؟ What is ID token ?

  • Claimهای استاندارد در ID token Standard Claims in ID token

  • Scopeهای OIDC OIDC Scopes

  • Endpointهایی که هر Provider OIDC باید ارائه دهد Endpoints that each OIDC provider must provide

  • جریان گام به گام OIDC Step by step Flow of OIDC

  • جایگاه OIDC در کنار OAuth2 Where OIDC fits in With Oauth2

  • مثال‌های Endpoint در مایکروسافت Endpoint examples with Microsoft

  • OIDC چگونه امن شده است؟ How is OIDC Secured ?

  • مزایای OIDC Benefits of OIDC

  • تامین‌کنندگان رایج OIDC Common OIDC providers

  • بدون OIDC چه چیزهایی مختل می‌شوند؟ Without OIDC what breaks

  • تله‌های رایج OIDC Common pitfalls of OIDC

  • جمع‌بندی OIDC Summary of OIDC

  • Nonce چیست و چرا برای امنیت در OIDC استفاده می‌شود؟ What is Nonce and Why use it in OIDC fro security

SSO SSO

  • SSO چیست؟ What is SSO ?

  • بازیگران در SSO Actors in SSO

  • گام‌های SSO با مثال واقعی Steps in SSO With real time example

  • چرا SSO اینقدر روان عمل می‌کند؟ Why SSO worked so gracefully

  • اشتباهات رایج SSO Common pitfall of SSO

  • مزایای امنیتی SSO Security benefits of SSO

  • سناریوهای Logout در SSO SSO logout scenarios

  • چرا برای SSO به OAuth2 و OIDC نیاز داریم؟ Why Ouath2 and OIDC for SSO

  • جمع‌بندی SSO SSO Summary

CSRF CSRF

  • CSRF چیست؟ What is CSRF ?

  • رفتار اصلی مرورگر Core Browser behaviour

  • مثال دنیای واقعی برای CSRF Real time analogy for CSRF

  • چرا CSRF خطرناک است؟ Why CSRF is dangerous

  • تصورات غلط رایج درباره CSRF Common Misconception about CSRF

  • نحوه توقف حملات CSRF توسط وب‌سایت‌ها How websites stops CSRF attacks

  • چه زمانی CSRF اتفاق می‌افتد؟ When CSRF happens

  • چرا در برابر CSRF ایمن هستیم؟ Why we are safe from CSRF

  • آیا Grant typeها تاثیری بر حملات CSRF دارند؟ Does Grant types have any effect on CSRF attacks

  • چرا Spring Security به صورت پیش‌فرض CSRF را فعال می‌کند؟ Why Spring security enables the CSRF by default

  • نقشه ارتباطی نهایی Final connection map

  • جمع‌بندی CSRF CSRF summary

CORS CORS

  • CORS چیست؟ What is CORS ?

  • چرا CORS وجود دارد؟ Why CORS exists

  • مثال دنیای واقعی Real world anology

  • CORS چه مشکلی را حل می‌کند؟ What problem CORS solves

  • Origin چیست؟ What is Origin

  • با CORS و بدون آن چه اتفاقی می‌افتد؟ What happens with and without CORS

  • CORS برای بک‌اند نیست، بلکه برای مرورگرهاست CORS is not For backend but for browsers

  • قابلیت اجرای قوانین CORS CORS Rules applicability

  • چگونه UI را بدون مشکل CORS به بک‌اند متصل کنیم؟ How to make our UI call backend without CORS issue

  • اشتباهات رایج CORS Common CORS mistakes

  • مقایسه CORS و CSRF CORS vs CSRF

اپلیکیشن Foodify Foodify App

  • معرفی POC اپلیکیشن Foodify Introduction to Foodify App POC

  • راه‌اندازی UI فرانت‌اند Foodify بدون امنیت Front end UI setup of Foodify without security

  • پیکربندی بک‌اند میکروسرویس‌ها و اتصال آن‌ها Backend Configuration of Microservices and their wirings

  • دموی سریع Quick Demo

Auth0 Auth0

  • Auth0 چیست؟ What is Auth0

  • مثال دنیای واقعی Auth0 Real world anology of Auth0

  • Auth0 چه مشکلاتی را حل می‌کند؟ What Problems does Auth0 solves

  • جایگاه Auth0 در معماری ما Where does Auth0 fits in our architecture

  • اجزای کلیدی Auth0 Key Components of Auth0

  • جریان فنی Auth0 Technical flow of auth0

  • چرا از Auth0 استفاده کنیم به جای اینکه همه‌چیز را خودمان بسازیم؟ Why use Auth0 instead of building everything by yourself

  • چه زمانی باید سیستم را خودتان بسازید؟ When you should build by yourself

  • مثال ساده Simple anology

  • مرور سریع Quick recap

  • معماری با حضور Auth0 Architecture with Auth0 in place

  • مفهوم Application در Auth0 چیست؟ What is Application in Auth0 term

  • نحوه ایجاد یک Application در Auth0 How to Create an Application in auth0

  • API در Auth0 چیست و چرا به آن نیاز داریم؟ What is an API in Auth0 and why we need it

  • نحوه ایجاد یک API و محتویات آن How to create an APi and what goes in API

  • APIهای پیکربندی شده چگونه از توکن‌ها استفاده می‌کنند؟ How APIs u configured here use the tokens

  • مثال دنیای واقعی از APIها Real world analogy of Api's

  • Audience چیست و چرا مهم است؟ What is audience and why its important

  • مثال جعبه ارسال برای درک Audience Real world delivery box analogy for audience

  • Permissionها و Roleها چیستند؟ What are permissions and roles

  • چرا به Permission نیاز داریم و کجا آن‌ها را اضافه کنیم؟ Why permissions and where do we add permissions

  • مقایسه Role در مقابل Permission Roles VS Permissions

  • RBAC چیست؟ What is RBAC

  • اجزای اصلی RBAC Core components of RBAC

  • نحوه عملکرد RBAC How RBAC works

  • چرا RBAC و مزایای آن چیست؟ Why RBAC and Its benifits

  • جمع‌بندی RBAC Summary of RBAC

POC foodify POC foodify

  • پیکربندی‌های فرانت‌اند Auth0 Auth0 FE configurations

  • پیکربندی امنیتی برای Restaurant API با دموی 200، 401 و 403 Security configuration for restaurant API with 200 401 and 403 demo

  • پیکربندی امنیتی در POC سرویس منو (Menu Service) Security Config in menu service poc

  • چرا نقش‌ها و دسترسی‌ها را به JWT اضافه می‌کنیم؟ Why we add roles and permissions to JWT

  • اگر نقش‌ها را به JWT اضافه نکنیم چه می‌شود؟ What happens if we dont add Roles to JWT

  • اگر نقش‌ها را به JWT اضافه کنیم چه می‌شود؟ What happens if we add Roles to JWT

  • جمع‌بندی افزودن نقش‌ها به توکن Summary to add roles in token

  • چرا Auth0 به صورت پیش‌فرض نقش‌ها و دسترسی‌ها را در JWT نمی‌گذارد؟ Why Auth0 dont add roles andpermissions by deafult in jwt

  • چرا به JWT Decoder نیاز داریم؟ Why JWT Decoder

  • JwtAuthenticationConverter چیست؟ What is JWTAuthenticationConverter

  • افزودن Trigger سفارشی برای دریافت نقش‌ها Add Custom trigger to get roles

Keycloak Keycloak

  • Keycloak چیست؟ What is Keycloak

  • معماری سطح بالا و جایگاه Keycloak High level architecture where keycloak fits in

  • اصطلاحات کلیدی Core terminologies

  • انواع کلاینت‌ها Type of Clients

  • انواع نقش‌ها در Keycloak Role types in Keycloak

  • Scopeها و گروه‌ها در Keycloak Scope and groups in keycloak

  • پشتیبانی از ورود اجتماعی در Keycloak Support for social logins in keycloak

  • جریان (Flow) در Keycloak Flow in keycloak

  • مقایسه اصطلاحات Keycloak و Auth0 Keycloak VS Auth0 Terminologies comparision

  • مقایسه ویژگی‌های Keycloak و Auth0 Keycloak VS Auth0 Feature comparison

  • چگونه بین Auth0 و Keycloak انتخاب کنیم؟ How to choose between Auth0 and Key-cloak

POC Keycloak Keycloak POC

  • پیکربندی Keycloak با Docker Image Configure Keycloak with Docker Image

  • پیکربندی UI انگولار برای ادغام با Keycloak Configure Angular UI to integrate with keycloak

  • پیکربندی Restaurant Service برای Keycloak Configure Restaurant Service For Keycloak

  • پیکربندی Menu Service در Keycloak Configure Menu Service in Key cloak

ورود اجتماعی با Keycloak Social Login with Key-cloak

  • ورود اجتماعی (Social Login) چیست؟ What is Social Login

  • نحوه عملکرد How it works

  • مزایای ورود اجتماعی Benefits of Social Login

  • چه مواردی را برای فعال‌سازی ورود اجتماعی تغییر دهیم؟ What all to change for social login enablement

  • پیکربندی ورود اجتماعی گوگل در Keycloak Configure Google social Login in keycloak

  • ورود اجتماعی گیت‌هاب در Keycloak Github social login in key cloak

منابع Resources

  • لینک‌های گیت (Git urls) Git urls

  • یادداشت‌ها Notes

  • فایل زیپ کد منبع POCهای میانی Intermediate POCs Source code zip

  • کدهای زیپ تکمیلی More zip code

محتوای تکمیلی Additional content

  • چرا باید از HTTP Basic Authentication اجتناب کرد؟ Why Avoid HTTP Basic Authentication ?

نمایش نظرات

[جدید] آموزش جامع Spring Security 7 به همراه OAuth2، JWT، Auth0 و Keycloak
جزییات دوره
13.5 hours
322
(آخرین آپدیت)
1,049
4.7 از 5
دارد
دارد
دارد
Code Decode
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Code Decode Code Decode

تیمی از مهندسین که در چندین MNC کار می کنند