دوره آموزشی
The Great Courses
دوبله زبان فارسی

آموزش Spring Security 7 + OAuth2 + JWT + Auth0 + Keycloak [جدید]

آموزش Spring Security 7 + OAuth2 + JWT + Auth0 + Keycloak [جدید]

✅ سرفصل و جزئیات آموزش

آنچه یاد خواهید گرفت:

  • به معماری Spring Security 7؛ شامل احراز هویت، مجوزدهی، زنجیره فیلترهای امنیتی و جریان داخلی درخواست‌ها مسلط شوید.
  • احراز هویت کاربران را با استفاده از UserDetailsService ،PasswordEncoder و مدیریت کاربران مبتنی بر پایگاه داده پیاده‌سازی کنید.
  • تفاوت نقش‌ها و اختیارات را درک کنید و کنترل دسترسی مبتنی بر نقش (RBAC) و مبتنی بر ویژگی (ABAC) را در اپلیکیشن های واقعی پیاده‌سازی کنید.
  • امنیت در سطح اندپوینت و سطح متد را با استفاده از PreAuthorize@ و PostAuthorize@ اعمال کنید.
  • تطابق‌دهنده‌های درخواست شامل Ant ،MVC ،Regex و رویکردهای مدرن Spring Security 6 را درک کنید.
  • به اصول OAuth2؛ شامل بازیگران، دامنه‌ها، جریان‌ها و معماری مجوزدهی امن مسلط شوید.
  • جریان کد مجوزدهی و جریان PKCE را که در وب اپلیکیشن های مدرن و موبایل استفاده می‌شوند، پیاده‌سازی کنید.
  • جریان اعتبارنامه‌های مشتری را برای ارتباط امن ماشین‌به‌ماشین پیاده‌سازی کنید.
  • جریان توکن تازه‌سازی را پیاده‌سازی کنید و چرخه عمر توکن و بهترین شیوه های امنیتی را درک کنید.
  • به امنیت JWT؛ شامل ساختار توکن، ادعاها، امضا، تأیید و رمزنگاری کلید عمومی/خصوصی مسلط شوید.
  • اعتبارسنجی JWT را با استفاده از JwtDecoder و JwtAuthenticationConverter در Spring Boot پیاده‌سازی کنید.
  • OIDC (OpenID Connect) را درک کنید و چگونگی عملکرد لایه هویت بر روی OAuth2 را بیاموزید.
  • معماری ورود یک‌بارمصرف (SSO) را با استفاده از OAuth2 و OIDC پیاده‌سازی کنید.
  • محافظت CSRF را درک کنید و بدانید چرا Spring Security به‌صورت پیش‌فرض CSRF را فعال می‌کند.
  • پیکربندی CORS را پیاده‌سازی کنید و رفتار امنیتی بین‌سایتی را درک کنید.
  • Auth0 را؛ شامل اپلیکیشن ها، APIها، مخاطب، نقش‌ها و نگاشت مجوزها در JWT پیاده‌سازی کنید.
  • Keycloak را؛ شامل قلمرو، مشتریان، نقش‌ها، گروه‌ها و پیکربندی تأمین‌کننده هویت پیاده‌سازی کنید.
  • سوشیال لاگین را با استفاده از Google و GitHub با OAuth2 / OIDC پیاده‌سازی کنید.
  • کنترل دسترسی مبتنی بر نقش (RBAC) را در میکروسرویس‌ها با استفاده از نقش‌ها و مجوزهای استخراج‌شده از توکن‌های JWT پیاده‌سازی کنید.
  • تفاوت JWT و توکن‌های مبهم را درک کنید و بدانید هر استراتژی توکن چه زمانی باید استفاده شود.
  • معماری امنیتی سرتاسری مورد استفاده در اپلیکیشن های سازمانی واقعی را طراحی کنید.
  • یک اپلیکیشن فول استک با Angular + Spring Boot بسازید که با Spring Security امن شده باشد.
  • یک اثبات مفهوم (POC) فول استک با Auth0 بسازید که ورود، نقش‌ها، مجوزها و APIهای امن‌شده با JWT را پیاده‌سازی کند.
  • یک اثبات مفهوم (POC) فول استک با Keycloak بسازید که قلمرو، مشتریان، نقش‌ها و میکروسرویس‌های امن را پیاده‌سازی کند.
  • جریان کامل احراز هویت را از ورود در فرانت‌اند تا APIهای امن بک‌اند پیاده‌سازی کنید.
  • بهترین شیوه های امنیتی را اعمال کنید و از اشتباهات رایج در سیستم‌های تولیدی جلوگیری کنید.
  • تفاوت‌های Keycloak و Auth0 را درک کنید و بدانید چه زمانی هرکدام را انتخاب کنید.

پیش‌نیازهای دوره

  • دانش اولیه از Java و Spring Boot
  • درک از APIهای REST و مفاهیم HTTP
  • آشنایی اولیه با Angular یا فرانت‌اند مفید است، اما الزامی نیست.
  • نیازی به دانش قبلی از Spring Security، OAuth2 یا JWT نیست.
  • سیستمی که بتواند Java، IDE و مرورگر را اجرا کند.

توضیحات دوره

قرار است چه چیزهایی را پوشش دهیم

مبانی Spring Security

  • تسلط به امنیت
  • امنیت در Spring Boot و میکروسرویس‌ها
  • چرا برای اپلیکیشن Spring Boot خود به امنیت نیاز دارید؟
  • Spring Security چیست؟
  • مفاهیم کلیدی Spring Security
  • احراز هویت
  • مجوزدهی
  • فیلترهای Servlet 
  • جایگزین‌های آن چیست؟
  • پیاده‌سازی امنیت - مسئولیت با چه کسی است
  • بیایید شروع کنیم!
  • چرا 401؟
  • جمع‌بندی
  • Spring Security: قرارداد بر پیکربندی
  • بازیگران کلیدی در چارچوب احراز هویت
  • جریان احراز هویت در Spring Security
  • بین‌های خودکار پیکربندی‌شده در Spring Security
  • UserDetailsService
  • PasswordEncoder

پیکربندی Spring Security

  • مقدمه‌ای بر POC 2
  • بازنویسی تنظیمات پیش‌فرض
  • سفارشی‌سازی پیکربندی Spring Security
  • چرا احراز هویت اکنون شکست می‌خورد؟
  • رفع احراز هویت به‌صورت گام‌به‌گام
  • تعریف اعتبارنامه‌های کاربر
  • افزودن کاربر به InMemoryUserDetailsManager
  • تعریف یک بین برای PasswordEncoder
  • چرا باید از احراز هویت پایه HTTP اجتناب کنیم؟

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

  • مدیریت کاربران
  • اجزای مدیریت کاربران
  • UserDetails
  • UserDetailsManager
  • User
  • سفارشی‌سازی سرویس جزئیات کاربر
  • POC 3
  • ایجاد جدول کاربر و اختیار
  • نگاشت جدول کاربر و اختیارات
  • چرا اختیارات به‌صورت فوری واکشی می‌شوند؟
  • بازیابی اختیارات ذخیره‌شده از متن امنیتی

مجوزدهی

  • مجوزدهی
  • مجوزدهی چگونه کار می‌کند؟
  • قرار است چه چیزهایی یاد بگیریم؟
  • اختیار اعطاشده
  • تفاوت بین اختیارات و نقش‌ها
  • سطوح پیاده‌سازی مجوزدهی
  • مجوزدهی در سطح اندپوینت

زنجیره فیلترهای امنیتی

  • زنجیره فیلترهای امنیتی
  • تعریف یک زنجیره فیلتر
  • تغییر دادن زنجیره فیلتر
  • چرا هنوز 403؟
  • ()anyRequest().authenticated
  • ()anyRequest().permitAll
  • ()anyRequest().hasAuthority
  • ()anyRequest().hasAnyAuthority
  • نقش
  • ()anyRequest().hasRole
  • ()anyRequest().hasAnyRole
  • 401 در برابر 403
  • ()anyRequest().access
  • مزیت ()anyRequest().access
  • عیب ()anyRequest().access()
  • ()anyRequest().denyAll

تطابق‌دهنده‌های درخواست

  • متدهای تطابق‌دهنده
  • فهرست همه متدهای تطابق‌دهنده
  • تطابق‌دهنده درخواست
  • متدهای تطابق‌دهنده درخواست
  • تشبیه دنیای واقعی
  • ()requestMatchers در این تنظیم چگونه کار می‌کند؟
  • قطعه کد

انواع تطابق‌دهنده‌ها

  • تطابق‌دهنده Ant
  • متدهای تطابق‌دهنده ANT
  • چرا محبوب بود؟
  • نمونه در Spring Security 5.x
  • چرا در Spring Security 6+ منسوخ شد؟
  • تطابق‌دهنده MVC
  • متدهای تطابق‌دهنده MVC
  • چرا استفاده می‌شد؟
  • تطابق‌دهنده Regex
  • ()regexMatchers
  • چرا از آن استفاده کنیم؟
  • تطابق‌دهنده نوع ارسال‌کننده
  • هدف - DispatcherType چیست؟
  • تطابق‌دهنده مسیر Servlet
  • هدف
  • آیا در اپلیکیشن Spring Boot واقعاً مرتبط است؟
  • ترکیب همه متدهای تطابق‌دهنده

امنیت در سطح متد

  • مجوزدهی در سطح متد
  • الان در چه وضعیتی هستیم؟
  • آیا می‌توان از Spring Security در اپلیکیشن های غیروب استفاده کرد؟
  • کجا می‌توان امنیت در سطح متد را اعمال کرد؟
  • چرا از امنیت در سطح متد استفاده کنیم؟
  • نقش احراز هویت در فعال‌سازی امنیت در سطح متد
  • چرا نباید همراه با امنیت در سطح متد از ()permitAll استفاده کرد؟
  • قطعه کد
  • فعال‌سازی امنیت در سطح متد
  • متد جدید فعال‌سازی مجوزدهی در سطح متد
  • در پشت صحنه چه اتفاقی می‌افتد؟
  • چرا به آن «جنبه پشت صحنه» گفته می‌شود؟
  • آیا با مجوزدهی در سطح متد می‌توان از کلاس خدایی جلوگیری کرد؟
  • بهترین شیوه
  • اولویت قوانین: پیکربندی امنیتی در برابر مجوزدهی در سطح متد
  • ملاحظه عملکرد: مجوزدهی در سطح متد در برابر سطح فیلتر
  • چگونه امنیت در سطح متد فراتر از فیلترها عمل می‌کند؟
  • PreAuthorize@ چندخطی برای قوانین امنیتی پیچیده
  • معایب قوانین چندخطی
  • فراتر رفتن از SpEL: بررسی‌های امنیتی مبتنی بر بین
  • مجوزدهی پس از اجرا
  • تفاوت بین PreAuthorize@ و PostAuthorize@

فیلترها در امنیت سطح متد

  • فیلتر پیش از اجرا
  • فیلتر پیش از اجرا - نکات کلیدی
  • فیلتر پس از اجرا - نکات کلیدی
  • اشتباهات رایج فیلتر پس از اجرا
  • فیلتر پیش از اجرا در برابر فیلتر پس از اجرا
  • @Pre/@PostAuthorize در برابر @Pre/@PostFilter

مبانی OAuth 2 و OIDC

  • OAuth 2 و OIDC
  • مبانی
  • بازیگران/نقش‌ها در OAuth2
  • جریان OAuth 2
  • راه‌حل OAuth 2.0
  • چرا این موضوع قدرتمند است؟
  • مراحل در OAuth 2
  • چگونه توکن را دریافت کنیم؟
  • هسته اصلی چگونگی کار OAuth2 + Spring Security
  • انواع اعطا
  • انواع نوع‌های اعطا
  • نوع‌های اعطای منسوخ‌شده
  • اصل امنیتی اصلی OAuth
  • چرا نوع اعطای رمزعبور منسوخ شد؟
  • جایگزین مدرن
  • چرا نوع اعطای ضمنی منسوخ شد؟
  • جمع‌بندی

جریان کد مجوزدهی

  • جریان کد مجوزدهی
  • نوع اعطای کد مجوزدهی چیست؟
  • جریان گام‌به‌گام
  • مزایا
  • معایب

جریان کد مجوزدهی با PKCE

  • PKCE چیست؟
  • چرا PKCE معرفی شد؟
  • بازیگران
  • جریان کد مجوزدهی با PKCE - گام‌به‌گام
  • PKCE چگونه از حملات جلوگیری می‌کند
  • تأییدکننده و چالش چگونه کار می‌کنند؟
  • تشبیه دنیای واقعی: قفل و کلید
  • جمع‌بندی جریان PKCE
  • کد مجوزدهی در برابر کد مجوزدهی + PKCE
  • نکاتی که باید به خاطر بسپارید

جریان اعتبارنامه‌های مشتری

  • نوع اعطای اعتبارنامه‌های مشتری
  • اعطای اعتبارنامه‌های مشتری چیست؟
  • چه زمانی از آن استفاده کنیم؟
  • بازیگران
  • جریان (گام‌به‌گام)
  • پاسخ معمول توکن
  • متدهای احراز هویت مشتری با سرور مجوزدهی
  • نگاشت دامنه‌ها → اختیارات چگونه کار می‌کند؟
  • دامنه‌ها و اختیارات
  • توکن‌ها: JWT در برابر مبهم
  • ملاحظات امنیتی / بهترین شیوه ها
  • اشتباهات و نکات مهم

جریان توکن تازه‌سازی

  • نوع اعطای توکن تازه‌سازی
  • توکن تازه‌سازی چیست؟
  • چرا توکن‌های تازه‌سازی وجود دارند؟
  • چه کسانی از جریان توکن تازه‌سازی استفاده می‌کنند؟
  • جریان نوع اعطای توکن تازه‌سازی
  • توکن‌های تازه‌سازی ثابت (قابل استفاده مجدد)
  • توکن‌های تازه‌سازی چرخشی (یک‌بارمصرف)
  • سرورهای OAuth2 چگونه تصمیم می‌گیرند؟
  • مشتریان چه کاری باید انجام دهند؟
  • عمرهای کلیدی توکن
  • چرا توکن‌های تازه‌سازی حساس هستند؟
  • جریان توکن تازه‌سازی در برابر جریان توکن دسترسی

توکن‌ها

  • توکن مبهم چیست؟
  • توکن مبهم چگونه کار می‌کند؟
  • پاسخ درون‌نگری
  • توکن‌های غیرمبهم در برابر توکن‌های مبهم

JWT

  • JWTها
  • JWT چیست؟
  • ساختار اولیه JWT
  • JWT چگونه کار می‌کند؟
  • متدهای امضای JWT
  • ادعاهای رایج در JWT
  • JWTها چگونه تأیید می‌شوند؟
  • کلیدهای خصوصی و عمومی
  • /jwks.json چیست؟
  • چرا JWTها این‌قدر محبوب هستند؟
  • محدودیت‌ها / مشکلات رایج

OIDC

  • OIDC
  • OIDC چیست؟
  • جریان کد مجوزدهی با PKCE
  • مثال واقعی (ورود با Google)
  • چرا OIDC به وجود آمد؟
  • OIDC واقعاً چیست؟
  • اجزای اصلی در OIDC
  • توکن هویت
  • ادعاهای استاندارد در توکن هویت
  • دامنه‌های OIDC
  • اندپوینت های OIDC
  • مزایای OIDC
  • اشتباهات رایج
  • Nonce
  • چرا Nonce؟

SSO

  • SSO
  • SSO چیست؟
  • بازیگران در SSO
  • مراحل SSO
  • چرا SSO کار می‌کند؟
  • اشتباهات رایج SSO
  • مزیت امنیتی SSO
  • سناریوهای خروج از SSO
  • چرا OAuth2 + OIDC برای SSO الزامی هستند؟

CSRF

  • CSRF
  • CSRF چیست؟
  • رفتار اصلی مرورگر
  • چرا CSRF خطرناک است؟
  • وب‌سایت‌ها چگونه CSRF را متوقف می‌کنند؟
  • چرا Spring Security به‌صورت پیش‌فرض CSRF را فعال می‌کند؟

CORS

  • CORS
  • CORS چیست؟
  • چرا CORS وجود دارد؟
  • خاستگاه چیست؟
  • قانون CORS
  • پیکربندی CORS در Spring Boot
  • اشتباهات رایج CORS
  • CORS در برابر CSRF

POC فول استک

  • POC فول استک
  • معرفی اپلیکیشن Foodify
  • رابط کاربری اپلیکیشن Foodify در POC
  • بک‌اند اپلیکیشن Foodify در POC
  • پیکربندی‌های Auth0
  • پیاده‌سازی Spring Security

Auth0

  • Auth0 چیست؟
  • اجزای کلیدی Auth0
  • در زمان ورود چه اتفاقی می‌افتد؟
  • چرا از Auth0 استفاده کنیم؟
  • احراز هویت چندعاملی
  • سوشیال لاگین
  • هویت متمرکز
  • بهره‌وری توسعه‌دهنده
  • چه زمانی باید خودتان بسازید؟

نقش‌ها و مجوزها

  • تفاوت احراز هویت و مجوزدهی چیست؟
  • OAuth2 / OIDC چیست؟
  • معماری اثبات مفهوم سرتاسری با Auth0
  • اپلیکیشن در Auth0 چیست؟
  • API در Auth0 چیست؟
  • مخاطب چیست؟
  • نقش‌ها چیستند؟
  • مجوزها چیستند؟
  • نقش‌ها در برابر مجوزها
  • RBAC
  • چرا RBAC استفاده می‌شود؟
  • چرا نقش‌ها و مجوزها در JWT؟

پردازش JWT در Spring Security

  • JwtDecoder چیست؟
  • JwtAuthenticationConverter چیست؟
  • اختیار در Spring چیست؟
  • پیشوند ROLE_
  • اشتباهات رایج

مراحل پیاده‌سازی

  • مراحل پیاده‌سازی Spring Security
  • مراحل راه‌اندازی Auth0
  • مراحل افزودن نقش‌ها به توکن
  • در بک‌اند چه اتفاقی می‌افتد؟
  • جریان نهایی (سرتاسری)
  • مفاهیم کلیدی
  • اشتباهات رایج

Keycloak

  • Keycloak
  • Keycloak چیست؟
  • معماری سطح بالا
  • اصطلاحات اصلی
  • انواع مشتریان
  • انواع نقش
  • دامنه مشتری
  • گروه‌ها
  • تأمین‌کننده هویت
  • جریان‌ها
  • Keycloak در برابر Auth0
  • مقایسه قابلیت‌ها
  • چه کسی باید Keycloak را انتخاب کند و چه کسی Auth0؟

سوشیال لاگین

  • سوشیال لاگین
  • سوشیال لاگین چیست؟
  • سوشیال لاگین چگونه کار می‌کند؟
  • مزایای سوشیال لاگین
  • پیکربندی تأمین‌کنندگان هویت در Keycloak
  • مراحل ورود با Google
  • مراحل سوشیال لاگین با GitHub

این دوره برای چه کسانی مناسب است؟

  • توسعه‌دهندگان Java که می‌خواهند Spring Security را عمیقاً بیاموزند.
  • توسعه‌دهندگانی که APIهای REST امن را با Spring Boot می‌سازند.
  • توسعه‌دهندگانی که برای سوالات مصاحبه Spring Security آماده می‌شوند.
  • توسعه‌دهندگان بک‌اند یا فول استک که با میکروسرویس‌ها کار می‌کنند.
  • توسعه‌دهندگانی که می‌خواهند تجربه عملی با OAuth2 ،JWT ،Auth0 و Keycloak داشته باشند.
  • مهندسانی که اپلیکیشن سازمانی امن طراحی می‌کنند.

آموزش Spring Security 7 + OAuth2 + JWT + Auth0 + Keycloak [جدید]

  • چرا برای اپلیکیشن Spring Boot خود به امنیت نیاز دارید؟ 01:16
  • Spring Security چیست؟ 03:02
  • مفاهیم کلیدی Spring Security 01:19
  • احراز هویت چیست؟ 02:31
  • مجوزدهی چیست؟ 03:45
  • فیلترهای Servlet چیستند؟ 00:47
  • جایگزین‌های Spring Security چیست؟ 01:24
  • پیاده‌سازی Spring Security - مسئولیت با چه کسی است؟ 01:50
  • آزمون اولیه Spring Security None
  • پیاده‌سازی اثبات مفهوم 15:51
  • چرا 401؟ 01:35
  • جمع‌بندی 01:04
  • Spring Security: قرارداد بر پیکربندی 01:35
  • اجزای احراز هویت 04:56
  • UserDetailService چیست؟ 02:28
  • PasswordEncoder چیست 01:14
  • پیاده‌سازی POC 2 07:45
  • اجزای مدیریت کاربران 08:33
  • قرارداد UserDetails 01:15
  • قرارداد UserDetailsManager 00:54
  • User 03:03
  • جمع‌بندی 01:39
  • سفارشی‌سازی سرویس جزئیات کاربر 00:56
  • پیاده‌سازی POC 3 12:26
  • بازیابی احراز هویت ذخیره‌شده از متن امنیتی 02:13
  • مجوزدهی چیست؟ 02:42
  • مجوزدهی چگونه کار می‌کند؟ 01:36
  • قرار است چه چیزهایی یاد بگیریم؟ 00:30
  • اختیار اعطاشده 01:57
  • تفاوت بین اختیار و نقش 01:24
  • سطوح مختلف مجوزدهی 00:47
  • مجوزدهی در سطح اندپوینت 00:47
  • زنجیره فیلترهای امنیتی 03:27
  • تغییر زنجیره فیلتر بر اساس نیاز کسب‌وکار 05:10
  • قانون احرازهویت‌شده 01:31
  • قانون اجازه به همه 02:44
  • قانون دارای اختیار 04:27
  • قانون دارای هر اختیاری 04:03
  • قانون دارای نقش 09:12
  • متد دسترسی برای ارزیابی قانون 06:19
  • مزایای متد دسترسی 01:55
  • معایب متد دسترسی 03:13
  • قانون رد همه 03:19
  • مقدمه‌ای بر متدهای تطابق‌دهنده 03:32
  • فهرست همه متدهای تطابق‌دهنده 02:13
  • مقدمه‌ای بر تطابق‌دهنده درخواست 02:11
  • تشبیه دنیای واقعی تطابق‌دهنده درخواست 03:25
  • نمونه کد تطابق‌دهنده درخواست 03:53
  • مقدمه تطابق‌دهنده Ant 02:22
  • چرا تطابق‌دهنده Ant این‌قدر محبوب بود؟ 00:32
  • قطعه کد تطابق‌دهنده Ant 00:31
  • تشبیه واقعی تطابق‌دهنده Ant 00:56
  • چرا تطابق‌دهنده Ant منسوخ شد؟ 00:36
  • مقدمه‌ای بر تطابق‌دهنده MVC 01:13
  • چرا تطابق‌دهنده MVC مفید بود؟ 00:21
  • نمونه کد تطابق‌دهنده MVC 00:58
  • تشبیه دنیای واقعی تطابق‌دهنده MVC 00:55
  • چرا تطابق‌دهنده MVC منسوخ شد؟ 00:56
  • تطابق‌دهنده درخواست چگونه جایگزین تطابق‌دهنده‌های قدیمی Ant و MVC می‌شود؟ 01:03
  • مقدمه‌ای بر متد تطابق‌دهنده Regex 00:33
  • چرا و کجا از تطابق‌دهنده Regex استفاده کنیم؟ 00:32
  • نمونه کد تطابق‌دهنده Regex 02:12
  • تشبیه دنیای واقعی تطابق‌دهنده Regex 00:33
  • مقدمه‌ای بر تطابق‌دهنده نوع Dispatch 02:18
  • قطعه کد برای تطابق‌دهنده نوع Dispatch 00:40
  • مقدمه‌ای بر تطابق‌دهنده مسیر Servlet 00:52
  • تشبیه دنیای واقعی تطابق‌دهنده مسیر Servlet 00:56
  • تطابق‌دهنده مسیر Servlet چه زمانی واقعاً مفید است؟ 01:54
  • قطعه کد برای تطابق‌دهنده مسیر Servlet 00:46
  • چگونه متدهای مختلف تطابق‌دهنده را ترکیب کنیم؟ 00:42
  • جمع‌بندی همه متدهای تطابق‌دهنده 01:58
  • مجوزدهی در سطح متد: الان در چه وضعیتی هستیم؟ 01:14
  • آیا می‌توان از Spring Security برای غیر وب اپلیکیشن ها استفاده کرد؟ 01:23
  • قوانین مجوزدهی در سطح متد را کجا می‌توان اعمال کرد 02:19
  • چرا از امنیت در سطح متد استفاده کنیم؟ 01:29
  • نقش احراز هویت 01:35
  • قطعه کد 01:05
  • چگونه امنیت در سطح متد را فعال کنیم؟ 01:42
  • در پشت صحنه چه اتفاقی می‌افتد؟ 01:38
  • چرا به آن جنبه پشت صحنه گفته می‌شود؟ 00:42
  • جمع‌بندی نشانه‌گذاری فعال‌سازی امنیت در سطح متد 01:15
  • جلوگیری از God Class 01:50
  • بهترین شیوه ها 01:22
  • کدام اولویت دارد: فیلتر یا احراز هویت در سطح متد 01:34
  • جمع‌بندی 00:24
  • ملاحظه عملکرد 01:26
  • چگونه امنیت در سطح متد فراتر از فیلترها عمل می‌کند؟ 05:39
  • قطعه کد - methodLevelSec 06:02
  • جمع‌بندی - MethodLevelSecurityBeyondFilters 01:35
  • @PreAuthorize چندخطی برای قوانین امنیتی پیچیده 02:03
  • قطعه کد MultiLine @PreAuthorize 04:18
  • عیب قوانین چندخطی 01:45
  • فراتر رفتن از SpEL: بررسی‌های امنیتی مبتنی بر بین 01:35
  • دمو CustomBeanForPreAuthorizeAnnotationWithSPEL 07:19
  • مجوزدهی پس از اجرا 03:14
  • قطعه کد Post Authorize 05:03
  • مجوزدهی پیش از اجرا در برابر پس از اجرا 02:12
  • کاربرد مجوزدهی پس از اجرا 02:27
  • همه‌چیز درباره فیلتر پیش از اجرا 03:58
  • نمایش زنده برای فیلتر پیش از اجرا 04:17
  • فیلترهای پس از اجرا 06:07
  • اشتباهات رایج فیلتر پس از اجرا 05:40
  • فیلتر پیش از اجرا در برابر فیلتر پس از اجرا 04:05
  • مجوزدهی در برابر فیلتر (Pre/Post) 03:54
  • بازیگران در OAuth2 07:30
  • بدون OAuth2 چه اتفاقی می‌افتد؟ 01:22
  • جریان OAuth2 06:47
  • چرا این‌قدر قدرتمند است؟ 01:02
  • مراحل OAuth2 02:01
  • تشبیه دنیای واقعی 01:30
  • هسته اصلی OAuth2 و Spring Security 01:08
  • مقدمه OAuth 01:55
  • نوع اعطا چیست؟ 00:26
  • انواع نوع‌های اعطا 02:06
  • اصل امنیتی اصلی OAuth 03:05
  • نوع اعطای رمزعبور چه بود؟ 02:37
  • چرا نوع اعطای رمزعبور بد بود؟ 00:59
  • جایگزین مدرن نوع اعطای رمزعبور 00:41
  • نوع اعطای ضمنی چیست؟ 00:37
  • چرا نوع اعطای ضمنی بد بود؟ 00:40
  • جایگزین مدرن برای نوع اعطای ضمنی 00:24
  • جمع‌بندی نوع‌های اعطای منسوخ‌شده 00:49
  • مقدمه‌ای بر جریان نوع اعطای کد مجوزدهی 08:17
  • مراحل در جریان نوع اعطای کد مجوزدهی 12:03
  • ارتباط 1-1 بین بازیگران در جریان کد مجوزدهی 02:08
  • مزایای نوع اعطای کد مجوزدهی 01:51
  • معایب نوع اعطای کد مجوزدهی 01:31
  • PKCE چیست؟ 01:13
  • چرا PKCE؟ 00:38
  • بازیگران در PKCE 00:55
  • مراحل سطح بالای PKCE 05:19
  • جزئیات مراحل در PKCE 07:34
  • PKCE چگونه بسیار امن‌تر است و از حملات جلوگیری می‌کند؟ 03:23
  • تشبیه واقعی 03:01
  • تأییدکننده و چالش چگونه کار می‌کنند؟ 03:57
  • تشبیه دنیای واقعیِ تأییدکننده و چالش 01:08
  • جمع‌بندی PKCE 01:30
  • نوع اعطای کد مجوزدهی در برابر PKCE 01:32
  • نکاتی که باید به خاطر بسپارید 01:53
  • نوع اعطای اعتبارنامه‌های مشتری چیست؟ 00:49
  • چه زمانی از نوع اعطای اعتبارنامه‌های مشتری استفاده کنیم؟ 01:13
  • بازیگران در نوع اعطای اعتبارنامه‌های مشتری 01:29
  • مراحل نوع اعطای اعتبارنامه‌های مشتری 02:51
  • نمودار جریان نوع اعطای اعتبارنامه‌های مشتری 02:30
  • پاسخ معمول توکن 00:34
  • متدهای احراز هویت در نوع اعطای اعتبارنامه‌های مشتری 01:47
  • دامنه و اختیار چگونه کار می‌کنند؟ 01:43
  • JWT در برابر توکن‌های مبهم 02:08
  • بهترین شیوه ها در نوع اعطای اعتبارنامه‌های مشتری 03:16
  • اشتباهات رایج در نوع اعطای اعتبارنامه‌های مشتری 01:57
  • نوع اعطای توکن تازه‌سازی چیست؟ 02:41
  • چرا نوع اعطای توکن تازه‌سازی؟ 02:10
  • چه کسانی می‌توانند از نوع اعطای توکن تازه‌سازی استفاده کنند؟ 01:16
  • نمودار توالی جریان نوع اعطای توکن تازه‌سازی 04:45
  • جریان گام‌به‌گام نوع اعطای توکن تازه‌سازی 06:47
  • انواع خط‌مشی‌های سرور مجوزدهی در رابطه با نوع اعطای توکن تازه‌سازی 01:46
  • توکن‌های تازه‌سازی ثابت و قابل استفاده مجدد 02:01
  • توکن‌های تازه‌سازی چرخشی (یک‌بارمصرف) 02:10
  • کدام سرور مجوزدهی از کدام خط‌مشی استفاده می‌کند؟ 01:19
  • بهترین شیوه ها برای نوع اعطای توکن تازه‌سازی 01:04
  • تشبیه برای توکن‌های تازه‌سازی ثابت در برابر چرخشی 00:59
  • چرخه عمر توکن‌های ثابت در برابر چرخشی 00:34
  • چرا توکن‌های تازه‌سازی حساس هستند؟ 00:49
  • ملاحظات امنیتی توکن‌های تازه‌سازی 01:11
  • جریان توکن دسترسی در برابر جریان توکن تازه‌سازی 02:03
  • جمع‌بندی نوع اعطای توکن تازه‌سازی 01:13
  • توکن مبهم چیست؟ 01:56
  • توکن مبهم چگونه کار می‌کند؟ 05:38
  • مراحل و پاسخ سرور مجوزدهی برای توکن مبهم 03:49
  • توکن‌های غیرمبهم چیستند؟ 02:08
  • توکن‌های غیرمبهم چگونه کار می‌کنند؟ 01:28
  • انواع توکن‌های غیرمبهم 01:37
  • چرا از توکن غیرمبهم استفاده کنیم؟ 02:21
  • معایب توکن غیرمبهم 01:43
  • توکن‌های مبهم در برابر غیرمبهم 02:15
  • تشبیه واقعی - کارت پرواز 01:10
  • JWT چیست؟ 02:03
  • ساختار توکن JWT 04:53
  • توکن JWT چگونه گردش می‌کند؟ 01:35
  • متدهای امضای JWT 00:44
  • انواع ادعاها در JWT 03:52
  • تشبیه واقعی خطوط هوایی برای JWT 01:17
  • JWTها چگونه تأیید می‌شوند؟ 01:46
  • کلید خصوصی و عمومی چیست و مالک آن‌ها کیست؟ 00:56
  • JWKS.json چیست؟ 00:49
  • پاسخ jwks.json 02:09
  • تشبیه پاسخ JWKs 06:41
  • جمع‌بندی همه سرآیندهای jwks.json 00:24
  • سرور منبع چگونه توکن JWT را به‌صورت محلی تأیید می‌کند؟ 03:20
  • چرا JWKS لازم است؟ 01:29
  • مثال JWKS تیم‌ها 01:43
  • تشبیه سیستم دفترخانه 00:47
  • چرا از JWTها استفاده کنیم؟ 01:37
  • محدودیت‌ها و مشکلات JWTها 02:09
  • JWK و JWKS 01:10
  • استفاده از JWT در OAuth2 و OIDC 00:54
  • جمع‌بندی تشبیه تیم‌ها برای JWT 01:16
  • OIDC چیست؟ 04:11
  • مثال واقعی برای OIDC 02:36
  • اگر OAuth2 احراز هویت را فراهم می‌کند، چرا OIDC لازم است؟ 07:41
  • چرا جزئیات احراز هویت را نمی‌توان از توکن دسترسی دریافت کرد؟ 02:57
  • تشبیه دنیای واقعی: چرا توکن دسترسی نه؟ 01:07
  • احراز هویت واقعاً کجا انجام می‌شود؟ 04:00
  • کدام نوع اعطا توکن هویت برمی‌گرداند؟ 02:12
  • چرا OIDC 01:47
  • تشبیه دنیای واقعی OIDC 01:06
  • اجزای اصلی OIDC 01:42
  • OIDC چه چیزی به OAuth2 اضافه می‌کند؟ 01:15
  • توکن هویت چیست؟ 03:15
  • ادعاهای استاندارد در توکن هویت 02:35
  • دامنه‌های OIDC 01:41
  • Endpoints که هر ارائه‌دهنده OIDC باید فراهم کند 01:45
  • جریان گام‌به‌گام OIDC 04:51
  • OIDC در کنار OAuth2 کجا قرار می‌گیرد؟ 00:56
  • نمونه Endpoint با Microsoft 01:48
  • OIDC چگونه امن می‌شود؟ 01:06
  • مزایای OIDC 01:03
  • ارائه‌دهندگان رایج OIDC 00:32
  • بدون OIDC چه چیزی از کار می‌افتد؟ 01:38
  • اشتباهات رایج OIDC 01:19
  • جمع‌بندی OIDC 02:02
  • Nonce چیست و چرا برای امنیت در OIDC از آن استفاده می‌شود؟ 03:19
  • SSO چیست؟ 01:52
  • بازیگران در SSO 01:21
  • مراحل SSO با مثال واقعی 07:08
  • چرا SSO این‌قدر روان کار می‌کند؟ 00:28
  • اشتباه رایج SSO 01:05
  • مزایای امنیتی SSO 02:36
  • سناریوهای خروج از SSO 02:02
  • چرا OAuth2 و OIDC برای SSO 01:19
  • جمع‌بندی SSO 01:12
  • CSRF چیست؟ 03:47
  • رفتار اصلی مرورگر 01:09
  • تشبیه واقعی برای CSRF 01:43
  • چرا CSRF خطرناک است؟ 00:39
  • برداشت نادرست رایج درباره CSRF 00:29
  • وب‌سایت‌ها چگونه حملات CSRF را متوقف می‌کنند؟ 01:01
  • CSRF چه زمانی رخ می‌دهد؟ 00:46
  • چرا در برابر CSRF ایمن هستیم؟ 03:40
  • آیا نوع‌های اعطا روی حملات CSRF تأثیری دارند 01:05
  • چرا Spring Security به‌صورت پیش‌فرض CSRF را فعال می‌کند؟ 01:12
  • نقشه نهایی اتصال 00:21
  • جمع‌بندی CSRF 01:11
  • CORS چیست؟ 00:44
  • چرا CORS وجود دارد؟ 01:04
  • تشبیه دنیای واقعی 01:13
  • CORS چه مشکلی را حل می‌کند؟ 01:49
  • خاستگاه چیست 01:55
  • با CORS و بدون CORS چه اتفاقی می‌افتد؟ 02:03
  • CORS برای بک‌اند نیست، بلکه برای مرورگرهاست 00:45
  • کاربرد قوانین CORS 00:22
  • چگونه رابط کاربری (UI) را بدون بروز مشکل CORS به بک‌اند متصل کنیم؟ 01:30
  • اشتباهات رایج CORS 00:24
  • CORS در برابر CSRF 00:55
  • مقدمه‌ای بر اثبات مفهوم اپلیکیشن Foodify 06:37
  • راه‌اندازی رابط کاربری Foodify بدون امنیت 08:36
  • پیکربندی بک‌اند میکروسرویس‌ها و اتصال‌های آن‌ها 09:06
  • نمایش سریع 01:33
  • Auth0 چیست؟ 00:47
  • تشبیه دنیای واقعی Auth0 00:42
  • Auth0 چه مشکلاتی را حل می‌کند؟ 01:24
  • Auth0 در معماری ما کجا قرار می‌گیرد؟ 01:53
  • اجزای کلیدی Auth0 01:21
  • جریان فنی Auth0 01:13
  • چرا به‌جای ساخت همه‌چیز توسط خودتان از Auth0 استفاده کنیم؟ 07:01
  • چه زمانی باید خودتان بسازید؟ 01:24
  • تشبیه ساده 01:12
  • مرور سریع 02:28
  • معماری با حضور Auth0 01:05
  • اپلیکیشن در اصطلاح Auth0 چیست؟ 00:40
  • چگونه در Auth0 یک اپلیکیشن ایجاد کنیم؟ 01:31
  • API در Auth0 چیست و چرا به آن نیاز داریم؟ 01:15
  • چگونه یک API ایجاد کنیم و چه چیزی در API قرار می‌گیرد؟ 02:16
  • APIهایی که اینجا پیکربندی شده‌اند چگونه از توکن‌ها استفاده می‌کنند؟ 00:38
  • تشبیه دنیای واقعی APIها 00:37
  • مخاطب چیست و چرا مهم است؟ 01:21
  • تشبیه دنیای واقعیِ جعبه تحویل برای مخاطب 01:36
  • مجوزها و نقش‌ها چیستند؟ 01:00
  • چرا مجوزها و آن‌ها را کجا اضافه می‌کنیم؟ 01:11
  • نقش‌ها در برابر مجوزها 02:03
  • RBAC چیست؟ 00:25
  • اجزای اصلی RBAC 00:48
  • RBAC چگونه کار می‌کند؟ 01:41
  • چرا RBAC و مزایای آن 00:34
  • جمع‌بندی RBAC 00:43
  • پیکربندی‌های فرانت‌اند در Auth0 24:32
  • پیکربندی امنیتی برای API رستوران با نمایش 200، 401 و 403 14:55
  • پیکربندی امنیتی در اثبات مفهوم سرویس منو 10:25
  • چرا نقش‌ها و مجوزها را به JWT اضافه می‌کنیم؟ 00:41
  • اگر نقش‌ها را به JWT اضافه نکنیم چه اتفاقی می‌افتد؟ 00:48
  • اگر نقش‌ها را به JWT اضافه کنیم چه اتفاقی می‌افتد؟ 01:10
  • جمع‌بندی افزودن نقش‌ها به توکن 00:31
  • چرا Auth0 به‌صورت پیش‌فرض نقش‌ها و مجوزها را در JWT اضافه نمی‌کند؟ 03:30
  • چرا JwtDecoder 02:32
  • JwtAuthenticationConverter چیست؟ 02:45
  • افزودن محرک سفارشی برای دریافت نقش‌ها 03:01
  • Keycloak چیست؟ 00:40
  • معماری سطح بالا و جایگاه Keycloak در آن 00:24
  • اصطلاحات اصلی 02:57
  • انواع مشتریان 00:52
  • انواع نقش در Keycloak 00:36
  • دامنه و گروه‌ها در Keycloak 00:39
  • پشتیبانی از ورودهای اجتماعی در Keycloak 00:12
  • جریان در Keycloak 01:06
  • مقایسه اصطلاحات Keycloak در برابر Auth0 02:59
  • مقایسه قابلیت‌های Keycloak در برابر Auth0 01:42
  • چگونه بین Auth0 و Keycloak انتخاب کنیم؟ 03:21
  • پیکربندی Keycloak با ایمیج داکر 10:31
  • پیکربندی رابط کاربری Angular برای یکپارچه‌سازی با Keycloak 10:49
  • پیکربندی سرویس رستوران برای Keycloak 07:41
  • پیکربندی سرویس منو در Keycloak 07:35
  • سوشیال لاگین چیست؟ 01:00
  • چگونه کار می‌کند؟ 01:16
  • مزایای سوشیال لاگین 00:47
  • برای فعال‌سازی سوشیال لاگین چه چیزهایی باید تغییر کند؟ 01:14
  • پیکربندی سوشیال لاگین Google در Keycloak 11:21
  • سوشیال لاگین GitHub در Keycloak 07:45
  • چرا باید از احراز هویت اولیه HTTP اجتناب کنیم؟ 01:25

7,988,000 1,997,000 تومان

مشخصات آموزش

آموزش Spring Security 7 + OAuth2 + JWT + Auth0 + Keycloak [جدید]

  • تاریخ به روز رسانی: 1405/04/12
  • سطح دوره:Alls
  • تعداد درس:318
  • مدت زمان :13:24:10
  • حجم :5.7GB
  • زبان:دوبله زبان فارسی
  • دوره آموزشی:AI Academy

آموزش های مرتبط

The Great Courses
3,769,000 753,800 تومان
  • زمان: 05:03:33
  • تعداد درس: 37
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
1,033,500 206,700 تومان
  • زمان: 01:23:15
  • تعداد درس: 8
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
9,779,500 1,955,900 تومان
  • زمان: 13:07:38
  • تعداد درس: 87
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
2,260,000 452,000 تومان
  • زمان: 03:02:02
  • تعداد درس: 14
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
795,000 159,000 تومان
  • زمان: 58:00
  • تعداد درس: 12
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
19,403,000 3,880,600 تومان
  • زمان: 26:02:40
  • تعداد درس: 175
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
8,508,000 1,701,600 تومان
  • زمان: 11:25:13
  • تعداد درس: 94
  • سطح دوره:
  • زبان: دوبله فارسی
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
1,833,000 366,600 تومان
  • زمان: 02:27:39
  • تعداد درس: 24
  • سطح دوره:
  • زبان: دوبله فارسی

آیا سوالی دارید؟

ما به شما کمک خواهیم کرد تا شغل و رشد خود را افزایش دهید.
امروز با ما تماس بگیرید