دوستان عزیز، در حال حاضر در اتصال به درگاه پرداخت دچار مشکل هستیم. لطفاً، به منظور ثبت سفارش، پرداخت و دریافت محصول مورد نظر با استفاده از دکمه واتس اپ قرار گرفته در قسمت پایین سمت چپ وبسایت با ما ارتباط بگیرید. با تشکر.

آموزش امنیت Secret ها در اپلیکیشن‌های  ASP.NET Core

تعداد ویدئو 19
زمان دوره 00:51:29
مترجم پرووید
ناظر ترجمه پرووید
دوبلر پرووید
ناظر دوبلاژ پرووید
سایت منتشر کننده پلورال سایت

آموزش ویدئویی ایجاد امنیت Secret ها در اپلیکیشن‌های ASP.NET Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی پیاده سازی مباحث امنیتی در اپلیکیشن های ASP.NET Core و مبحث Secret ها است که با نام اصلی Securing Application Secrets in ASP.NET Core از شرکت Pluralsight منتشر شده است.

داده های رمزگونه و یا secrets چه هستند؟

زمانی که وب سایت ها و Web API هایی را با استفاده از ASP.NET Core توسعه می دهیم اغلب داده هایی را دارید که می خواهید در اختیار دیگران قرار نگیرند این داده ها شامل password ها و API Key ها و دیگر secret هایی هستند که می خواهید تنها در اختیار خودتان باشند. اضافه کردن این داده های رمزگونه و یا Secret به یک فایل configuration از قبیل فایل appsetting.json و به طور تصادفی Push کردن آنها به درون Git repository می تواند خطراتی جدی ای را متوجه برنامه کند. در سناریوهای توسعه و یا development، مایکروسافت یک ابزار secret manager را در اختیار ما قرار می دهد که می تواند داده های حساس و یا sensitive data را در فایل های secrets.json جداگانه بر روی کامپیوتر ذخیره کند. این فایل ها به طور پیش فرض توسط configuration builder موجود در ASP.NET Core خوانده می شود و به این ترتیب دیگر مجبور نیستید که این secret ها را در فایل های configuration خود قرار بدهید و تصادفاً آنها را به Git repository اضافه کنید.

پیکربندی و یا Configuration در NET Core چیست؟

اولین چیزی که باید در رابطه با بحث configuration و یا پیکربندی در ASP.NET Core بدانید این است که configuration builder در ASP.NET Core به طور پیش فرض تنظیمات configuration و یا configuration setting ها را از منابع و یا source های متنوعی می خواند. علاوه بر این مقادیر configuration با یک سلسله مراتب و ترتیب خاص خوانده می شود. این موضوع باعث می شود که اگر یک configuration setting دوبار خوانده شود، مقدار قبلی با مقدار جدید جایگزین بگردد. به طور پیش فرض ترتیب خوانده شدن configuration setting ها به این گونه است که در ابتدا فایلل appsetting.json خوانده می شود و بعد از آن فایل appsettings.inviroment.json که به ازای هر environment ایجاد می شود خوانده می شود. پس از آن فاین secrets.json و بعد از آن environment variable ها و نهایتاً command line argument ها خوانده می شود. این بدان معناست که یک environment variable می تواند eetting موجود در secrets.json را رونویسی کند که آن نیز به نوبه خود می تواند setting موجود در appsetting.json را رونویسی و یا override کند.

Securing-Application-Secrets-in-ASP.NET-Core-Snapshot

استفاده کردن از Secret ها در پروژه های NET Core

استفاده کردن از secret ها در یک وب سایت که با razor pages و ASP.NET Core نوشته شده است و یا یک Web API که با ASP.NET Core ایجاد گردیده است با هم تفاوتی ندارند. همانطور که گفتیم زمانی که configuration Data را در web application های خود می خوانید این خوانده شدن به یک ترتیب خاص و از Source های مختلف انجام می پذیرد. یکی از این منابع و یا source ها که از درون آنها configuration data خوانده می شود user secret می باشد. فرض کنید که یک وب سایت با ASP.NET razor pages ایجاد کرده ایم و می خواهیم API Key مربوطه را از configuration به درون اپلیکیشن بخوانیم. فایل appsetting.json را طوری تنظیم می کنیم که بتواند یک مقدار ارسال از یک API Key را در خود قرار بدهد. عیناً API Key واقعی را در secrets.json با استفاده از همان ابزار secret Manager قرار داده ایم. فایل appsettings.json نیز می تواند شامل محتویات زیر باشد.

 
{
  "WebApiOptions": {
    "SecretKey":  "dummy"
  },...
}

حال فرض کنید که می خواهیم configuration Data را به درون اپلیکیشن ایجاد شده با ASP.NET razor pages در زمان startup بخوانیم. برای انجام این کار از binding و سپس اضافه کردن class مورد نظر به dependency injection container استفاده می کنیم تا بتوانیم آنرا در سرتاسر وب اپلیکیشن با استفاده از الگوی option مورد استفاده قرار بدهیم. کد زیر این موضوع را نشان می دهد.

 
public class WebApiOptions
{
    public string ApiKey
    {
        get;
        set;
    }
}
public void ConfigureServices(IServiceCollection services)
{
    services.AddOptions().Bind(Configuration.GetSection(nameof(WebApiOptions))).ValidateDataAnnotations();
}

حال می توانیم این اطلاعات را به درون razor pages و یا هر سرویس دیگری که در web application دارید تزریق کنید. این موضوع در کد زیر نشان داده شده است.

 
public class IndexModel: PageModel
{
    private readonly WebApiOptions _webApiOptions;
    public IndexModel(IOptions webApiOptionsAccessor)
    {
        _webApiOptions = webApiOptionsAccessor.Value;
    }
    public void OnGet()
    {
        var apiKey = _webApiOptions.ApiKey;
    }
}

متغیری که API Key نام دارد، بایستی مقدار 12345 را در خود داشته باشد. اگر چنین اتفاقی رخ بدهد می توان نتیجه گیری کرد که توانسته ایم به درستی secret مورد نظر را درون ابزار secret manager با استفاده از ابزار secret manager پیاده سازی کنیم. اگر این secret را اضافه نکرده باشید همان مقدار نمونه ای را که قرار دادیم در این متغیر خواهیم دید. بار دیگر خدمتتان عرض می کنم که این بدان دلیل است که API Key به عنوان یک setting در secret ها API Key موجود در appsettings.json را رونویسی خواهد کرد. این موضوع به شما اجازه می دهد تا بتوانید این کد را به درون Git Repository اصطلاحاً Commit کرده و API Key نمونه ای را که داشتید در repository خود قرار بدهید. از طرفی زمانی که برنامه را به صورت local اجرا می کنید API Key واقعی جایگزین این dummy value می شود.

سرفصل مطالب آموزش ویدئویی ایجاد امنیت در Secret ها اپلیکیشن‌های ASP.NET Core

فصل اول: بررسی کلی این دوره آموزشی 

  • بررسی کلی این دوره آموزشی

فصل دوم: درک application secret ها

  •  application secret ها چه هستند؟
  • علت ایمن نگه داشتن application secret ها چیست؟
  • تفکیک وظایف
  • ضد الگوها برای ذخیره secret ها
  • جمع بندی

فصل سوم: ذخیره ایمن secret های در حال توسعه

  • خروج secret ها از کد
  • معرفی مدیریت secret ها
  • مدیریت secret ها در NET Core.
  • مدیریت secret ها در فریم ورک دات نت
  • استفاده از پیشوند ها در فریم ورک NET Core.
  • جمع بندی

فصل چهارم: محافظت از secret های تولید با یک Key Vault

  • Key Vault چیست؟
  • معرفی Azure Key Vault
  • نصب Azure Key Vault
  • نحوه استفاده از Azure Key Vault در NET Core.
  • نحوه استفاده از Azure Key Vault در فریم ورک دات نت
  • اجرای Azure با استفاده از identity های مدیریت شده
  • جمع بندی

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

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

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

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

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

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