ابدأ مع مفاتيح Azure Key Vault في JavaScript

توضح لك هذه المقالة كيفية الاتصال ب Azure Key Vault باستخدام مكتبة عملاء Azure Key Vault Keys لجافا سكريبت. بمجرد الاتصال، يمكن للكود أن يعمل على مفاتيح في الخزنة.

API reference | Package (npm) | مصدر المكتبة | Samples | Give feedback

المتطلبات المسبقه

إعداد مشروعك

  1. افتح موجه الأوامر وقم بالتغيير إلى مجلد مشروعك. تغيير <your-directory> إلى اسم المجلد الخاص بك:

    cd <your-directory>
    
  2. إذا لم يكن لديك ملف package.json بالفعل في الدليل، فقم بتهيئة المشروع لإنشاء الملف:

    npm init -y
    
  3. تثبيت مكتبة عملاء Azure Key Vault Keys لجافا سكريبت:

    npm install @azure/keyvault-keys
    
  4. إذا كنت ترغب في استخدام الاتصالات بدون كلمة مرور باستخدام Microsoft Entra ID، قم بتثبيت مكتبة عملاء Azure Identity لجافا سكريبت:

    npm install @azure/identity
    

تفوض الوصول والاتصال ب Key Vault

يوفر Microsoft Entra ID الاتصال الأكثر أمانا من خلال إدارة هوية الاتصال (managed identity). تتيح لك هذه الوظيفة بدون كلمة مرور تطوير تطبيق لا يتطلب أي مفاتيح مخزنة في الكود.

قبل المصادقة البرمجية على Azure لاستخدام مفاتيح Azure Key Vault، تأكد من إعداد بيئتك.

مخطط Azure SDK لتدفق بيانات الاعتماد في JavaScript.

يجب على المطور تثبيت Azure CLI وتسجيل الدخول تفاعليا باستخدام أمر az login لتسجيل الدخول إلى Azure قبل استخدام DefaultAzureCredential in code.

az login

إنشاء التطبيق الخاص بك

أثناء إنشاء تطبيقك، تتفاعل التعليمات البرمجية مع نوعين من الموارد:

  • مفتاح KeyVaultKey، الذي يشمل:
    • المعرف، الاسم، والقيمة.
    • تم السماح بالعمليات.
    • اكتب مثل EC، EC-HSM، RSA، RSA-HSM، oct. oct-HSM
    • الخصائص كخصائص رئيسية
  • KeyProperties، والتي تتضمن بيانات المفتاح الوصفية، مثل اسمه، إصداره، العلامات، بيانات انتهاء الصلاحية، وما إذا كان مفعلا.

إذا كنت بحاجة إلى قيمة مفتاح KeyVaultKey، استخدم طرقا تعيد مفتاح KeyVaultKey:

نموذج الكائن

تتضمن مكتبة عملاء مفاتيح Azure Key Vault لجافا سكريبت العملاء التاليين:

  • KeyClient: كائن KeyClient هو الكائن الأعلى في SDK. يتيح لك هذا العميل أداء مهام إدارة المفاتيح مثل إنشاء، تدوير، حذف، وسرد المفاتيح.
  • يتيح لك CryptographyClient تشفير وفك تشفير وتوقيع والتحقق والتغليف، وفك المفاتيح لفها.

مخطط مفاهيمي يوضح العلاقة داخل مكتبة العميل بين KeyClient و CryptographyClient.

إنشاء كائن KeyClient

بمجرد إعداد بيئتك المحلية وتفويض Key Vault، أنشئ ملف جافاسكريبت يتضمن حزم @azure/identity وحزم @azure/keyvault-keys. قم بإنشاء بيانات اعتماد، مثل DefaultAzureCredential، لتنفيذ اتصالات بدون كلمة مرور بمخزنك. استخدم تلك الشهادة للمصادقة مع كائن KeyClient .

// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';  
import { KeyClient } from '@azure/keyvault-keys';  

// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential(); 
const client = new KeyClient(
    `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
    credential
  );

// Get key
const key = await client.getKey("MyKeyName");

إنشاء كائن CryptographyClientClient

كائن عميل التشفير هو الكائن التشغيلي في مجموعة تطوير البرمجيات، حيث يستخدم مفتاحك لتنفيذ إجراءات مثل التشفير، وفك التشفير، والتوقيع والتحقق، واللف والفك.

استخدم بيانات الهوية الخاصة بك من KeyClient، مع اسم المفتاح، لإنشاء CryptographyClient لأداء العمليات.

// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';  
import {
  CryptographyClient,
  KeyClient,
  KnownEncryptionAlgorithms,
  RsaEncryptParameters
} from '@azure/keyvault-keys'; 

// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential(); 
const client = new KeyClient(
    `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
    credential
  ); 

// Get key
const key = await client.getKey("MyKeyName");

if (key?.name) {

    // get encryption client
    const encryptClient = new CryptographyClient(key, credential);

    // encrypt data
    const encryptParams = { 
        algorithm: KnownEncryptionAlgorithms.RSAOaep256,
        plaintext: Buffer.from("Hello world!")
    }
    const encryptResult = await encryptClient.encrypt(encryptParams);
}

راجع أيضًا

الخطوات التالية