دوره آموزشی
دوبله زبان فارسی
آموزش 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
مشخصات آموزش
آموزش Spring Security 7 + OAuth2 + JWT + Auth0 + Keycloak [جدید]
- تاریخ به روز رسانی: 1405/04/12
- سطح دوره:Alls
- تعداد درس:318
- مدت زمان :13:24:10
- حجم :5.7GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy