Giới thiệu
Tài liệu PDF là một phần quan trọng trong nhiều ngành công nghiệp, và việc đảm bảo tính xác thực và tính toàn vẹn của chúng thông qua chữ ký số là một biện pháp bảo mật quan trọng. Chữ ký số cung cấp giá trị pháp lý và bảo vệ tài liệu khỏi bị sửa đổi. Hướng dẫn chi tiết này dẫn bạn qua việc thực hiện ký số PDF trong .NET bằng cách tạo một dịch vụ ký số PDF an toàn bằng cách sử dụng Azure Key Vault và GroupDocs.Signature for .NET.
Chữ ký tài liệu điện tử ngày càng quan trọng đối với các doanh nghiệp chuyển sang các quy trình làm việc không giấy. GroupDocs.Signature for .NET cung cấp một giải pháp ký số PDF mạnh mẽ bằng C#, đáp ứng các yêu cầu tuân thủ chữ ký số trong nhiều khung pháp lý khác nhau. Bất kể bạn mới bắt đầu ký số PDF trong ứng dụng .NET hay muốn nâng cao việc thực hiện hiện có, hướng dẫn này bao gồm tất cả những gì bạn cần biết.
Azure Key Vault là một dịch vụ quản lý khóa dựa trên cloud cho phép lưu trữ và quản lý an toàn các khóa và chứng chỉ mật mã học. GroupDocs.Signature for .NET là một API ký số PDF mạnh mẽ và an toàn cho phép các nhà phát triển áp dụng chữ ký số vào tệp PDF một cách lập trình. Bằng cách tích hợp các công nghệ này, bạn có thể xây dựng một dịch vụ ký số PDF mạnh mẽ và hiệu quả.
Một trong những tính năng mạnh mẽ nhất chúng ta sẽ khám phá là ký số hash tùy chỉnh, cung cấp sự linh hoạt tuyệt vời cho quy trình ký số của bạn. Phương pháp này cho phép bạn kết nối các thiết bị ký số ngoại bộ như các mô-đun bảo mật phần cứng (HSMs), thẻ thông minh hoặc bất kỳ thiết bị mật mã học khác với ứng dụng của bạn. Với ký số hash tùy chỉnh, các nhà phát triển có thể viết các dịch vụ ký số riêng của họ, giao tiếp với các hệ thống độc quyền, cơ sở hạ tầng cũ hoặc thiết bị bảo mật chuyên biệt trong khi duy trì tương thích với khung GroupDocs.Signature. Điều này khiến nó trở thành một giải pháp lý tưởng cho các tổ chức có yêu cầu bảo mật đặc biệt hoặc đầu tư hiện có vào cơ sở hạ tầng mật mã học.
🔐 Tạo Azure Key Vault và chứng chỉ
Bắt đầu bằng cách thiết lập Azure Key Vault và tạo chứng chỉ.
Bước 1: Cung cấp Key Vault
Tạo một tài nguyên Azure Key Vault mới bằng cách sử dụng Azure portal. Để hướng dẫn chi tiết, vui lòng xem hướng dẫn bắt đầu nhanh này.
💡Nếu bạn không có một đăng ký Azure hoạt động, bạn có thể đăng ký một thử nghiệm miễn phí trong 1 tháng để bắt đầu.
Bước 2: Tạo hoặc nhập chứng chỉ của bạn
Khi Key Vault của bạn đã hoạt động, chuyển đến bảng điều khiển của nó, chọn tab Certificates và nhấp vào Generate/Import để thêm chứng chỉ của bạn.

Bước 3: Trong trường Method of Certificate Creation, chọn Generate để tự động tạo một chứng chỉ mới. Đối với ví dụ này, chúng tôi chọn Self-signed certificate làm loại chứng chỉ.

Ghi chú: Nếu bạn muốn sử dụng chứng chỉ hiện có, bạn có thể chọn Import để tải một chứng chỉ từ thiết bị cục bộ của bạn.

Bước 4: Sau đó, chuyển đến Advanced Policy Configuration và đặt tùy chọn Private Key Export thành No.

Bước 5: Cuối cùng, nhấp vào Create. Chứng chỉ sẽ được thêm vào Key Vault của bạn.
Để xem chi tiết của nó, chỉ cần nhấp vào chứng chỉ để mở thuộc tính của nó.

⚙️ Đăng ký ứng dụng để cho phép truy cập vào Azure Key Vault
Để cho phép Web API truy cập vào Azure Key Vault, bạn cần đăng ký nó trong Azure Active Directory:
Bước 1: Chuyển đến Azure Active Directory, chọn App registrations, và nhấp vào New registration.

Bước 2: Nhập tên ứng dụng của bạn và đăng ký.

Sau khi đăng ký, bạn sẽ nhận được các chi tiết khóa—sao chép Client ID và Tenant ID để sử dụng trong ứng dụng của bạn.

Bước 3: Tiếp theo, chọn API Permissions từ menu bên cạnh và nhấp vào Add Permission. Chọn Azure Key Vault, chọn Full Access, và hoàn thành quá trình bằng cách nhấp vào Add Permissions.

Bước 4: Chọn Certificate & secrets và nhấp vào New client secret để tạo một khóa bí mật mới. Sao chép khóa này để truy cập từ ứng dụng .NET của bạn.

🔐 Gán chính sách truy cập cho Azure Key Vault
Trong các bước trước, chúng tôi đã tạo và đăng ký ứng dụng. Bây giờ, chúng tôi cần cấp quyền truy cập vào Azure Key Vault cho ứng dụng mới đăng ký:
Bước 1: Chuyển đến Azure Key Vault, chọn Access Policies, và nhấp vào Create.

Bước 2: Chọn các quyền cần thiết và nhấp vào Next.

Bước 3: Trong cửa sổ này, chọn ứng dụng chúng tôi đã đăng ký trước đó, GroupDocs.Signature.Service, và nhấp vào Create.


Ứng dụng sẽ xuất hiện trong phần Access Policies.

📑 Sử dụng Azure Key Vault với GroupDocs.Signature for .NET PDF Signing
Hướng dẫn chi tiết này giải thích cách ký tài liệu PDF bằng API GroupDocs.Signature trong .NET với ký số hash tùy chỉnh sử dụng Azure Key Vault. Chúng tôi sẽ chia nhỏ quá trình thành các bước rõ ràng—từ cấu hình môi trường C# của bạn đến thực hiện một ký số hash tùy chỉnh đáp ứng các yêu cầu tuân thủ chữ ký số.
Tổng quan về ký số PDF an toàn với việc thực hiện hash tùy chỉnh
Phương pháp ký số hash tùy chỉnh cung cấp sự linh hoạt tuyệt vời cho việc thực hiện chữ ký tài liệu điện tử trong ứng dụng .NET của bạn. Đây là những gì chúng tôi sẽ bao gồm:
- Cấu hình ứng dụng .NET của bạn để làm việc với GroupDocs.Signature cho ký số PDF
- Cấu hình các tùy chọn ký số chuyên nghiệp với quản lý chứng chỉ thích hợp
- Thực hiện cơ chế ký số hash tùy chỉnh cho sự linh hoạt tối đa
- Tích hợp Azure Key Vault để lấy chứng chỉ công khai một cách an toàn và ký tài liệu
- Tuân thủ các tốt nhất các thực tập bảo mật trong suốt quá trình thực hiện
Để có thêm thông tin nền tảng, tham khảo tài liệu GroupDocs.Signature về ký số với hash tùy chỉnh.
🚀 Lợi ích của ký số hash tùy chỉnh cho ứng dụng PDF .NET
Trước khi đi vào việc thực hiện, quan trọng là hiểu tại sao ký số hash tùy chỉnh đại diện cho một bước tiến đáng kể trong công nghệ ký số:
- Tích hợp với thiết bị ký số ngoại bộ: Ký số hash tùy chỉnh cho phép kết nối một cách mượt mà với các mô-đun bảo mật phần cứng (HSMs), thẻ thông minh, thiết bị xác thực sinh trắc học và các thiết bị mật mã học chuyên biệt mà tổ chức của bạn có thể đã sử dụng.
- Kiến trúc linh hoạt cho giải pháp doanh nghiệp: Các tổ chức có thể viết các dịch vụ ký số riêng của họ, giao tiếp với cơ sở hạ tầng hiện có, hệ thống cũ hoặc giải pháp ký số độc quyền trong khi duy trì tương thích với GroupDocs.Signature.
- Tuân thủ bảo mật nâng cao: Bằng cách tách quá trình tạo hash khỏi quá trình ký số thực tế, bạn có thể kiểm soát tốt hơn các hoạt động mật mã học, giúp đáp ứng các yêu cầu tuân thủ nghiêm ngặt như eIDAS, ESIGN Act và các tiêu chuẩn tuân thủ ngành công nghiệp.
- Hỗ trợ quản lý khóa dựa trên cloud: Tích hợp với Azure Key Vault cho phép chứng chỉ được lưu trữ và quản lý một cách an toàn trong cơ sở hạ tầng bảo mật được chứng nhận của Microsoft thay vì trên các máy tính cục bộ.
- Tùy chỉnh quá trình ký số: Thực hiện các quy trình phê duyệt tùy chỉnh, chuỗi ký số nhiều bên hoặc các quy tắc xác thực đặc biệt vượt qua các thực hiện ký số tiêu chuẩn.
Bước 1. Cấu hình môi trường ký số PDF C#
Bắt đầu bằng cách định nghĩa các đường dẫn tệp và khởi tạo đối tượng GroupDocs.Signature trong ứng dụng C# của bạn. Trong ví dụ này, chúng tôi chỉ định tệp PDF nguồn và vị trí đầu ra cho tài liệu đã ký.
public static void SignDocument()
{
// Định nghĩa đường dẫn cho tài liệu nguồn và đầu ra
string sampleFilePath = "sample.pdf";
string sampleOutputFilePath = "signed.pdf";
using (Signature signature = new Signature(sampleFilePath))
{
// Mã tiếp tục ở các bước tiếp theo...
}
}
📌Ghi chú:
Bước này tạo một đối tượng Signature
mới, tải tài liệu PDF bạn muốn ký, thiết lập nền tảng cho ký số PDF an toàn trong ứng dụng .NET của bạn.
Bước 2. Cấu hình tùy chọn ký số
Tiếp theo, thiết lập các tùy chọn ký số của bạn. Các tùy chọn này bao gồm chi tiết chứng chỉ, hình dáng hình ảnh và thuật toán hash. Ký số hash tùy chỉnh sẽ được cắm vào sau.
// Khởi tạo tùy chọn ký số
DigitalSignOptions options = new DigitalSignOptions()
{
Signature = new DigitalSignature(),
Password = "1234567890", // Mật khẩu chứng chỉ
Reason = "Sign", // Lý do ký
Contact = "JohnSmith", // Thông tin liên lạc
Location = "Office1", // Vị trí ký
AllPages = true, // Áp dụng ký trên tất cả các trang
Width = 80,
Height = 60,
VerticalAlignment = VerticalAlignment.Bottom,
HorizontalAlignment = HorizontalAlignment.Right,
Margin = new Padding() { Bottom = 10, Right = 10 },
HashAlgorithm = HashAlgorithm.Sha256 // Chỉ định SHA-256 cho hashing
};
📌Ghi chú:
Cấu hình các thuộc tính ký số cơ bản như hình dáng, vị trí và hashing để đảm bảo chữ ký tài liệu điện tử của bạn đáp ứng tiêu chuẩn chuyên nghiệp.
Ghi chú bảo mật: Trong sản xuất, tránh cài đặt các giá trị nhạy cảm (như mật khẩu); thay vào đó, sử dụng các phương pháp cấu hình an toàn nhất với yêu cầu tuân thủ ký số.
Bước 3. Thực hiện ký số hash tùy chỉnh
Bây giờ, gán ký số hash tùy chỉnh của bạn cho các tùy chọn. Ký số này thực hiện giao diện ICustomSignHash
và sẽ được sử dụng để ký hash với Azure Key Vault hoặc bất kỳ thiết bị ký số ngoại bộ nào bạn muốn tích hợp.
var azureSigner = new AzureSigner();
options.CustomSignHash = azureSigner;
options.Signature.Certificate = azureSigner.GetPublicCertificateFromAzureStorage();
📌Ghi chú:
Đây là một đối tượng AzureSigner
được tạo. Phương thức CustomSignHash
của nó sẽ được gọi trong quá trình ký, và nó cũng lấy chứng chỉ công khai từ Azure Key Vault.
Bước 4. Ký tài liệu
Cuối cùng, gọi phương thức Sign
để tạo tài liệu PDF đã ký bằng cách sử dụng việc thực hiện ký số hash tùy chỉnh của bạn.
signature.Sign(sampleOutputFilePath, options);
📌Ghi chú:
Phương thức này áp dụng chữ ký số của bạn vào tài liệu bằng cách sử dụng các tùy chọn đã cấu hình trước đó, bao gồm ký số hash tùy chỉnh của bạn. Tài liệu PDF kết quả sẽ chứa một chữ ký mật mã học có thể được xác thực bằng cách sử dụng các trình đọc PDF tiêu chuẩn hoặc lập trình với các tính năng xác thực của GroupDocs.Signature.
Bước 5. Thực hiện chi tiết ký số chứng chỉ Azure
Dưới đây là việc thực hiện hoàn chỉnh của ký số tùy chỉnh bằng cách sử dụng Azure Key Vault cho ký số chứng chỉ Azure. Lớp này minh họa các thực hành ký số chứng chỉ Azure chuyên nghiệp bằng cách lấy Azure credentials, lấy chứng chỉ công khai và ký tài liệu hash một cách an toàn.
public class AzureSigner : ICustomSignHash
{
public byte[] CustomSignHash(byte[] hash, HashAlgorithm hashAlgorithm,
SignatureContext signatureContext)
{
// Chuyển giao việc ký cho Azure
return SignWithAzure(hash);
}
private static byte[] SignWithAzure(byte[] signableHash)
{
// Lấy Azure credentials
var credential = GetAzureSecretCredential();
// Chỉ định khóa chứng chỉ Key Vault của bạn
var certificateKeyId =
"https://groupdocskeyvault.vault.azure.net/keys/GroupDocsSignatureCertificate/>";
CryptographyClient client =
new CryptographyClient(new Uri(certificateKeyId), credential);
// Ký hash bằng RS256
var result = client.Sign(SignatureAlgorithm.RS256, signableHash);
return result.Signature;
}
static ClientSecretCredential GetAzureSecretCredential()
{
// Cung cấp chi tiết tenant, client và secret của Azure AD của bạn
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()
{
// Định nghĩa 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)
{
// Tạo một client chứng chỉ cho Key Vault
CertificateClient certificateClient =
new CertificateClient(new Uri(uri), credential);
// Lấy chứng chỉ với khóa công khai
KeyVaultCertificateWithPolicy certificate =
certificateClient.GetCertificateAsync("GroupDocsSignatureCertificate").Result;
return new X509Certificate2(certificate.Cer);
}
}
📌Ghi chú:
- Azure Credentials: Phương thức GetAzureSecretCredential tạo một credential bằng cách sử dụng tenant ID, client ID và secret của bạn. Ghi chú bảo mật: Đảm bảo bạn lưu trữ các credential này một cách an toàn (ví dụ, bằng cách sử dụng Azure Key Vault hoặc một kho lưu trữ cấu hình an toàn) để duy trì tính toàn vẹn của việc ký số PDF .NET của bạn.
- Ký với Azure: Phương thức SignWithAzure sử dụng CryptographyClient từ Azure SDK để ký hash với chứng chỉ lưu trữ trong Azure Key Vault, minh họa một cách tiếp cận chuyên nghiệp với quản lý chứng chỉ theo các thực hành tuân thủ ký số tốt nhất.
- Lấy chứng chỉ công khai: Phương thức này kết nối với Azure Key Vault của bạn và lấy chứng chỉ cần thiết để xác thực chữ ký, đảm bảo chữ ký tài liệu điện tử của bạn có thể được xác thực một cách thích hợp.
Bước 6. Các bước thực hiện Azure Key Vault cho ký số PDF
Để tích hợp Azure Key Vault với các dịch vụ ký số tùy chỉnh của bạn, hãy theo các bước sau:
- Cài đặt Azure Key Vault:
- Tạo một Key Vault Azure.
- Tải chứng chỉ ký của bạn lên Key Vault.
- Cấu hình chính sách truy cập cho ứng dụng của bạn.
- Cấu hình Azure Credentials:
- Đăng ký ứng dụng của bạn trong Azure Active Directory.
- Lấy tenant ID, client ID và client secret của bạn.
- Tạo một
ClientSecretCredential
để truy cập Key Vault.
- Lấy chứng chỉ:
- Sử dụng
CertificateClient
để lấy chứng chỉ chứa khóa công khai từ Azure Key Vault. - Chứng chỉ này được sử dụng để xác thực chữ ký số.
- Sử dụng
- Thực hiện ký số tùy chỉnh:
- Sử dụng
CryptographyClient
của Azure SDK để ký hash của tài liệu. - Chỉ định thuật toán ký số thích hợp (ví dụ: RS256).
- Sử dụng
📌Ghi chú:
Mỗi bước này là quan trọng để đảm bảo quá trình ký của bạn là an toàn và các khóa nhạy cảm được bảo vệ trong cloud trong khi cung cấp sự linh hoạt để thực hiện các dịch vụ ký số riêng của bạn cho các yêu cầu đặc biệt.
🧩 Mở rộng việc thực hiện ký số tùy chỉnh của bạn
Tính linh hoạt của phương pháp ký số hash tùy chỉnh của GroupDocs.Signature cho phép bạn thích nghi với hầu hết các thiết bị ký số ngoại bộ hoặc dịch vụ. Đây là một số ví dụ về cách bạn có thể mở rộng việc thực hiện này:
- Mô-đun bảo mật phần cứng (HSMs): Thực hiện một ký số tùy chỉnh giao tiếp với các HSM vật lý cho tính bảo mật tối đa.
- Tích hợp thẻ thông minh: Tạo một ký số giao tiếp với các máy đọc thẻ thông minh cho môi trường doanh nghiệp yêu cầu xác thực vật lý.
- Xác thực sinh trắc học: Xây dựng một dịch vụ ký số yêu cầu nhận dạng vân tay hoặc nhận dạng khuôn mặt trước khi ủy quyền tạo chữ ký.
- Phê duyệt nhiều bên: Thực hiện một quy trình ký số tùy chỉnh trong đó nhiều bên phải phê duyệt trước khi ký cuối cùng được áp dụng.
- Nhà cung cấp dịch vụ cloud: Thích nghi ví dụ để làm việc với AWS KMS, Google Cloud KMS hoặc các dịch vụ quản lý khóa cloud khác.
Bằng cách thực hiện các dịch vụ ký số riêng của bạn thông qua giao diện ICustomSignHash
, bạn duy trì sự kiểm soát hoàn toàn về các hoạt động mật mã học của mình trong khi lợi dụng các khả năng xử lý tài liệu mạnh mẽ của GroupDocs.Signature for .NET.
✨ Những suy nghĩ cuối cùng về chữ ký tài liệu điện tử
Hướng dẫn này đã minh họa cách tích hợp GroupDocs.Signature với Azure Key Vault để tạo chữ ký tài liệu điện tử tuân thủ cho tệp PDF một cách an toàn. Chữ ký tài liệu điện tử được tạo thông qua phương pháp này đáp ứng các tiêu chuẩn ngành công nghiệp về tính xác thực và tính toàn vẹn. Bằng cách theo hướng dẫn bước-by-bước này và tuân thủ các thực hành bảo mật tốt nhất (như xử lý credential an toàn), bạn có thể thực hiện một giải pháp ký số số an toàn trong ứng dụng .NET của bạn hoạt động trên toàn bộ quy trình tài liệu của bạn.
Để có thêm chi tiết và các kịch bản nâng cao, tham khảo tài liệu chính thức.
Nhận thử miễn phí
Bạn có thể thử GroupDocs.Signature APIs miễn phí bằng cách chỉ tải xuống và cài đặt phiên bản mới nhất trên trang web tải xuống phiên bản mới nhất của chúng tôi.
Bạn cũng có thể nhận một giấy phép tạm thời để thử tất cả các chức năng của thư viện mà không có bất kỳ hạn chế nào. Đi đến trang giấy phép tạm thời để đăng ký giấy phép tạm thời.
🔗 Xem thêm
Để có thêm thông tin và tài nguyên bổ sung, bạn có thể tìm các liên kết sau hữu ích: