Secrets Management এবং User Secrets

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Configuration Management |
207
207

ASP.NET Core-এ Secrets Management হলো এমন একটি পদ্ধতি, যার মাধ্যমে সংবেদনশীল ডেটা (যেমন API keys, ডেটাবেস কানেকশন স্ট্রিং) নিরাপদে সংরক্ষণ করা যায়। এটি কোডের মধ্যে সরাসরি সংবেদনশীল তথ্য রাখার পরিবর্তে আরও নিরাপদ পন্থা সরবরাহ করে।

ASP.NET Core-এ User Secrets হলো একটি টুল যা ডেভেলপমেন্ট পরিবেশে সংবেদনশীল ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। এটি ফাইল সিস্টেমে একটি সিক্রেট ফাইল তৈরি করে যেখানে এই ডেটা এনক্রিপ্টেড অবস্থায় রাখা হয়। এটি সাধারণত Development Environment-এ ব্যবহৃত হয় এবং প্রোডাকশন পরিবেশে এটি Azure Key Vault বা অন্যান্য নিরাপদ সমাধানের সাথে প্রতিস্থাপন করা হয়।


User Secrets ব্যবহারের প্রয়োজনীয়তা

  1. সংবেদনশীল তথ্য রক্ষা:
    • API Keys, ডাটাবেস কানেকশন স্ট্রিং, এবং অন্যান্য সিক্রেট তথ্য সরাসরি কোডে রাখার পরিবর্তে সিক্রেট ফাইলে সংরক্ষণ করা হয়।
  2. কোডবেস থেকে আলাদা রাখা:
    • গোপন তথ্য সিক্রেট ফাইলে সংরক্ষণ করা হয়, যা কোডবেসের বাইরে থাকে এবং ভার্সন কন্ট্রোলে আপলোড হয় না।
  3. ডেভেলপমেন্ট এনভায়রনমেন্টের জন্য আদর্শ:
    • User Secrets সাধারণত ডেভেলপমেন্ট পরিবেশে ব্যবহৃত হয় এবং প্রোডাকশনের জন্য Azure Key Vault বা অন্য সমাধান ব্যবহৃত হয়।

User Secrets সেটআপ এবং ব্যবহার

প্রাথমিক শর্ত

User Secrets ব্যবহার করতে হলে প্রজেক্টের SDK হতে হবে Microsoft.NET.Sdk.Web। এছাড়া, .NET CLI ইনস্টল থাকতে হবে।

User Secrets সক্রিয় করা

প্রথমে প্রজেক্টের .csproj ফাইলে নিচের অংশটি যোগ করুন (যদি না থাকে):

<PropertyGroup>
  <UserSecretsId>your-project-unique-id</UserSecretsId>
</PropertyGroup>

UserSecretsId হলো একটি ইউনিক আইডি, যা প্রজেক্টের সিক্রেট ফাইলকে সনাক্ত করতে ব্যবহৃত হয়।

User Secrets ইনিশিয়ালাইজ করা

টার্মিনালে প্রজেক্টের রুট ডিরেক্টরিতে গিয়ে নিচের কমান্ডটি চালান:

dotnet user-secrets init

এটি সিক্রেট স্টোর তৈরি করে এবং প্রজেক্টকে সেই স্টোরের সাথে সংযুক্ত করে।

User Secrets যোগ করা

সংবেদনশীল ডেটা যোগ করতে নিচের কমান্ডটি ব্যবহার করুন:

dotnet user-secrets set "ApiKey" "your-api-key"

এখানে "ApiKey" হলো কী এবং "your-api-key" হলো এর মান।

সিক্রেট ডেটা ব্যবহার করা

সিক্রেট ডেটা অ্যাক্সেস করতে Configuration API ব্যবহার করা হয়। উদাহরণস্বরূপ:

Startup.cs ফাইলে সিক্রেট ব্যবহার:

public class Startup
{
    private readonly IConfiguration _configuration;

    public Startup(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        var apiKey = _configuration["ApiKey"]; // সিক্রেট ডেটা রিড করা
        Console.WriteLine($"Your API Key is: {apiKey}");
    }
}

User Secrets ফাইল লোকেশন

User Secrets সাধারণত ব্যবহারকারীর প্রোফাইলে লোকালি সংরক্ষণ করা হয়:

  • Windows: %APPDATA%\Microsoft\UserSecrets\<UserSecretsId>
  • macOS/Linux: ~/.microsoft/usersecrets/<UserSecretsId>

উদাহরণ: ডাটাবেস কানেকশন স্ট্রিং সংরক্ষণ

ধরা যাক, ডাটাবেস কানেকশন স্ট্রিং একটি সিক্রেট হিসেবে সংরক্ষণ করতে হবে।

সিক্রেট যোগ করুন:

dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=myServer;Database=myDB;User=myUser;Password=myPassword;"

appsettings.json এ কানেকশন স্ট্রিং ব্যবহার:

{
  "ConnectionStrings": {
    "DefaultConnection": ""
  }
}

Startup.cs ফাইলে ব্যবহার:

public class Startup
{
    private readonly IConfiguration _configuration;

    public Startup(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        var connectionString = _configuration.GetConnectionString("DefaultConnection");
        services.AddDbContext<MyDbContext>(options =>
            options.UseSqlServer(connectionString));
    }
}

User Secrets এবং Azure Key Vault এর মধ্যে পার্থক্য

বৈশিষ্ট্যUser SecretsAzure Key Vault
ব্যবহার ক্ষেত্রশুধুমাত্র ডেভেলপমেন্ট পরিবেশেপ্রোডাকশন এবং নিরাপদ পরিবেশে
সংরক্ষণের ধরনলোকাল ফাইল সিস্টেমক্লাউড-ভিত্তিক স্টোরেজ
এনক্রিপশনলোকাল সিস্টেমে এনক্রিপ্টেড ফাইলক্লাউড দ্বারা সম্পূর্ণ এনক্রিপশন
অ্যাক্সেস কন্ট্রোলশুধু লোকাল মেশিনে অ্যাক্সেসযোগ্যAzure RBAC ব্যবহার করে অ্যাক্সেস কন্ট্রোল
দামবিনামূল্যেAzure সাবস্ক্রিপশন প্রয়োজন

উপসংহার

Secrets Management এবং User Secrets ASP.NET Core এ ডেভেলপমেন্ট পরিবেশে সংবেদনশীল ডেটা সুরক্ষিত রাখতে গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি কোডবেস থেকে সংবেদনশীল ডেটা আলাদা রাখে এবং ডেভেলপারদের জন্য নিরাপদ সমাধান প্রদান করে। প্রোডাকশন পরিবেশে Azure Key Vault বা অন্য ক্লাউড-ভিত্তিক সমাধান ব্যবহার করা উচিৎ। User Secrets ব্যবহার করে ডেভেলপমেন্ট পর্যায়ে আপনার অ্যাপ্লিকেশনের সিকিউরিটি অনেকটাই নিশ্চিত করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion