مقدمة

الملفات PDF هي جزء أساسي في العديد من الصناعات، وضمنها ضمان صحتهم وسلامتهم من خلال التوقيعات الرقمية هو إجراء أمني حاسم. توفر التوقيعات الرقمية صفة قانونية وتحمي المستندات من التعديل. هذا الدليل الشامل يوضح لك كيفية تنفيذ التوقيعات الرقمية على PDF باستخدام .NET من خلال إنشاء خدمة التوقيعات الرقمية الآمنة باستخدام Azure Key Vault و GroupDocs.Signature for .NET.

تصبح التوقيعات الإلكترونية للمستندات أكثر أهمية للعمال الذين يتحولون إلى عمليات عمل دون أوراق. GroupDocs.Signature for .NET يقدم حلاً قوياً لتوقيعات PDF الرقمية باستخدام C# الذي يفي بمتطلبات التوافق الرقمي في العديد من الإطارات التنظيمية. سواء كنت جديداً على التوقيعات الرقمية في تطبيقات .NET أو تبحث عن تحسين تنفيذك الحالي، فإن هذا الدليل يغطي كل ما تحتاج إلى معرفته.

Azure Key Vault هو خدمة إدارة مفاتيح مستندة على السحابة تسمح بتخزين وإدارة المفاتيح والتشفيرات بشكل آمن. GroupDocs.Signature for .NET هو API قوي لتوقيعات PDF الآمنة يسمح للمطورين بتطبيق التوقيعات الرقمية على ملفات PDF بشكل برمجي. من خلال دمج هذه التقنيات، يمكنك بناء خدمة التوقيعات الرقمية على PDF قوية ومفعلة.

من بين أهم الميزات التي سنستعرضها هو التوقيع باستخدام هاش مخصص، والذي يوفر مرونة كبيرة لعملية التوقيع. هذا النهج يسمح لك بالاتصال مع أجهزة التوقيع الخارجية مثل وحدات الأمان المادية (HSMs)، البطاقات الذكية، أو أي جهاز تشفير آخر مع تطبيقك. باستخدام التوقيع باستخدام هاش مخصص، يمكن للمطورين كتابة خدمات التوقيع الخاصة بهم التي تتفاعل مع الأنظمة الخاصة أو البنية التحتية القديمة أو الأجهزة الأمنية المتخصصة بينما تظل متوافقة مع إطار عمل GroupDocs.Signature. وهذا يجعلها حلاً مثالياً للمؤسسات التي لديها متطلبات أمنية خاصة أو استثمار سابق في البنية التحتية التشفيرية.

🔐 إنشاء خزانة مفاتيح Azure و شهادة

دعونا نبدأ بإنشاء خزانة مفاتيح Azure و إنشاء شهادة.

الخطوة 1: توفير الخزانة

إنشاء مورد خزانة مفاتيح Azure جديدة باستخدام Azure portal. لمزيد من التفاصيل، يرجى مراجعة هذا دليل البدء السريع.

💡إذا لم يكن لديك اشتراك Azure نشط، يمكنك التسجيل للحصول على تجربة مجانية لمدة شهر واحد.

الخطوة 2: إنشاء أو استيراد شهادتك

بعد تشغيل خزانتك، انتقل إلى لوحة التحكم، اختر علامة التبويب الشهادات، وانقر فوق إنشاء/استيراد لإضافة شهادتك.

واجهة Azure Key Vault لإنشاء شهادات التوقيعات الرقمية لتوقيع PDF

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

سير عمل كامل لعمليات التوقيعات الرقمية على PDF باستخدام GroupDocs .NET مع Azure Key Vault

ملاحظة: إذا كنت تفضل استخدام شهادة موجودة، يمكنك اختيار استيراد لتحميلها من جهازك المحلي.

مثال على كود C# لتطبيق التوقيع باستخدام هاش مخصص مع GroupDocs.Signature

الخطوة 4: ثم انتقل إلى إعدادات السياسات المتقدمة وحدد خيار تصدير المفتاح الخاص إلى لا.

سير عمل توقيع الشهادة في Azure يظهر تدفق البيانات بين المكونات

الخطوة 5: أخيرًا، انقر فوق إنشاء. الآن ستضاف الشهادة إلى خزانتك.

للمزيد من التفاصيل، انقر على الشهادة لتفتح خواصها.

مثال على التحقق من توقيع PDF في تطبيق .NET يظهر نتائج التحقق

⚙️ تسجيل التطبيق لتفعيل الوصول إلى خزانة مفاتيح Azure

لسماح API الويب بالوصول إلى خزانة مفاتيح Azure، يجب تسجيله في Azure Active Directory:

الخطوة 1: انتقل إلى Azure Active Directory، اختر تسجيلات التطبيقات، وانقر فوق تسجيل جديد.

دمج التوقيعات الإلكترونية للمستندات بين Azure Key Vault و GroupDocs

الخطوة 2: أدخل اسم تطبيقك واكمل التسجيل.

شاشة إعدادات API التوقيعات الآمنة على PDF مع إعدادات الأمان

بعد التسجيل، ستحصل على تفاصيل المفتاح — نسخ معرف العميل و معرف المستأجر للاستخدام في تطبيقك.

واجهة إعدادات سياسات الوصول إلى Azure Key Vault لتخصيص صلاحيات التوقيعات

الخطوة 3: بعد ذلك، اختر أذونات API من القائمة الجانبية وانقر فوق إضافة إذن. اختر Azure Key Vault، اختر الوصول الكامل، واكمل العملية من خلال النقر فوق إضافة أذونات.

مثال على خروج التوقيعات على PDF باستخدام .NET يظهر مستنداً موقّعاً بنجاح

الخطوة 4: اختر الشهادات والأسرار وانقر فوق إنشاء سر عميل جديد لإنشاء سر جديد. نسخ هذا السر لاستخدامه من تطبيق .NET الخاص بك.

سير عمل دمج جهاز التوقيع الخارجي مع تطبيق GroupDocs للتوقيع باستخدام هاش مخصص

🔐 تعيين سياسات الوصول إلى خزانة مفاتيح Azure

في الخطوات السابقة، قمنا بإنشاء و تسجيل التطبيق. الآن، علينا منح التطبيق الجديد الوصول إلى خزانة مفاتيح Azure:

الخطوة 1: انتقل إلى خزانة مفاتيح Azure، اختر سياسات الوصول، وانقر فوق إنشاء.

إعدادات التوافق الرقمي للتوقيعات الرقمية لتفاصيل التنظيم

الخطوة 2: اختر الصلاحيات اللازمة وانقر فوق التالي.

تسجيل تطبيق Azure Active Directory لتوقيعات PDF

الخطوة 3: في هذا النافذة، اختر التطبيق الذي سجلناه سابقًا، GroupDocs.Signature.Service، وانقر فوق إنشاء.

سير عمل خدمات التوقيعات المخصصة يظهر العلاقات بين المكونات
لوحة إعدادات مظهر GroupDocs Signature لتخصيص التوقيعات المرئية

الآن، سيظهر التطبيق في قسم سياسات الوصول.

سير عمل التحقق من التوقيعات الرقمية على PDF يظهر خطوات التحقق

📑 كيفية استخدام خزانة مفاتيح Azure مع GroupDocs.Signature for .NET لتوقيعات PDF

هذا الدليل الشامل يشرح كيفية توقيع المستندات PDF باستخدام API GroupDocs.Signature في .NET مع التوقيع باستخدام هاش مخصص الذي يستفيد من خزانة مفاتيح Azure. سنقسم العملية إلى خطوات واضحة — من إعداد بيئة C# الخاصة بك إلى تنفيذ موقّع هاش مخصص يفي بمتطلبات التوافق الرقمي.

نظرة عامة على التوقيعات الآمنة على PDF باستخدام تطبيق هاش مخصص

يوفر تطبيق التوقيع باستخدام هاش مخصص مرونة كبيرة لتطبيق التوقيعات الإلكترونية للمستندات في تطبيقات .NET الخاصة بك. إليك ما سنغطيه:

  • إعداد تطبيق .NET الخاص بك للعمل مع GroupDocs.Signature لتوقيعات PDF الرقمية
  • إعداد خيارات التوقيع الرقمي المهنية مع إدارة الشهادات المناسبة
  • تنفيذ آلية التوقيع باستخدام هاش مخصص للحصول على مرونة قصوى
  • دمج خزانة مفاتيح Azure لاسترجاع الشهادة العامة وتوقيع المستند
  • اتباع أفضل الممارسات الأمنية طوال التنفيذ

لمزيد من الخلفية، راجع توثيق GroupDocs.Signature حول التوقيع الرقمي باستخدام هاش مخصص.

🚀 فوائد التوقيع باستخدام هاش مخصص لتطبيقات PDF في .NET

قبل الدخول في التنفيذ، من المهم فهم لماذا يمثل التوقيع باستخدام هاش مخصص تقدماً كبيراً في تكنولوجيا التوقيعات الرقمية:

  1. الدمج مع أجهزة التوقيع الخارجية: يسمح التوقيع باستخدام هاش مخصص بالاتصال السلس مع وحدات الأمان المادية (HSMs)، البطاقات الذكية، أجهزة التعرف البيومترية، وأجهزة تشفير متخصصة أخرى قد تستخدمها منظمة.
  2. العمارة المرنة للحلول التجارية: يمكن للمؤسسات كتابة خدمات التوقيع الخاصة بها التي تتفاعل مع البنية التحتية الحالية، الأنظمة القديمة، أو حلول التوقيع الخاصة بها بينما تظل متوافقة مع GroupDocs.Signature.
  3. التوافق الأمني المتقدم: من خلال فصل عملية إنشاء هاش من عملية التوقيع الفعلي، يمكنك التحكم بشكل أفضل في العمليات التشفيرية، مما يساعدك على تحقيق متطلبات التنظيم الصارمة مثل eIDAS، ESIGN Act، ومتطلبات التوافق الخاصة بالقطاع.
  4. الدعم لتدبير المفاتيح المستندة على السحابة: دمج خزانة مفاتيح Azure يسمح بتخزين الشهادات بشكل آمن وإدارتها في البنية التحتية الآمنة المعتمدة من Microsoft بدلاً من أجهزة محلية.
  5. تخصيص عملية التوقيع: تنفيذ عمليات الموافقة المخصصة، تسلسلات التوقيع متعددة الأطراف، أو قواعد التحقق المخصصة التي تتجاوز تطبيقات التوقيعات الرقمية القياسية.

الخطوة 1. إعداد بيئة التوقيعات الرقمية على PDF باستخدام C#

ابدأ بتعريف مسارات ملفاتك وإعداد كائن GroupDocs.Signature في تطبيق C# الخاص بك. في هذا المثال، نحدد ملف PDF المصدر والموقع المحدد للمستند الموقّع.

public static void SignDocument()
{
    // Define paths for the source and output documents
    string sampleFilePath = "sample.pdf";
    string sampleOutputFilePath = "signed.pdf";

    using (Signature signature = new Signature(sampleFilePath))
    {
        // Code continues in the next steps...
    }
}

📌ملاحظة:

هذه الخطوة تخلق كائن Signature جديد يحمّل المستند PDF الذي تريد توقيعه، مما يوفر الأساس لتوقيعات PDF الآمنة في تطبيق .NET الخاص بك.


الخطوة 2. إعداد خيارات التوقيع الرقمي

بعد ذلك، قم بإعداد خيارات التوقيع الرقمي. تشمل هذه الخيارات تفاصيل الشهادة، المظهر المرئي، وخوارزمية هاش. سيتم إضافة التوقيع باستخدام هاش مخصص لاحقًا.

// Initialize digital signing options
DigitalSignOptions options = new DigitalSignOptions()
{
    Signature = new DigitalSignature(),
    Password = "1234567890",      // Certificate password
    Reason = "Sign",              // Signing reason
    Contact = "JohnSmith",        // Contact information
    Location = "Office1",         // Signing location
    AllPages = true,              // Apply signature on all pages
    Width = 80,
    Height = 60,
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Margin = new Padding() { Bottom = 10, Right = 10 },
    HashAlgorithm = HashAlgorithm.Sha256 // Specify SHA-256 for hashing
};

📌ملاحظة:

قم بتكوين خصائص التوقيع الرقمي الأساسية مثل المظهر، التوجيه، والتشفير لضمان أن التوقيعات الإلكترونية للمستندات تتوافق مع المعايير المهنية.

ملاحظة أمنية: في الإنتاج، تجنب كتابة القيم الحساسة (مثل كلمة المرور) بشكل صريح؛ بدلاً من ذلك، استخدم طرق التكوين الآمنة التي تتوافق مع متطلبات التوافق الرقمي.


الخطوة 3. تنفيذ التوقيع باستخدام هاش مخصص

الآن، قم بتعيين موقّع هاش مخصص لكخياراتك. سيقوم هذا الموقّع بتنفيذ واجهة ICustomSignHash وسيستخدم لتوقيع هاش باستخدام خزانة مفاتيح Azure أو أي جهاز التوقيع الخارجي الذي ترغب في دمجه.

var azureSigner = new AzureSigner();
options.CustomSignHash = azureSigner;
options.Signature.Certificate = azureSigner.GetPublicCertificateFromAzureStorage();

📌ملاحظة:

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


الخطوة 4. توقيع المستند

أخيراً، استدعِ طريقة Sign لتوليد المستند PDF الموقّع باستخدام تطبيق التوقيع باستخدام هاش مخصص الخاص بك.

signature.Sign(sampleOutputFilePath, options);

📌ملاحظة:

تطبيق هذه الطريقة التوقيع الرقمي على المستند باستخدام الخيارات التي تم تهيئتها سابقًا، بما في ذلك موقّع هاش مخصص. سيتم تضمين التوقيع في PDF الناتج الذي يمكن التحقق منه باستخدام قراء PDF القياسية أو برمجياً باستخدام ميزات التحقق من GroupDocs.Signature.


الخطوة 5. تنفيذ التوقيع باستخدام شهادة Azure

أدناه هو تنفيذ الموقّع المخصص باستخدام خزانة مفاتيح Azure لتوقيع شهادة Azure. يوضح هذا الفئة أفضل الممارسات لتوقيع شهادة Azure من خلال استرجاع بيانات اعتماد Azure، استرجاع الشهادة العامة، وتوقيع هاش المستند بشكل آمن.

public class AzureSigner : ICustomSignHash
{
    public byte[] CustomSignHash(byte[] hash, HashAlgorithm hashAlgorithm,
     SignatureContext signatureContext)
    {
        // Delegate the signing operation to Azure
        return SignWithAzure(hash);
    }

    private static byte[] SignWithAzure(byte[] signableHash)
    {
        // Retrieve Azure credentials
        var credential = GetAzureSecretCredential();

        // Specify your Key Vault certificate key identifier
        var certificateKeyId =
        "https://groupdocskeyvault.vault.azure.net/keys/GroupDocsSignatureCertificate/>";
        CryptographyClient client =
            new CryptographyClient(new Uri(certificateKeyId), credential);

        // Sign the hash using RS256
        var result = client.Sign(SignatureAlgorithm.RS256, signableHash);
        return result.Signature;
    }

    static ClientSecretCredential GetAzureSecretCredential()
    {
        // Provide your Azure AD tenant, client, and secret details
        string tenantId = "your tenant id";
        string clientId = "your client id";
        string secret = "your secret";
        ClientSecretCredential credential =
            new ClientSecretCredential(tenantId, clientId, secret);
        return credential;
    }

    public X509Certificate2 GetPublicCertificateFromAzureStorage()
    {
        // Define the Key Vault URI
        string vaultUri = "https://groupdocskeyvault.vault.azure.net/>";
        var credential  = GetAzureSecretCredential();
        X509Certificate2 pubCertificate =
        GetPublicCertificateFromAzureStorage(credential, vaultUri);
        return pubCertificate;
    }

    static X509Certificate2 GetPublicCertificateFromAzureStorage(
        ClientSecretCredential credential, string uri)
    {
        // Create a certificate client for the Key Vault
        CertificateClient certificateClient =
            new CertificateClient(new Uri(uri), credential);

        // Retrieve the certificate with the public key
        KeyVaultCertificateWithPolicy certificate =
        certificateClient.GetCertificateAsync("GroupDocsSignatureCertificate").Result;
        return new X509Certificate2(certificate.Cer);
    }
}

📌ملاحظات:

  • بيانات اعتماد Azure: تقوم طريقة GetAzureSecretCredential بإنشاء بيانات اعتماد باستخدام معرف مستأجرك، معرف العميل، و السري. ملاحظة أمنية: تأكد من تخزين هذه البيانات اعتمادك بشكل آمن (على سبيل المثال، باستخدام خزانة مفاتيح Azure أو مخزن التكوين الآمن) لضمان سلامة تنفيذ التوقيعات الرقمية على PDF الخاص بك.
  • توقيع باستخدام Azure: تستخدم طريقة SignWithAzure من Azure SDK لتوقيع هاش باستخدام الشهادة المخزنة في خزانة مفاتيح Azure، مما يوضح نهجاً مهنياً لإدارة الشهادات يتبع أفضل الممارسات في التوافق الرقمي.
  • استرجاع الشهادة العامة: تربط طريقة GetPublicCertificateFromAzureStorage بخزانة مفاتيح Azure واسترجاع الشهادة اللازمة لتأكيد التوقيعات الرقمية، مما يضمن أن التوقيعات الإلكترونية للمستندات يمكن التحقق منها بشكل صحيح.

الخطوة 6. خطوات تنفيذ خزانة مفاتيح Azure لتوقيعات PDF الرقمية

لتكامل خزانة مفاتيح Azure مع خدمات التوقيع المخصصة الخاصة بك، اتبع هذه الخطوات:

  1. إعداد خزانة مفاتيح Azure:
    • إنشاء خزانة مفاتيح Azure.
    • تحميل شهادتك إلى خزانة المفاتيح.
    • إعداد سياسات الوصول لتطبيقك.
  2. إعداد بيانات اعتماد Azure:
    • تسجيل تطبيقك في Azure Active Directory.
    • استرجاع معرف مستأجرك، معرف العميل، و السري.
    • إنشاء ClientSecretCredential للوصول إلى خزانة المفاتيح.
  3. استرجاع الشهادة:
    • استخدام CertificateClient لاسترجاع الشهادة التي تحتوي على المفتاح العام من خزانة مفاتيح Azure.
    • تستخدم هذه الشهادة لتأكيد التوقيع الرقمي.
  4. تطبيق التوقيع المخصص:
    • استخدام CryptographyClient من Azure SDK لتوقيع هاش المستند.
    • تحديد خوارزمية التوقيع المناسبة (على سبيل المثال، RS256).

📌ملاحظة:

كل هذه الخطوات حاسمة لضمان أن عملية التوقيع آمنة وأن المفاتيح الحساسة تبقى محمية في السحابة بينما تقدم المرونة لتطبيق خدمات التوقيع الخاصة بك لمتطلبات خاصة.


🧩 توسيع تطبيق التوقيع المخصص الخاص بك

جاذبية تطبيق التوقيع باستخدام هاش مخصص من GroupDocs.Signature هي أن يمكنك تعديلها لتعمل مع أي جهاز التوقيع الخارجي أو خدمة. إليك بعض الأمثلة على كيفية توسيع هذا التطبيق:

  1. وحدات الأمان المادية (HSMs): تنفيذ موقّع مخصص يتواصل مع وحدات HSM المادية للحصول على أقصى درجة من الأمان.
  2. دمج البطاقات الذكية: إنشاء موقّع يتفاعل مع قراء البطاقات الذكية للموظفين الذين يتطلبون تصديقاً جسدياً.
  3. التعرف البيومتري: بناء خدمة التوقيع التي تتطلب التعرف على البصمة أو التعرف على الوجه قبل الموافقة على إنشاء التوقيع.
  4. عملية الموافقة متعددة الأطراف: تنفيذ سير عمل التوقيع المخصص حيث يجب على عدة أطراف الموافقة قبل تطبيق التوقيع النهائي.
  5. مقدمي خدمات السحابة: تعديل المثال للعمل مع AWS KMS، Google Cloud KMS، أو خدمات إدارة المفاتيح السحابية الأخرى.

من خلال تنفيذ خدمات التوقيع الخاصة بك من خلال واجهة ICustomSignHash، يمكنك التحكم الكامل في عملياتك التشفيرية بينما تستفيد من قدرات معالجة المستندات القوية لـ GroupDocs.Signature for .NET.


✨ الملاحظات النهائية حول التوقيعات الإلكترونية للمستندات

هذا الدليل يوضح كيفية دمج GroupDocs.Signature مع خزانة مفاتيح Azure لإنشاء التوقيعات الإلكترونية للمستندات التي تتوافق مع معايير الصناعة في PDF بشكل آمن. التوقيعات الإلكترونية للمستندات التي تم إنشاؤها من خلال هذا النهج تتوافق مع معايير الصناعة لصحتها وسلامتها. من خلال اتباع هذا النهج خطوة بخطوة واتباع أفضل الممارسات الأمنية (مثل معالجة بيانات اعتماد آمن)، يمكنك تنفيذ حل التوقيعات الرقمية في تطبيق .NET الخاص بك الذي يعمل عبر جميع عمليات عمل المستندات الخاصة بك.

لمزيد من التفاصيل والسيناريوهات المتقدمة، راجع التوثيق الرسمي.


الحصول على تجربة مجانية

يمكنك تجربة APIs GroupDocs.Signature مجاناً من خلال تحميل وإعداد أحدث إصدار على موقع التنزيلات.

يمكنك أيضًا الحصول على رخصة مؤقتة لتجربة جميع وظائف المكتبة دون أي قيود. انتقل إلى صفحة الرخصة المؤقتة للحصول على رخصة مؤقتة.

🔗 انظر أيضاً

لمزيد من المعلومات والموارد، قد تجد الروابط التالية مفيدة: