آموزش امنیت در اپلیکیشن های ASP.NET Core 3 با OAuth2 و OpenID Connect

Securing ASP.NET Core 3 with OAuth2 and OpenID Connect
تعداد ویدئو 92
زمان دوره 04:21:18
مترجم مرتضی گیتی
دوبلر مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش ویدئویی امنیت در اپلیکیشن های ASP.NET Core 3 با OAuth2 و OpenID Connect یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی ایمن سازی اپلیکیشن های ASP.NET Core 3 با OAuth2 و OpenID Connect است که با نام اصلی Securing ASP.NET Core 3 with OAuth2 and OpenID Connect از شرکت Pluralsight منتشر شده است.

کتابخانه ASP.NET Core Identity چیست؟

کتابخانه ASP.NET Core Identity یک واسط کاربری و یا یک user interface به منظور پیاده سازی عملیات login کردن در اپلیکشین های ASP.NET Core اضافه می کند. برای ایمیل کردن web API ها و یا SPA ها می توان از یکی از موارد زیر استفاده کرد.

  • Azura Active Directory
  •  Azura Active Directory B2C (Azure AD B2C)
  •  IdentityServer4

در واقع IdentityServer4 یک فریم ورک OpenID Connect و OAuth2 برای ASP.NET Core است و IdentityServer4 مباحث امنیتی زیر را پیاده سازی می کند.

  • Authentication as a Service (AaaS)
  • Single sign-on/off (SSO) در چندین اپلیکیشن تایپ مختلف
  • Access control برای API ها
  • Federation Gateway

یکی از موضوعات بسیار جذاب IdentityServer انعطاف پذیری آن در توسعه web application ها و database هایی است که به منظور ذخیره کردن اطلاعات کاربران و پسورد های آنها استفاده می شود. اگر در حال توسعه یک web application جدید با ASP.NET Core هستید، می توانید از ASP.NET Core Identity به عنوان‌ یک گزینه استفاده کنید.

Securing-ASP.NET-Core-3-with-OAuth2-and-OpenID-Connect-Snapshot

OAuth2 چیست؟

به بیان ساده OAuth2 یک authorization framework است که اجازه می دهد اپلیکیشن ها بتوانند دسترسی محدود به حساب های کاربری با استفاده از HTTP service را به دست بیاورد. این حساب های کاربری بر روی شبکه هایی از قبیل Facebook و GitHub و DigitalOcian می باشند. در واقع OAuth2 کمک می کند تا عملیات user authentication به سرویسی که اطلاعات مربوط به حساب کاربری را میزبانی کرده است واگذار بگرداند و نهایتا اپلیکیشن ما می تواند به اطلاعات حساب کاربری دسترسی پیدا کند. OAuth2 برای web application ها و desktop application ها و mobile device ها نیز دارای authorization flow های مختلفی است.

بررسی Role ها در OAuth2

فریم ورکOAuth2 ، Role های مختلفی را برای کار کردن تعریف می کند که در ادامه به آنها می پردازیم.

  • Resource Owner: این Entity میتواند دسترسی را به resource های محافظت شده فراهم کند. اغلب این Entity همان کاربر نهایی خواهد بود.
  • Resource Server: سروری که میزبانی resource های محافظت شده را در اختیار دارد Resource Server می باشد. این اغلب API است که شما امکان دسترسی پیدا کردن به آن را دارید.
  • Client: اپلیکیشنی که درخواست دسترسی به یک resource محافظت شده را به نمایندگی از Resource Owner صادر می کند Client می باشد.
  • Authorization Server: سروری که Resource Owner را authenticate می کند و access token ها را پس از انجام authorization مناسب صادر می نماید. در این مورد OAuth0 می تواند Authorization Server باشد.

OpenID Connect چیست؟

OpenID Connect به بیان ساده به آن OIDC نیز می گویند یک لایه identity است که سوار بر فریم ورک OAuth2.0 ایجاد می شود‌. این لایه identity اجازه می دهد تا third-party application ها بتوانند identity کاربر نهایی را بررسی کرده و اطلاعات معمول مربوط به user profile را بدست بیاورد. OIDC از JSON web token ها به بیان ساده به آنها JWT نیز می گویند استفاده می کند. برای بدست آوردن JSON web token ها می توانید از flow هایی که بر اساس استاندارد های OAuth2 تنظیم شده اند استفاده کنید. در حالی که OAuth2 بر روی resource acess و resourse sharing کار می کند OIDC در رابطه با user authentication پیاده سازی شده است. هدف از OIDC فراهم کردن قابلیتی برای یک login در چندین وبسایت است.

هربار که ما نیاز به login کردن در یک وبسایت با استفاده از OICD دارید در واقع در حال redirect شدن به وبسایت OpenID خود هستید که در آن login خواهید کرد و پس از آن به وبسایت اولیه باز گردانده خواهید شد. برای مثال اگر برای sign in کردن به OAuth0 از حساب کاربری گوگل خود استفاده می کنید در واقع دارید از OIDC استفاده می نمایید. پس از اینکه با موفقیت خود را در گوگل authenticate کردید و به OAuth2 اصطلاحا authorize دسترسی به اطلاعات خود را دادید گوگل این اطلاعات را به OAuth0 ارسال کرده و authentication انجام می شود. این اطلاعات در قالب یک JWT برگردانده خواهد شد. اما در ابتدا یک access token را دریافت می کنید و در صورت در خواست کردن می توانید یک ID token را نیز دریافت کنید.

سرفصل مطالب آموزش ویدئویی امنیت در اپلیکیشن های ASP.NET Core 3 با OAuth2 و OpenID
Connect

فصل اول: مقدمه دوره آموزشی 

  • مقدمه دوره آموزشی

فصل دوم: شروع بکار با امنیت در ASP.NET Core

  • مقدمه
  • پیش نیاز های این دوره آموزشی
  • معرفی Tooling ها
  • بررسی معماری اپلیکیشن و امنیت
  • استفاده کردن از یک Identity Provider مرکزی
  • معرفی کردن OAuth2
  • معرفی کردن OpenID Connect
  • معرفی کردن اپلیکیشن این دوره آموزشی
  • جمع بندی

فصل سوم: پیاده سازی Authentication با استفاده از OpenID Connect

  • مقدمه
  • پروتکل OpenID Connect چگونه کار می کند؟
  • کلاینت های Public و Confidential
  • بررسی Flow ها و Endpoint های OpenID Connect
  • بررسی OpenID Connect Flow برای ASP.NET Core
  • معرفی کردن IdentityServer4
  • راه اندازی عملی IdentityServer4
  • اضافه کردن عملی یک User Interface برای IdentityServer4
  • اضافه کردن User ها برای تست کردن
  • جمع بندی

فصل چهارم: ایمن کردن فرایند های User Authentication

  • مقدمه
  • بررسی Authorization Code Flow
  • پیکر بندی عملی IdentityServer برای Log In با استفاده از Authorization Code Flow
  • پیاده سازی عملی Logging In کردن با Authorization Code Flow
  • بررسی حملات Authorization Code Injection و PKCE
  • ارتباط Authorization Code Flow و PKCE
  • فعال سازی عملی PKCE Protection
  • پیاده سازی عملی Log out کردن از وب اپلیکیشن
  • پیاده سازی عملی Log out کردن از Identity Provider
  • پیاده سازی عملی Redirect کردن پس از Log out کردن
  • بررسی UserInfo Endpoint
  • ارتباط Authorization Code Flow و PKCE و UserInfo Endpoint
  • برگرداندن عملی Claim های بیشتر از UserInfo Endpoint
  • بررسی کردن یک Identity Token
  • جمع بندی

فصل پنجم: کار کردن با Claim ها در وب اپلیکیشن 

  • مقدمه
  • پیاده سازی عملی Claims Transformation: نگهداری Claim Type های اصلی
  • پیاده سازی عملی Claims Transformation: تغییر دادن Claim Collection
  • بدست آوردن اطلاعات بیشتر از طریق UserInfo Endpoint
  • پیاده سازی عملی فراخوانی UserInfo Endpoint
  • فراخوانی عملی UserInfo Endpoint برای بدست آوردن Claim های بیشتر
  • بررسی Role-based Authorization
  • پیاده سازی عملی Role-based Authorization: تضمین لحاظ شدن Role ها
  • پیاده سازی عملی Role-based Authorization: استفاده کردن از Role ها در View
  • پیاده سازی عملی Role-based Authorization: استفاده کردن از Role ها در Controller ها
  • ایجاد کردن یک Access Denied Page
  • جمع بندی
  • فصل ششم: درک کردن Authorization با OAuth2 و OpenID Connect

    • مقدمه
    • پروتکل OAuth2 چگونه کار می کند
    • چرا OpenID Connect نسبت به OAuth2 ترجیح داده می شود
    • استفاده کردن از OpenID Connect برای ‌Authentication و Authorization
    • بررسی Flow های OAuth2 و OpenID Connect
    • بررسی کردن یک Access Token
    • جمع بندی

    فصل هفتم: ایمن سازی API

    • مقدمه
    • ارتباط Authorization Code Flow و PKCE
    • پیاده سازی عملی امنیت دسترسی به API
    • پیاده سازی عملی یک Access Token به API
    • پیاده سازی عملی نشان دادن یک Access Denied Page
    • پیاده سازی عملی استفاده از Access Token Claim ها در زمان بدست آوردن یک Resource Collection
    • لحاظ کردن یک Identity Claim ها در یک Access Token
    • پیاده سازی عملی لحاظ کردن Identity Claim ها در یک Access Token
    • پیاده سازی عملی محافظت از API در زمان ایجاد کردن یک Resource با استفاده از Role ها
    • جمع بندی

    فصل هشتم: بررسی Authorization Policy ها و Access Control

    • مقدمه
    • بررسی تفاوت های Role-based Access Control و Attribute-based Access Control
    • ساختن عملی یک Authorization Policy ساده
    • استفاده عملی از یک Authorization Policy
    • گسترش دادن Authorization Policy ها با استفاده از requirement ها و handler ها
    • ساختن عملی یک Requirement و Handler سفارشی
    • جمع بندی

    فصل نهم: کار کردن با Token Expiration و Reference Token ها

    • مقدمه
    • بررسی Token Lifetime و Expiration
    • کار کردن عملی با Token Lifetime و Expiration
    • بدست آوردن Long-Lived Access با استفاده از Refresh Token ها
    • پیاده سازی عملی Refresh Token ها
    • پیاده سازی عملی Long-Lived Access
    • کار کردن با Reference Token ها
    • کار کردن عملی با Reference Token ها
    • بررسی Token Revocation
    • پیاده سازی عملی Token Revocation
    • بررسی Token Validation
    • جمع بندی

    فصل دهم: آماده کردن برنامه برای Production

    • مقدمه
    • استفاده کردن از یک Signing Certificate
    • ایجاد کردن عملی یک Signing Certificate
    • استفاده کردن عملی از یک Signing Certificate
    • پیکربندی کردن Data و Operational Data
    • ذخیره سازی عملی Configuration Data
    • ذخیره سازی عملی Operational Data
    • کار کردن با User ها و Credential ها
    • جمع بندی

    نقد و بررسی‌ها

    هیچ دیدگاهی برای این محصول نوشته نشده است.

    اولین کسی باشید که دیدگاهی می نویسد “آموزش امنیت در اپلیکیشن های ASP.NET Core 3 با OAuth2 و OpenID Connect”

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    دسته های محصولات

    افزودن به سبد خرید