مقدمه

فایل‌های PDF در صنایع مختلف ضروری هستند و تضمین اصالت و یکپارچگی آن‌ها با امضاهای دیجیتال یک اقدام امنیتی مهم است. امضاهای دیجیتال اعتبار قانونی دارند و از دستکاری مستندات جلوگیری می‌کنند. این راهنمای جامع شما را در پیاده‌سازی امضای PDF در .NET راهنمایی می‌کند تا یک سرویس امضای دیجیتال امن PDF با استفاده از Azure Key Vault و GroupDocs.Signature برای .NET ایجاد کنید.

امضاهای الکترونیکی مستندات در کسب و کارهایی که به کارکردهای بدون کاغذ می‌پردازند اهمیت زیادی پیدا کرده‌اند. GroupDocs.Signature برای .NET یک راه حل امضای دیجیتال PDF قدرتمند در C# ارائه می‌دهد که نیازهای امضای دیجیتال را در چارچوب‌های مقرراتی مختلف برآورده می‌کند. چه شما تازه‌کار امضای PDF در برنامه‌های .NET هستید یا قصد بهبود پیاده‌سازی فعلی خود را دارید، این آموزش همه چیزهایی را که باید بدانید را پوشش می‌دهد.

Azure Key Vault یک سرویس مدیریت کلید مبتنی بر ابری است که ذخیره و مدیریت امن کلیدهای رمزنگاری و گواهینامه‌ها را امکان‌پذیر می‌کند. GroupDocs.Signature برای .NET یک API امضای PDF امن و قدرتمند است که به توسعه دهندگان اجازه می‌دهد امضاهای دیجیتال را به برنامه‌ای برنامه‌ریزی کنند. با ادغام این فناوری‌ها، می‌توانید یک سرویس امضای دیجیتال PDF قدرتمند و کارآمد بسازید.

یکی از ویژگی‌های قدرتمند که بررسی می‌کنیم امضای هاش سفارشی است که انعطاف‌پذیری استثنایی برای جریان امضای شما فراهم می‌کند. این روش به شما اجازه می‌دهد دستگاه‌های امضای خارجی مانند مودول‌های امنیتی سخت‌افزار (HSMs)، کارت‌های هوشمند یا هر دستگاه رمزنگاری دیگری را به برنامه خود متصل کنید. با امضای هاش سفارشی، توسعه دهندگان می‌توانند سرویس‌های امضا خود را بنویسند که با سیستم‌های اختصاصی، زیرساخت‌های قدیمی یا سخت‌افزار امنیتی ویژه ارتباط برقرار کنند در حالی که با چارچوب GroupDocs.Signature سازگار می‌باشند. این یک راه حل ایده‌آل برای سازمان‌هایی است که نیازهای امنیتی خاصی دارند یا سرمایه‌گذاری در زیرساخت‌های رمزنگاری دارند.

🔐 ایجاد یک Azure Key Vault و گواهینامه

شروع کنیم با تنظیم یک Azure Key Vault و تولید گواهینامه.

مرحله 1: تهیه Key Vault

یک منبع جدید Azure Key Vault را با استفاده از پورتال Azure ایجاد کنید. برای راهنمای دقیق، لطفا این راهنمای شروع سریع را بررسی کنید.

💡اگر اشتراک فعال Azure ندارید، می‌توانید برای شروع یک آزمایش رایگان یک‌ماهه ثبت نام کنید.

مرحله 2: تولید یا وارد کردن گواهینامه

پس از راه اندازی Key Vault، به داشبورد آن بروید، تب گواهینامه‌ها را انتخاب کنید و روی Generate/Import کلیک کنید تا گواهینامه خود را اضافه کنید.

مجازی Azure Key Vault برای ایجاد گواهینامه‌های امضای دیجیتال PDF

مرحله 3: در فیلد Method of Certificate Creation، گزینه Generate را انتخاب کنید تا یک گواهینامه جدید خودکار ایجاد شود. برای این مثال، از نوع گواهینامه Self-signed certificate استفاده می‌کنیم.

شکل کامل جریان کار GroupDocs .NET PDF امضای دیجیتال با Azure Key Vault

توجه: اگر ترجیح می‌دهید از گواهینامه موجود استفاده کنید، می‌توانید گزینه Import را انتخاب کنید تا یک گواهینامه از دستگاه محلی خود وارد کنید.

نمونه کد C# برای پیاده‌سازی امضای هاش سفارشی با GroupDocs.Signature

مرحله 4: سپس به Advanced Policy Configuration بروید و گزینه Private Key Export را به No تنظیم کنید.

شکل جریان امضای گواهینامه Azure نشان دهنده جریان داده بین اجزاء

مرحله 5: در نهایت روی Create کلیک کنید. گواهینامه اکنون به Key Vault شما اضافه خواهد شد.

برای مشاهده جزئیات آن، فقط روی گواهینامه کلیک کنید تا ویژگی‌های آن باز شود.

نمونه تایید امضای PDF در برنامه .NET نشان دهنده نتایج تایید

⚙️ ثبت برنامه برای دسترسی به Azure Key Vault

برای دسترسی Web API به Azure Key Vault، باید آن را در Azure Active Directory ثبت کنید:

مرحله 1: به Azure Active Directory بروید، App registrations را انتخاب کنید و روی New registration کلیک کنید.

انترگراسیون امضاهای الکترونیکی مستندات بین Azure Key Vault و GroupDocs

مرحله 2: نام برنامه خود را وارد کنید و ثبت کنید.

صفحه پیکربندی API امنیتی امضای PDF امن

پس از ثبت، جزئیات کلید را دریافت خواهید کرد—Client ID و Tenant ID را برای استفاده در برنامه خود کپی کنید.

مجازی پیکربندی دسترسی Azure Key Vault برای مجوزهای امضای دیجیتال

مرحله 3: سپس API Permissions را از منوی جانبی انتخاب کنید و روی Add Permission کلیک کنید. Azure Key Vault را انتخاب کنید، Full Access را انتخاب کنید و فرایند را با کلیک بر روی Add Permissions تکمیل کنید.

نمونه خروجی امضای PDF .NET نشان دهنده یک مستند امضا شده با موفقیت

مرحله 4: Certificate & secrets را انتخاب کنید و روی New client secret کلیک کنید تا یک کلید مخفی جدید ایجاد کنید. این کلید را کپی کنید تا از برنامه .NET خود دسترسی داشته باشید.

شکل انترگراسیون دستگاه امضای خارجی برای پیاده‌سازی هاش سفارشی GroupDocs

🔐 اختصاص سیاست دسترسی به Azure Key Vault

در مراحل قبلی، برنامه را ایجاد و ثبت کردیم. اکنون باید دسترسی برنامه جدید ثبت شده به Azure Key Vault را مجاز کنیم:

مرحله 1: به Azure Key Vault بروید، Access Policies را انتخاب کنید و روی Create کلیک کنید.

تنظیمات سازگاری امضای دیجیتال برای نیازهای مقرراتی

مرحله 2: مجوزهای لازم را انتخاب کنید و روی Next کلیک کنید.

ثبت برنامه Azure Active Directory برای خدمات امضای PDF

مرحله 3: در این پنجره، برنامه‌ای که قبلاً ثبت کردیم، GroupDocs.Signature.Service را انتخاب کنید و روی Create کلیک کنید.

شکل معماری سرویس امضا سفارشی نشان دهنده روابط اجزاء
پنل تنظیم ظاهر GroupDocs Signature برای سفارشی‌سازی ظاهر امضا

برنامه اکنون در بخش Access Policies ظاهر خواهد شد.

شکل فرایند تایید امضای دیجیتال PDF نشان دهنده مراحل جریان تایید

📑 چگونه از Azure Key Vault با GroupDocs.Signature برای امضای PDF در .NET استفاده کنید

این راهنمای جامع توضیح می‌دهد که چگونه با استفاده از امضای هاش سفارشی که از Azure Key Vault استفاده می‌کند، مستندات PDF را با API GroupDocs.Signature در .NET امضا کنید. ما فرایند را به مراحل واضح تقسیم می‌کنیم—از پیکربندی محیط 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 را پیاده‌سازی می‌کند و در جریان امضای استفاده خواهد شد.

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 را با دریافت گواهینامه‌های 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 یک گواهینامه با استفاده از ID مانتن، ID کلاینت و رمز شما ایجاد می‌کند. توجه امنیتی: مطمئن شوید که این گواهینامه‌ها را امن ذخیره کنید (به عنوان مثال، با استفاده از Azure Key Vault یا یک ذخیره‌سازی پیکربندی امن) تا یکپارچگی پیاده‌سازی امضای PDF .NET شما حفظ شود.
  • امضای با Azure: روش SignWithAzure از CryptographyClient از SDK Azure برای امضای هاش با گواهینامه‌ای که در Azure Key Vault ذخیره شده‌است استفاده می‌کند، یک رویکرد حرفه‌ای برای مدیریت گواهینامه که با بهترین روش‌های سازگاری امضای دیجیتال مطابقت دارد.
  • دریافت گواهینامه عمومی: این روش به Key Vault شما متصل می‌شود و گواهینامه‌ای را که برای تایید امضای دیجیتال مورد نیاز است دریافت می‌کند، تا امضاهای الکترونیکی مستندات شما به درستی تایید شوند.

مرحله 6. مراحل پیاده‌سازی Azure Key Vault برای امضای دیجیتال PDF

برای ادغام Azure Key Vault با سرویس‌های امضا سفارشی خود، این مراحل را دنبال کنید:

  1. پیکربندی Azure Key Vault:
    • یک نمونه Azure Key Vault ایجاد کنید.
    • گواهینامه امضای خود را به Key Vault آپلود کنید.
    • سیاست‌های دسترسی برای برنامه خود را پیکربندی کنید.
  2. پیکربندی گواهینامه‌های Azure:
    • برنامه خود را در Azure Active Directory ثبت کنید.
    • ID مانتن، ID کلاینت و رمز کلید خود را دریافت کنید.
    • یک ClientSecretCredential برای دسترسی به Key Vault ایجاد کنید.
  3. دریافت گواهینامه:
    • از CertificateClient برای دریافت گواهینامه‌ای که کلید عمومی را از Azure Key Vault دارد استفاده کنید.
    • این گواهینامه برای تایید امضای دیجیتال استفاده می‌شود.
  4. پیاده‌سازی امضای سفارشی:
    • از CryptographyClient از SDK Azure برای امضای هاش مستند استفاده کنید.
    • الگوریتم امضای مناسب (مانند RS256) را مشخص کنید.

📌توضیحات:

هر یک از این مراحل برای اطمینان از اینکه فرایند امضای شما امن است و کلیدهای حساس در ابری محافظت می‌شوند و در عین حال انعطاف‌پذیری برای پیاده‌سازی سرویس‌های امضا سفارشی خود را فراهم می‌کند، ضروری است.


🧩 گسترش پیاده‌سازی امضای سفارشی شما

بهترین ویژگی GroupDocs.Signature امضای هاش سفارشی این است که می‌توانید آن را برای کار با تقریباً هر دستگاه امضای خارجی یا سرویس سفارشی تنظیم کنید. این چند نمونه از اینکه چگونه می‌توانید این پیاده‌سازی را گسترش دهید:

  1. مودول‌های امنیتی سخت‌افزار (HSMs): یک امضاگر سفارشی پیاده‌سازی کنید که با HSMs فیزیکی برای امنیت بیشترین ارتباط برقرار کند.
  2. انترگراسیون کارت هوشمند: یک امضاگر ایجاد کنید که با خواننده‌های کارت هوشمند برای محیط‌های سازمانی که نیاز به تأیید فیزیکی دارند ارتباط برقرار کند.
  3. تایید بیومتریک: یک سرویس امضا ایجاد کنید که قبل از مجاز کردن ایجاد امضا، تایید انگشت یا تشخیص چهره را نیاز دارد.
  4. تایید چند نفره: یک جریان امضا سفارشی پیاده‌سازی کنید که قبل از اعمال امضا نهایی، چندین نفر باید تایید کنند.
  5. پروایدرهای سرویس ابری: نمونه را برای کار با AWS KMS، Google Cloud KMS یا سایر سرویس‌های مدیریت کلید ابری تنظیم کنید.

با پیاده‌سازی سرویس‌های امضا خود از طریق رابط ICustomSignHash، کنترل کامل بر عملیات رمزنگاری خود دارید در حالی که از قابلیت‌های دستکاری مستندات قدرتمند GroupDocs.Signature برای .NET استفاده می‌کنید.


✨ نظرات نهایی در مورد امضاهای الکترونیکی مستندات

این راهنمای نشان داد که چگونه می‌توانید GroupDocs.Signature را با Azure Key Vault برای ایجاد امضاهای الکترونیکی مستندات PDF در یک روش امن ادغام کنید. امضاهای الکترونیکی مستندات که از طریق این روش ایجاد شده‌اند، استانداردهای صنعت برای اصالت و یکپارچگی را برآورده می‌کنند. با پیروی از این رویکرد مرحله به مرحله و رعایت بهترین روش‌های امنیتی (مانند مدیریت امن گواهینامه‌ها)، می‌توانید یک راه حل امضای دیجیتال قدرتمند در برنامه .NET خود پیاده‌سازی کنید که در جریان مستندات شما کار می‌کند.

برای جزئیات بیشتر و موارد پیشرفته، به دستورالعمل رسمی مراجعه کنید.


دریافت یک آزمایش رایگان

می‌توانید API‌های GroupDocs.Signature را بدون هزینه با دانلود و نصب آخرین نسخه از سایت دانلودهای انتشار ما آزمایش کنید.

همچنین می‌توانید یک گواهینامه موقت دریافت کنید تا همه قابلیت‌های کتابخانه را بدون هیچ محدودیت آزمایش کنید. به صفحه گواهینامه موقت بروید تا برای یک گواهینامه موقت درخواست دهید.

🔗 همچنین ببینید

برای اطلاعات بیشتر و منابع اضافی، ممکن است این لینک‌ها برای شما مفید باشند: