إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يساعدك Azure Key Vault على حماية الأسرار مثل مفاتيح API وسلاسل اتصال قاعدة البيانات التي تحتاجها تطبيقاتك وخدماتك ومواردك.
في هذا الدرس، تقوم بتكوين تطبيق كونسول لقراءة المعلومات من Azure Key Vault. يستخدم التطبيق هوية الجهاز الافتراضي المدارة للمصادقة مع Key Vault.
يوضح لك البرنامج التعليمي كيفية:
- قم بإنشاء مجموعة موارد.
- إنشاء مخزن رئيسي.
- إضافة سر إلى key vault.
- استرجاع سر من Key Vault.
- إنشاء آلة افتراضية Azure.
- تمكين هوية مدارة للجهاز الافتراضي.
- تعيين أذونات إلى هوية VM.
قبل أن تبدأ، اقرأ Key Vault المفاهيم الأساسية.
إذا لم يكن لديك اشتراك Azure، أنشئ حسابا مجاني.
المتطلبات الأساسية
لأنظمة Windows وMac وLinux:
- بوابه
- حزمة تطوير .NET 8.0 أو أحدث.
- Azure CLI أو Azure PowerShell
إنشاء الموارد وتعيين الأذونات
قبل البدء في الترميز تحتاج إلى إنشاء بعض الموارد، ووضع سر في مخزن المفاتيح الخاص بك، وتعيين الأذونات.
تسجيل الدخول إلى Azure
Sign In to Azure with the Azure CLI or Azure PowerShell:
إنشاء مجموعة موارد ومخزن رئيسي
يستخدم هذا البدء السريع خزنة مفاتيح Azure مسبقا. يمكنك إنشاء مخزن مفاتيح باتباع الخطوات الواردة في هذه قوالب التشغيل السريع:
بدلا من ذلك، يمكنك تشغيل أوامر Azure CLI أو Azure PowerShell هذه.
هام
يجب أن يكون لكل مخزن رئيسي اسم فريد. استبدلها <vault-name> باسم خزنة المفاتيح في الأمثلة التالية.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
ملء key vault الخاص بك ببيانات سرية
لنقم بإنشاء سر يسمى mySecret، بقيمة Success!. قد يكون السر كلمة مرور، أو سلسلة سلسلة الاتصال في SQL، أو أي معلومات أخرى تحتاجها للحفاظ على أمان وتوفرها لتطبيقك.
لإضافة سر إلى مخزن المفاتيح الذي أنشأته حديثاً، استخدم الأمر التالي:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
إنشاء جهاز ظاهري
إنشاء جهاز افتراضي لنظام Windows أو Linux باستخدام إحدى الطرق التالية:
| Windows | Linux |
|---|---|
| واجهة سطر الأوامر Azure (Azure CLI) | واجهة سطر الأوامر Azure (Azure CLI) |
| بوويرشيل | بوويرشيل |
| مدخل Azure | مدخل Azure |
تعيين هوية لجهاز VM
إنشاء هوية مدارة معينة من النظام للآلة الافتراضية:
az vm identity assign --name <vm-name> --resource-group <resource-group>
لاحظ الهوية المعينة من قبل النظام التي يتم عرضها في التعليمات البرمجية التالية. مخرج الأمر السابق سيكون:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
تعيين أذونات إلى هوية VM
للحصول على صلاحيات لخزنة المفاتيح الخاصة بك عبر Role-Based Access Control (RBAC)، قم بتعيين دور إلى "اسم المستخدم الرئيسي" (UPN) باستخدام أمر Azure CLI az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
استبدل <upn>، <subscription-id>، ومع <vault-name> قيمك الفعلية. إذا استخدمت اسم مجموعة موارد مختلف، استبدل "myResourceGroup" أيضا. سيكون UPN الخاص بك عادة بتنسيق عنوان بريد إلكتروني (على سبيل المثال، username@domain.com).
تسجيل الدخول إلى الجهاز الافتراضي
لتسجيل الدخول إلى الجهاز الافتراضي، اتبع التعليمات في Connect وسجل الدخول إلى جهاز افتراضي Azure Windows أو Connect وتسجيل الدخول إلى آلة افتراضية Azure لينكس.
إعداد تطبيق وحدة التحكم
أنشئ تطبيق كونسول وثبت الحزم المطلوبة باستخدام dotnet الأمر.
تثبيت .NET
لتثبيت ملف .NET، اذهب إلى صفحة تحميلات .NET.
إنشاء وتشغيل نموذج تطبيق .NET
افتح موجه الأوامر وشغل:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
التطبيق يطبع "مرحبًا بالعالم" على الجهاز.
قم بتثبيت الحِزَم
من نافذة الكونسول، قم بتثبيت مكتبة عملاء Azure Key Vault Secrets ومكتبة Azure Identity:
dotnet add package Azure.Security.KeyVault.Secrets
dotnet add package Azure.Identity
تحرير تطبيق وحدة التحكم
افتح Program.cs وأضف التوجيهات التالية using :
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
استبدل الطريقة Main بالرمز التالي، مع تحديث <vault-name> اسم خزنة المفاتيح الخاص بك. يستخدم هذا الكود DefaultAzureCredential للمصادقة إلى Key Vault، الذي يستخدم رمزا من هوية الجهاز المنصب. كما أنه يضبط التراجع الأسي لإعادة المحاولة في حال تم تقييد Key Vault.
class Program
{
static void Main(string[] args)
{
string secretName = "mySecret";
string keyVaultName = "<vault-name>";
var kvUri = "https://<vault-name>.vault.azure.net";
SecretClientOptions options = new SecretClientOptions()
{
Retry =
{
Delay= TimeSpan.FromSeconds(2),
MaxDelay = TimeSpan.FromSeconds(16),
MaxRetries = 5,
Mode = RetryMode.Exponential
}
};
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential(),options);
Console.Write("Input the value of your secret > ");
string secretValue = Console.ReadLine();
Console.Write("Creating a secret in " + keyVaultName + " called '" + secretName + "' with the value '" + secretValue + "' ...");
client.SetSecret(secretName, secretValue);
Console.WriteLine(" done.");
Console.WriteLine("Forgetting your secret.");
secretValue = "";
Console.WriteLine("Your secret is '" + secretValue + "'.");
Console.WriteLine("Retrieving your secret from " + keyVaultName + ".");
KeyVaultSecret secret = client.GetSecret(secretName);
Console.WriteLine("Your secret is '" + secret.Value + "'.");
Console.Write("Deleting your secret from " + keyVaultName + " ...");
client.StartDeleteSecret(secretName);
System.Threading.Thread.Sleep(5000);
Console.WriteLine(" done.");
}
}
تنظيف الموارد
عندما لا تحتاجها، احذف الجهاز الافتراضي وخزنة المفتاح.