Вступ

Файли 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. Інтегруючи ці технології, ви можете створити надійну та ефективну службу цифрових підписів PDF.

Однією з найпотужніших функцій, які ми розглянемо, є підпис з використанням власного хешу, який надає виняткову гнучкість для вашого процесу підпису. Цей підхід дозволяє вам підключати зовнішні пристрої для підпису, такі як апаратні модулі безпеки (HSM), смарт-карти або будь-які інші криптографічні пристрої до вашого застосунку. З підписом власного хешу розробники можуть писати власні служби підпису, які взаємодіють з власними системами, устарелими інфраструктурами або спеціалізованим апаратним забезпеченням, зберігаючи сумісність з фреймворком GroupDocs.Signature. Це робить його ідеальним рішенням для організацій з конкретними вимогами до безпеки або існуючими інвестиціями в криптографічну інфраструктуру.

🔐 Створення Azure Key Vault та сертифіката

Почнімо з налаштування Azure Key Vault та генерації сертифіката.

Крок 1: Налаштування Key Vault

Створіть новий ресурс Azure Key Vault за допомогою порталу Azure. Для детальних інструкцій перегляньте цей швидкий посібник.

💡Якщо у вас немає активної підписки Azure, ви можете зареєструватися на 1-місячний безкоштовний пробний період, щоб почати.

Крок 2: Генерація або імпорт вашого сертифіката

Після запуску вашого сховища ключів перейдіть на його панель управління, виберіть вкладку Certificates та натисніть 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. Сертифікат буде доданий до вашого сховища ключів.

Щоб переглянути його деталі, просто натисніть на сертифікат, щоб відкрити його властивості.

Приклад перевірки підпису 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 для .NET PDF підпису

Цей всебічний посібник пояснює, як підписувати документи PDF за допомогою API GroupDocs.Signature у .NET з підписом власного хешу, який використовує Azure Key Vault. Ми розбиємо процес на чіткі кроки — від налаштування вашого середовища C# до реалізації власного підпису хешу, який відповідає вимогам цифрових підписів.

Огляд безпечного підпису PDF з реалізацією власного хешу

Підхід підпису власного хешу надає виняткову гнучкість для реалізації електронних підписів документів у ваших застосунках .NET. Ось що ми розглянемо:

  • Налаштуйте ваш застосунок .NET для роботи з GroupDocs.Signature для цифрових підписів PDF
  • Налаштуйте професійні опції цифрового підпису з правильним керуванням сертифікатами
  • Реалізуйте механізм підпису власного хешу для максимальної гнучкості
  • Інтегруйте Azure Key Vault для безпечного отримання публічного сертифіката та підпису документа
  • Дотримуйтесь найкращих практик безпеки на протязі всієї реалізації

Для додаткової інформації зверніться до документації GroupDocs.Signature щодо цифрового підпису з власним хешем.

🚀 Переваги підпису власного хешу для застосунків PDF .NET

Перш ніж перейти до реалізації, важливо розуміти, чому підпис власного хешу представляє значний прогрес у технології цифрових підписів:

  1. Інтеграція з зовнішніми пристроями підпису: Підпис власного хешу дозволяє безперебійно підключатися до апаратних модулів безпеки (HSM), смарт-карт, біометричних пристроїв та інших спеціалізованих криптографічних пристроїв, які ваша організація вже може використовувати.
  2. Гнучка архітектура для корпоративних рішень: Організації можуть писати власні служби підпису, які взаємодіють з існуючою інфраструктурою, устарелими системами або власними рішеннями підпису, зберігаючи сумісність з GroupDocs.Signature.
  3. Покращена відповідність вимогам безпеки: Розділяючи генерацію хешу від фактичного процесу підпису, ви отримуєте кращий контроль над криптографічними операціями, що допомагає відповідати суворим нормативним вимогам, таким як eIDAS, ESIGN Act та галузевим стандартам відповідності.
  4. Підтримка керування ключами в хмарі: Інтеграція з Azure Key Vault дозволяє зберігати сертифікати безпечно та керувати ними в сертифікованій безпечній інфраструктурі Microsoft, а не на локальних машинах.
  5. Кастомізація процесу підпису: Реалізуйте кастомізовані потоки схвалення, послідовності підпису багатьох учасників або спеціалізовані правила перевірки, які виходять за межі стандартних реалізацій цифрових підписів.

Крок 1. Налаштування середовища цифрового підпису PDF у C#

Почніть з визначення шляхів до файлів та ініціалізації об’єкта GroupDocs.Signature у вашому застосунку C#. У цьому прикладі ми вказуємо шлях до джерельного файлу PDF та місце виводу для підписаного документа.

public static void SignDocument()
{
    // Визначте шляхи для джерельних та вихідних документів
    string sampleFilePath = "sample.pdf";
    string sampleOutputFilePath = "signed.pdf";

    using (Signature signature = new Signature(sampleFilePath))
    {
        // Код продовжується в наступних кроках...
    }
}

📌Примітка:

Цей крок створює новий екземпляр Signature, який завантажує PDF-документ, який ви хочете підписати, встановлюючи основу для безпечного підпису PDF у вашому застосунку .NET.


Крок 2. Налаштування опцій цифрового підпису

Далі налаштуйте опції цифрового підпису. Ці опції включають деталі сертифікату, візуальний вигляд та алгоритм хешування. Підпис власного хешу буде підключений пізніше.

// Ініціалізація опцій цифрового підпису
DigitalSignOptions options = new DigitalSignOptions()
{
    Signature = new DigitalSignature(),
    Password = "1234567890",      // Пароль сертифікату
    Reason = "Sign",              // Причина підпису
    Contact = "JohnSmith",        // Контактна інформація
    Location = "Office1",         // Місце підпису
    AllPages = true,              // Застосувати підпис на всіх сторінках
    Width = 80,
    Height = 60,
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Margin = new Padding() { Bottom = 10, Right = 10 },
    HashAlgorithm = HashAlgorithm.Sha256 // Визначте SHA-256 для хешування
};

📌Примітка:

Налаштуйте базові властивості цифрового підпису, такі як вигляд, розташування та хешування, щоб ваші електронні підписи документів відповідали професійним стандартам.

Примітка з безпеки: У виробництві уникайте жорсткого кодування чутливих значень (наприклад, паролів); замість цього використовуйте безпечні методи конфігурації, що відповідають вимогам цифрового підпису.


Крок 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, отримуючи кредитні дані Azure, отримуючи публічний сертифікат та безпечно підписуючи хеш документа.

public class AzureSigner : ICustomSignHash
{
    public byte[] CustomSignHash(byte[] hash, HashAlgorithm hashAlgorithm,
     SignatureContext signatureContext)
    {
        // Делегуйте операцію підпису Azure
        return SignWithAzure(hash);
    }

    private static byte[] SignWithAzure(byte[] signableHash)
    {
        // Отримайте кредитні дані Azure
        var credential = GetAzureSecretCredential();

        // Визначте ідентифікатор ключа сертифікату Key Vault
        var certificateKeyId =
        "https://groupdocskeyvault.vault.azure.net/keys/GroupDocsSignatureCertificate/>";
        CryptographyClient client =
            new CryptographyClient(new Uri(certificateKeyId), credential);

        // Підпишіть хеш за допомогою RS256
        var result = client.Sign(SignatureAlgorithm.RS256, signableHash);
        return result.Signature;
    }

    static ClientSecretCredential GetAzureSecretCredential()
    {
        // Надайте ваші деталі Azure AD tenant, client та secret
        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()
    {
        // Визначте URI Key Vault
        string vaultUri = "https://groupdocskeyvault.vault.azure.net/>";
        var credential  = GetAzureSecretCredential();
        X509Certificate2 pubCertificate =
        GetPublicCertificateFromAzureStorage(credential, vaultUri);
        return pubCertificate;
    }

    static X509Certificate2 GetPublicCertificateFromAzureStorage(
        ClientSecretCredential credential, string uri)
    {
        // Створіть клієнта сертифікату для Key Vault
        CertificateClient certificateClient =
            new CertificateClient(new Uri(uri), credential);

        // Отримайте сертифікат з публічним ключем
        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.
    • Завантажте ваш сертифікат підпису до Key Vault.
    • Налаштуйте політики доступу для вашого застосунку.
  2. Налаштування кредитних даних Azure:
    • Зареєструйте ваш застосунок в Azure Active Directory.
    • Отримайте ваш tenant ID, client ID та client secret.
    • Створіть ClientSecretCredential для доступу до Key Vault.
  3. Отримання сертифікату:
    • Використовуйте CertificateClient, щоб отримати сертифікат, що містить публічний ключ з Azure Key Vault.
    • Цей сертифікат використовується для перевірки цифрового підпису.
  4. Реалізація власного підпису:
    • Використовуйте CryptographyClient з Azure SDK для підпису хешу документа.
    • Визначте відповідний алгоритм підпису (наприклад, RS256).

📌Примітка:

Кожен з цих кроків критично важливий, щоб забезпечити, що ваш процес підпису є безпечним, а чутливі ключі залишаються захищеними в хмарі, одночасно надаючи гнучкість для реалізації власних служб підпису для спеціалізованих вимог.


🧩 Розширення вашої реалізації власного підпису

Краса підходу GroupDocs.Signature до власного підпису хешу полягає в тому, що ви можете адаптувати його для роботи майже з будь-яким зовнішнім пристроєм підпису або службою. Ось деякі приклади того, як ви можете розширити цю реалізацію:

  1. Апаратні модулі безпеки (HSMs): Реалізуйте власний підпис, який комунікує з фізичними HSM для максимальної безпеки.
  2. Інтеграція смарт-карт: Створіть підпис, який взаємодіє зі смарт-карт-ридерами для корпоративних середовищ, які вимагають фізичної аутентифікації.
  3. Біометрична аутентифікація: Спочатку побудуйте службу підпису, яка вимагає відбитку пальця або розпізнавання обличчя перед авторизацією створення підпису.
  4. Поток схвалення багатьох учасників: Реалізуйте кастомізований поток підпису, де декілька учасників повинні схвалити, перш ніж буде застосований остаточний підпис.
  5. Провайдери хмарних послуг: Адаптуйте приклад для роботи з AWS KMS, Google Cloud KMS або іншими хмарними службами керування ключами.

Реалізуючи власні служби підпису через інтерфейс ICustomSignHash, ви зберігаєте повний контроль над вашими криптографічними операціями, одночасно використовуючи потужні можливості обробки документів GroupDocs.Signature для .NET.


✨ Фінальні думки щодо електронних підписів документів

Цей посібник показав, як інтегрувати GroupDocs.Signature з Azure Key Vault для створення відповідних електронних підписів документів для файлів PDF безпечним способом. Електронні підписи документів, створені цим методом, відповідають промисловим стандартам автентичності та цілісності. Дотримуючись цього крокового підходу та найкращих практик безпеки (таких як безпечне керування кредитними данними), ви можете реалізувати міцне рішення цифрових підписів у вашому застосунку .NET, яке працює на всій вашій документній роботі.

Для подальших деталей та складних сценаріїв зверніться до офіційної документації.


Отримайте безкоштовну пробну версію

Ви можете безкоштовно спробувати API GroupDocs.Signature, просто завантаживши та встановивши останню версію на нашому сайті завантажень.

Ви також можете отримати тимчасову ліцензію, щоб тестувати всі функції бібліотеки без обмежень. Перейдіть на сторінку тимчасової ліцензії, щоб подати заявку на тимчасову ліцензію.

🔗 Дивіться також

Для додаткової інформації та додаткових ресурсів ви можете знайти корисними наступні посилання: