Вступ
Файли 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, щоб додати ваш сертифікат.

Крок 3: У полі Method of Certificate Creation виберіть Generate, щоб автоматично створити новий сертифікат. Для цього прикладу ми вибираємо Self-signed certificate як тип сертифікаційного центру.

Примітка: Якщо ви бажаєте використати існуючий сертифікат, ви можете вибрати Import, щоб завантажити його з вашого локального пристрою.

Крок 4: Перейдіть до Advanced Policy Configuration та встановить параметр Private Key Export на No.

Крок 5: Нарешті, натисніть Create. Сертифікат буде доданий до вашого сховища ключів.
Щоб переглянути його деталі, просто натисніть на сертифікат, щоб відкрити його властивості.

⚙️ Реєстрація застосунку для надання доступу до Azure Key Vault
Щоб дозволити Web API отримувати доступ до Azure Key Vault, вам потрібно зареєструвати його в Azure Active Directory:
Крок 1: Перейдіть до Azure Active Directory, виберіть App registrations та натисніть New registration.

Крок 2: Введіть назву вашого застосунку та зареєструйте його.

Після реєстрації ви отримаєте ключові деталі — скопіюйте Client ID та Tenant ID для використання в вашому застосунку.

Крок 3: Далі виберіть API Permissions з бокового меню та натисніть Add Permission. Виберіть Azure Key Vault, виберіть Full Access та завершіть процес, натиснувши Add Permissions.

Крок 4: Виберіть Certificate & secrets та натисніть New client secret, щоб створити новий секретний ключ. Скопіюйте цей ключ для доступу до нього з вашого застосунку .NET.

🔐 Надання політики доступу до Azure Key Vault
У попередніх кроках ми створили та зареєстрували застосунок. Тепер нам потрібно надати новозарєєстрованому застосунку доступ до Azure Key Vault:
Крок 1: Перейдіть до Azure Key Vault, виберіть Access Policies та натисніть Create.

Крок 2: Виберіть необхідні дозволи та натисніть Next.

Крок 3: У цьому вікні виберіть застосунок, який ми зареєстрували раніше, GroupDocs.Signature.Service, та натисніть Create.


Застосунок з’явиться в розділі Access Policies.

📑 Як використовувати 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
Перш ніж перейти до реалізації, важливо розуміти, чому підпис власного хешу представляє значний прогрес у технології цифрових підписів:
- Інтеграція з зовнішніми пристроями підпису: Підпис власного хешу дозволяє безперебійно підключатися до апаратних модулів безпеки (HSM), смарт-карт, біометричних пристроїв та інших спеціалізованих криптографічних пристроїв, які ваша організація вже може використовувати.
- Гнучка архітектура для корпоративних рішень: Організації можуть писати власні служби підпису, які взаємодіють з існуючою інфраструктурою, устарелими системами або власними рішеннями підпису, зберігаючи сумісність з GroupDocs.Signature.
- Покращена відповідність вимогам безпеки: Розділяючи генерацію хешу від фактичного процесу підпису, ви отримуєте кращий контроль над криптографічними операціями, що допомагає відповідати суворим нормативним вимогам, таким як eIDAS, ESIGN Act та галузевим стандартам відповідності.
- Підтримка керування ключами в хмарі: Інтеграція з Azure Key Vault дозволяє зберігати сертифікати безпечно та керувати ними в сертифікованій безпечній інфраструктурі Microsoft, а не на локальних машинах.
- Кастомізація процесу підпису: Реалізуйте кастомізовані потоки схвалення, послідовності підпису багатьох учасників або спеціалізовані правила перевірки, які виходять за межі стандартних реалізацій цифрових підписів.
Крок 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 з вашими власними службами підпису, слідуйте цим крокам:
- Налаштування Azure Key Vault:
- Створіть екземпляр Azure Key Vault.
- Завантажте ваш сертифікат підпису до Key Vault.
- Налаштуйте політики доступу для вашого застосунку.
- Налаштування кредитних даних Azure:
- Зареєструйте ваш застосунок в Azure Active Directory.
- Отримайте ваш tenant ID, client ID та client secret.
- Створіть
ClientSecretCredential
для доступу до Key Vault.
- Отримання сертифікату:
- Використовуйте
CertificateClient
, щоб отримати сертифікат, що містить публічний ключ з Azure Key Vault. - Цей сертифікат використовується для перевірки цифрового підпису.
- Використовуйте
- Реалізація власного підпису:
- Використовуйте
CryptographyClient
з Azure SDK для підпису хешу документа. - Визначте відповідний алгоритм підпису (наприклад, RS256).
- Використовуйте
📌Примітка:
Кожен з цих кроків критично важливий, щоб забезпечити, що ваш процес підпису є безпечним, а чутливі ключі залишаються захищеними в хмарі, одночасно надаючи гнучкість для реалізації власних служб підпису для спеціалізованих вимог.
🧩 Розширення вашої реалізації власного підпису
Краса підходу GroupDocs.Signature до власного підпису хешу полягає в тому, що ви можете адаптувати його для роботи майже з будь-яким зовнішнім пристроєм підпису або службою. Ось деякі приклади того, як ви можете розширити цю реалізацію:
- Апаратні модулі безпеки (HSMs): Реалізуйте власний підпис, який комунікує з фізичними HSM для максимальної безпеки.
- Інтеграція смарт-карт: Створіть підпис, який взаємодіє зі смарт-карт-ридерами для корпоративних середовищ, які вимагають фізичної аутентифікації.
- Біометрична аутентифікація: Спочатку побудуйте службу підпису, яка вимагає відбитку пальця або розпізнавання обличчя перед авторизацією створення підпису.
- Поток схвалення багатьох учасників: Реалізуйте кастомізований поток підпису, де декілька учасників повинні схвалити, перш ніж буде застосований остаточний підпис.
- Провайдери хмарних послуг: Адаптуйте приклад для роботи з AWS KMS, Google Cloud KMS або іншими хмарними службами керування ключами.
Реалізуючи власні служби підпису через інтерфейс ICustomSignHash
, ви зберігаєте повний контроль над вашими криптографічними операціями, одночасно використовуючи потужні можливості обробки документів GroupDocs.Signature для .NET.
✨ Фінальні думки щодо електронних підписів документів
Цей посібник показав, як інтегрувати GroupDocs.Signature з Azure Key Vault для створення відповідних електронних підписів документів для файлів PDF безпечним способом. Електронні підписи документів, створені цим методом, відповідають промисловим стандартам автентичності та цілісності. Дотримуючись цього крокового підходу та найкращих практик безпеки (таких як безпечне керування кредитними данними), ви можете реалізувати міцне рішення цифрових підписів у вашому застосунку .NET, яке працює на всій вашій документній роботі.
Для подальших деталей та складних сценаріїв зверніться до офіційної документації.
Отримайте безкоштовну пробну версію
Ви можете безкоштовно спробувати API GroupDocs.Signature, просто завантаживши та встановивши останню версію на нашому сайті завантажень.
Ви також можете отримати тимчасову ліцензію, щоб тестувати всі функції бібліотеки без обмежень. Перейдіть на сторінку тимчасової ліцензії, щоб подати заявку на тимчасову ліцензію.
🔗 Дивіться також
Для додаткової інформації та додаткових ресурсів ви можете знайти корисними наступні посилання:
- Приклади GroupDocs.Signature для .NET
- Приклади GroupDocs.Signature для Java
- Приклади GroupDocs.Signature для Node.js через Java
- Завантажте та спробуйте API GroupDocs.Signature безкоштовно
- Спробуйте GroupDocs.Signature з повним доступом до тимчасової ліцензії
- Документація наших API
- Безкоштовний форум підтримки