المقدمة

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

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

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

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

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

لنبدأ بإعداد Azure Key Vault وإنشاء شهادة.

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

أنشئ مورد Azure Key Vault جديدًا باستخدام Azure portal. للحصول على تعليمات مفصلة، يرجى الاطلاع على هذا دليل البدء السريع.

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

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

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

Azure Key Vault interface for creating digital signature certificates for PDF signing

الخطوة 3: في حقل Method of Certificate Creation، اختر Generate لإنشاء شهادة جديدة تلقائيًا. في هذا المثال، نختار Self-signed certificate كنوع سلطة الشهادة.

Complete workflow diagram of GroupDocs .NET PDF digital signature process with Azure Key Vault

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

C# code example of custom hash signing implementation with GroupDocs.Signature

الخطوة 4: ثم انتقل إلى Advanced Policy Configuration واضبط خيار Private Key Export على No.

Azure certificate signing process diagram showing the data flow between components

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

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

PDF signature validation example in .NET application showing verification results

⚙️ تسجيل التطبيق لتمكين الوصول إلى Azure Key Vault

للسماح لواجهة برمجة تطبيقات الويب (Web API) بالوصول إلى Azure Key Vault، تحتاج إلى تسجيله في Azure Active Directory:

الخطوة 1: انتقل إلى Azure Active Directory، اختر App registrations، وانقر New registration.

Electronic document signatures integration between Azure Key Vault and GroupDocs

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

Secure PDF signing API configuration screen with security settings

بعد التسجيل، ستحصل على تفاصيل المفتاح—انسخ Client ID و Tenant ID لاستخدامهما في تطبيقك.

Azure Key Vault access policy setup interface for digital signature permissions

الخطوة 3: بعد ذلك، اختر API Permissions من القائمة الجانبية وانقر Add Permission. اختر Azure Key Vault، حدد Full Access، وأكمل العملية بالنقر Add Permissions.

.NET PDF signing output example showing a successfully signed document

الخطوة 4: اختر Certificate & secrets وانقر New client secret لإنشاء مفتاح سري جديد. انسخ هذا المفتاح لاستخدامه في تطبيق .NET الخاص بك.

External signing device integration diagram for GroupDocs custom hash implementation

🔐 تعيين سياسة الوصول إلى Azure Key Vault

في الخطوات السابقة، أنشأنا وسجّلنا التطبيق. الآن، نحتاج إلى منح التطبيق المسجل حديثًا حق الوصول إلى Azure Key Vault:

الخطوة 1: انتقل إلى Azure Key Vault، اختر Access Policies، وانقر Create.

Digital signature compliance settings configuration for regulatory requirements

الخطوة 2: اختر الأذونات اللازمة وانقر Next.

Azure Active Directory application registration for PDF signing services

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

Custom sign services architecture diagram showing component relationships
GroupDocs Signature appearance settings panel for visual signature customization

سيظهر التطبيق الآن في قسم Access Policies.

PDF digital signature verification process showing validation workflow steps

📑 كيفية استخدام Azure Key Vault مع GroupDocs.Signature لتوقيع PDF في .NET

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

نظرة عامة على توقيع PDF الآمن مع تنفيذ تجزئة مخصصة

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

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

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

🚀 فوائد توقيع التجزئة المخصص لتطبيقات PDF في .NET

قبل الخوض في التنفيذ، من المهم فهم لماذا يمثل توقيع التجزئة المخصص تطورًا كبيرًا في تقنية التوقيع الرقمي:

  1. التكامل مع أجهزة التوقيع الخارجية: يتيح توقيع التجزئة المخصص الاتصال السلس مع وحدات الأمان المادية (HSMs)، البطاقات الذكية، الأجهزة البيومترية، أو أي أجهزة تشفير متخصصة قد تستخدمها مؤسستك.
  2. معمارية مرنة للحلول المؤسسية: يمكن للمؤسسات كتابة خدمات توقيع خاصة تتفاعل مع البنية التحتية الحالية، الأنظمة القديمة، أو حلول التوقيع المملوكة مع الحفاظ على التوافق مع GroupDocs.Signature.
  3. تحسين الامتثال الأمني: من خلال فصل توليد التجزئة عن عملية التوقيع الفعلية، تحصل على سيطرة أفضل على العمليات التشفيرية، مما يساعد على تلبية المتطلبات التنظيمية الصارمة مثل eIDAS، ESIGN Act، ومعايير الامتثال الخاصة بالصناعة.
  4. دعم إدارة المفاتيح السحابية: يتيح التكامل مع Azure Key Vault تخزين الشهادات وإدارتها بأمان في بنية 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 Key Vault أو أي جهاز توقيع خارجي آخر ترغب في دمجه.

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

📌تعليق:

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


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

أخيرًا، استدعِ طريقة Sign لإنشاء مستند PDF موقّع باستخدام تنفيذ توقيع التجزئة المخصص الخاص بك.

signature.Sign(sampleOutputFilePath, options);

📌تعليق:

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


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

فيما يلي التنفيذ الكامل للمُوقّع المخصص باستخدام Azure Key Vault لتوقيع شهادة 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 بيانات اعتماد باستخدام معرف المستأجر (tenant ID)، معرف العميل (client ID)، والسر. ملاحظة أمان: احرص على تخزين هذه البيانات بأمان (مثلاً باستخدام Azure Key Vault أو مخزن تكوين آمن) للحفاظ على سلامة تنفيذ توقيع PDF في .NET.
  • التوقيع باستخدام Azure:
    تستخدم طريقة SignWithAzure عميل CryptographyClient من Azure SDK لتوقيع التجزئة باستخدام الشهادة المخزنة في Azure Key Vault، مما يُظهر نهجًا مهنيًا لإدارة الشهادات يتماشى مع أفضل ممارسات الامتثال للتوقيع الرقمي.
  • استرجاع الشهادة العامة:
    تتصل طريقة GetPublicCertificateFromAzureStorage بمخزن Azure Key Vault وتسترجع الشهادة اللازمة للتحقق من التوقيع الرقمي، مما يضمن إمكانية التحقق من توقيعات المستندات الإلكترونية بشكل مناسب.

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

لدمج Azure Key Vault مع خدمات التوقيع المخصصة الخاصة بك، اتبع الخطوات التالية:

  1. إعداد Azure Key Vault:
    • أنشئ مثيلًا لـ Azure Key Vault.
    • حمّل شهادة التوقيع الخاصة بك إلى المخزن.
    • اضبط سياسات الوصول لتطبيقك.
  2. تكوين بيانات اعتماد Azure:
    • سجّل تطبيقك في Azure Active Directory.
    • احصل على معرف المستأجر (tenant ID)، معرف العميل (client ID)، والسر (client secret).
    • أنشئ ClientSecretCredential للوصول إلى المخزن.
  3. استرجاع الشهادة:
    • استخدم CertificateClient لجلب الشهادة التي تحتوي على المفتاح العام من Azure Key Vault.
    • تُستخدم هذه الشهادة للتحقق من التوقيع الرقمي.
  4. تنفيذ التوقيع المخصص:
    • استخدم CryptographyClient من Azure SDK لتوقيع تجزئة المستند.
    • حدد خوارزمية التوقيع المناسبة (مثل RS256).

📌تعليق:

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


🧩 توسيع تنفيذ التوقيع المخصص الخاص بك

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

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

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


✨ الخلاصة حول التوقيعات الإلكترونية للمستندات

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

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


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

يمكنك تجربة واجهات برمجة تطبيقات GroupDocs.Signature مجانًا بمجرد تنزيل وتثبيت أحدث نسخة من موقعنا release downloads website.

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

🔗 انظر أيضًا

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