Úvod
PDF soubory jsou v různých odvětvích nezbytné a zajištění jejich pravosti a integrity pomocí digitálních podpisů je klíčovým bezpečnostním opatřením. Digitální podpisy poskytují právní platnost a chrání dokumenty před manipulací. Tento komplexní průvodce vás provede implementací .NET PDF podpisu vytvořením zabezpečené služby digitálního PDF podpisu pomocí Azure Key Vault a GroupDocs.Signature pro .NET.
Elektronické podpisy dokumentů se stávají stále důležitějšími pro firmy přecházející na bezpapírové pracovní postupy. GroupDocs.Signature pro .NET nabízí výkonné řešení C# PDF digitálního podpisu, které splňuje požadavky na shodu digitálního podpisu napříč různými regulačními rámci. Ať už jste v .NET aplikacích nováčkem v oblasti PDF podpisu, nebo chcete vylepšit stávající implementaci, tento tutoriál pokrývá vše, co potřebujete vědět.
Azure Key Vault je cloudová služba pro správu klíčů, která umožňuje bezpečné ukládání a správu kryptografických klíčů a certifikátů. GroupDocs.Signature pro .NET je výkonné, zabezpečené API pro PDF podpis, které vývojářům umožňuje programově aplikovat digitální podpisy na PDF soubory. Integrací těchto technologií můžete vytvořit robustní a efektivní službu digitálního PDF podpisu.
Jednou z nejvýkonnějších funkcí, kterou prozkoumáme, je vlastní hash podpis, který poskytuje výjimečnou flexibilitu pro váš workflow podpisu. Tento přístup vám umožní připojit externí podepisovací zařízení, jako jsou hardwarové bezpečnostní moduly (HSM), čipové karty nebo jakékoli jiné kryptografické zařízení, k vaší aplikaci. S vlastním hash podpisem mohou vývojáři psát vlastní podepisovací služby, které komunikují s proprietárními systémy, starší infrastrukturou nebo specializovaným bezpečnostním hardwarem, přičemž zachovávají kompatibilitu s frameworkem GroupDocs.Signature. To z něj činí ideální řešení pro organizace s konkrétními bezpečnostními požadavky nebo s existující investicí do kryptografické infrastruktury.
🔐 Vytvoření Azure Key Vault a certifikátu
Začneme nastavením Azure Key Vault a vytvořením certifikátu.
Krok 1: Zřízení Key Vaultu
Vytvořte nový Azure Key Vault prostřednictvím Azure portálu. Podrobné instrukce najdete v tomto průvodci rychlým startem.
💡Pokud nemáte aktivní Azure předplatné, můžete se zaregistrovat na 1‑měsíční bezplatnou zkušební verzi a začít.
Krok 2: Vytvoření nebo import certifikátu
Po spuštění Key Vaultu přejděte na jeho řídicí panel, vyberte kartu Certificates a klikněte na Generate/Import pro přidání certifikátu.
Krok 3: V poli Method of Certificate Creation vyberte Generate pro automatické vytvoření nového certifikátu. V tomto příkladu zvolíme Self-signed certificate jako typ certifikační autority.
Poznámka: Pokud chcete použít existující certifikát, můžete zvolit Import a načíst jej ze svého zařízení.
Krok 4: Poté přejděte na Advanced Policy Configuration a nastavte možnost Private Key Export na No.
Krok 5: Nakonec klikněte Create. Certifikát bude přidán do vašeho Key Vaultu.
Pro zobrazení detailů stačí kliknout na certifikát a otevřít jeho vlastnosti.
⚙️ Registrace aplikace pro přístup k Azure Key Vault
Aby Web API mohl přistupovat k Azure Key Vault, musíte jej zaregistrovat v Azure Active Directory:
Krok 1: Přejděte do Azure Active Directory, zvolte App registrations a klikněte na New registration.
Krok 2: Zadejte název aplikace a proveďte registraci.
Po registraci obdržíte klíčové údaje – zkopírujte Client ID a Tenant ID pro použití ve vaší aplikaci.
Krok 3: Dále vyberte API Permissions v postranním menu a klikněte na Add Permission. Zvolte Azure Key Vault, vyberte Full Access a dokončete proces kliknutím na Add Permissions.
Krok 4: Vyberte Certificate & secrets a klikněte na New client secret pro vytvoření nového tajného klíče. Tento klíč zkopírujte pro použití ve vaší .NET aplikaci.
🔐 Přiřazení přístupové politiky k Azure Key Vault
V předchozích krocích jsme vytvořili a zaregistrovali aplikaci. Nyní musíme nově registrované aplikaci udělit přístup k Azure Key Vault:
Krok 1: Přejděte do Azure Key Vault, vyberte Access Policies a klikněte na Create.
Krok 2: Vyberte potřebná oprávnění a klikněte na Next.
Krok 3: V tomto okně vyberte aplikaci, kterou jsme registrovali dříve, GroupDocs.Signature.Service, a klikněte na Create.
Aplikace se nyní zobrazí v sekci Access Policies.
📑 Jak používat Azure Key Vault s GroupDocs.Signature pro .NET PDF podpis
Tento komplexní průvodce vysvětluje, jak podepisovat PDF dokumenty pomocí API GroupDocs.Signature v .NET s vlastním hash podpisem, který využívá Azure Key Vault. Rozdělíme proces do jasných kroků – od nastavení vašeho C# prostředí po implementaci vlastního hash podepisovače, který splňuje požadavky na shodu digitálního podpisu.
Přehled zabezpečeného PDF podpisu s implementací vlastního hashe
Přístup vlastního hash podpisu nabízí výjimečnou flexibilitu pro implementaci elektronických podpisů dokumentů ve vašich .NET aplikacích. Probereme:
- Nastavení .NET aplikace pro práci s GroupDocs.Signature pro PDF digitální podpisy
- Konfiguraci profesionálních možností digitálního podpisu s řádnou správou certifikátů
- Implementaci mechanismu vlastního hash podpisu pro maximální flexibilitu
- Integraci Azure Key Vault pro bezpečné získání veřejného certifikátu a podepsání dokumentu
- Dodržování bezpečnostních nejlepších postupů během celé implementace
Pro doplňující informace se podívejte na dokumentaci GroupDocs.Signature o digitálním podpisu s vlastním hashem.
🚀 Výhody vlastního hash podpisu pro .NET PDF aplikace
Než se pustíme do implementace, je důležité pochopit, proč představuje vlastní hash podpis významný pokrok v technologii digitálních podpisů:
- Integrace s externími podepisovacími zařízeními – umožňuje bezproblémové propojení s HSM, čipovými kartami, biometrickými zařízeními a dalšími specializovanými kryptografickými hardwaremi, které vaše organizace již může používat.
- Flexibilní architektura pro podnikovou úroveň – organizace mohou psát vlastní podepisovací služby, které komunikují s existující infrastrukturou, staršími systémy nebo proprietárními řešeními, přičemž zachovávají kompatibilitu s GroupDocs.Signature.
- Zvýšená bezpečnostní shoda – oddělením generování hashe od samotného podepisování získáte lepší kontrolu nad kryptografickými operacemi, což pomáhá splnit přísné regulační požadavky jako eIDAS, ESIGN Act a odvětvové standardy.
- Podpora cloudové správy klíčů – integrace s Azure Key Vault umožňuje bezpečné ukládání a správu certifikátů v certifikované infrastruktuře Microsoftu místo lokálních strojů.
- Přizpůsobení procesu podpisu – můžete implementovat vlastní schvalovací workflow, sekvence více stran nebo specializovaná validační pravidla, která přesahují standardní implementace digitálního podpisu.
Krok 1. Konfigurace C# prostředí pro digitální PDF podpis
Nejprve definujte cesty k souborům a inicializujte objekt GroupDocs.Signature ve své C# aplikaci. V tomto příkladu uvádíme vstupní PDF soubor a výstupní umístění pro podepsaný dokument.
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...
}
}
📌Annotation:
Tento krok vytváří novou instanci Signature, která načte PDF dokument, který chcete podepsat, a zakládá tak základ pro zabezpečený PDF podpis ve vaší .NET aplikaci.
Krok 2. Konfigurace možností digitálního podpisu
Dále nastavte možnosti digitálního podpisu. Patří sem údaje o certifikátu, vizuální vzhled a hash algoritmus. Vlastní hash podpis bude připojen později.
// 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
};
📌Annotation:
Nastavte základní vlastnosti digitálního podpisu, jako je vzhled, umístění a hashování, aby vaše elektronické podpisy dokumentů splňovaly profesionální standardy.
Bezpečnostní poznámka: V produkci se vyhněte tvrdému kódování citlivých hodnot (např. hesel); místo toho použijte zabezpečené metody konfigurace v souladu s požadavky na shodu digitálního podpisu.
Krok 3. Implementace vlastního hash podpisu
Nyní přiřaďte vlastní hash podepisovač k možnostem. Tento podepisovač implementuje rozhraní ICustomSignHash a bude použit k podepsání hashe pomocí Azure Key Vault nebo jiného externího zařízení, které chcete integrovat.
var azureSigner = new AzureSigner();
options.CustomSignHash = azureSigner;
options.Signature.Certificate = azureSigner.GetPublicCertificateFromAzureStorage();
📌Annotation:
Zde je vytvořena instance AzureSigner. Jeho metoda CustomSignHash bude během procesu podpisu volána a také získá veřejný certifikát z Azure Key Vault.
Krok 4. Podepsání dokumentu
Nakonec zavolejte metodu Sign, která vygeneruje podepsaný PDF dokument pomocí vaší implementace vlastního hash podpisu.
signature.Sign(sampleOutputFilePath, options);
📌Annotation:
Tato metoda aplikuje digitální podpis na dokument s předem nastavenými možnostmi, včetně vašeho vlastního hash podepisovače. Výsledné PDF bude obsahovat kryptograficky zabezpečený podpis, který lze ověřit pomocí standardních PDF čteček nebo programově pomocí validačních funkcí GroupDocs.Signature.
Krok 5. Detailní implementace Azure certifikátového podpisu
Níže je kompletní implementace vlastního podepisovače využívajícího Azure Key Vault pro podepisování certifikátem. Třída demonstruje profesionální postupy získávání Azure přihlašovacích údajů, načítání veřejného certifikátu a bezpečné podepisování hash dokumentu.
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);
}
}
📌Annotations:
- Azure Credentials:
MetodaGetAzureSecretCredentialvytváří přihlašovací údaje pomocí vašeho tenant ID, client ID a secretu. Bezpečnostní poznámka: Ujistěte se, že tyto údaje ukládáte bezpečně (např. v Azure Key Vault nebo v zabezpečeném úložišti konfigurace), aby byla zachována integrita vaší .NET PDF podpisové implementace. - Signing with Azure:
MetodaSignWithAzurepoužíváCryptographyClientz Azure SDK k podepsání hashe pomocí certifikátu uloženého v Azure Key Vault, což představuje profesionální přístup ke správě certifikátů v souladu s nejlepšími postupy pro shodu digitálního podpisu. - Public Certificate Retrieval:
MetodaGetPublicCertificateFromAzureStoragese připojuje k Azure Key Vault a načítá certifikát potřebný pro ověření podpisu, čímž zajišťuje, že vaše elektronické podpisy dokumentů lze řádně validovat.
Krok 6. Kroky implementace Azure Key Vault pro PDF digitální podpisy
Pro integraci Azure Key Vault s vašimi vlastními podepisovacími službami postupujte následovně:
- Nastavení Azure Key Vault:
- Vytvořte instanci Azure Key Vault.
- Nahrajte svůj podepisovací certifikát do Key Vaultu.
- Nakonfigurujte přístupové politiky pro vaši aplikaci.
- Konfigurace Azure přihlašovacích údajů:
- Zaregistrujte aplikaci v Azure Active Directory.
- Získejte tenant ID, client ID a client secret.
- Vytvořte
ClientSecretCredentialpro přístup k Key Vaultu.
- Načtení certifikátu:
- Pomocí
CertificateClientnačtěte certifikát obsahující veřejný klíč z Azure Key Vaultu. - Tento certifikát slouží k ověření digitálního podpisu.
- Pomocí
- Implementace vlastního podepisování:
- Použijte
CryptographyClientz Azure SDK k podepsání hashe dokumentu. - Zvolte vhodný algoritmus podpisu (např. RS256).
- Použijte
📌Annotation:
Každý z těchto kroků je klíčový pro zajištění bezpečného procesu podpisu a pro ochranu citlivých klíčů v cloudu, přičemž poskytuje flexibilitu pro vytvoření vlastních podepisovacích služeb podle specifických požadavků.
🧩 Rozšíření vlastní implementace podepisování
Krása přístupu vlastního hash podpisu v GroupDocs.Signature spočívá v tom, že jej můžete přizpůsobit téměř jakémukoli externímu podepisovacímu zařízení nebo službě. Zde jsou některé příklady, jak můžete tuto implementaci rozšířit:
- Hardware Security Modules (HSMs) – implementujte podepisovač, který komunikuje s fyzickými HSM pro maximální bezpečnost.
- Integrace čipových karet – vytvořte podepisovač, který spolupracuje s čtečkami čipových karet pro korporátní prostředí vyžadující fyzickou autentizaci.
- Biometrické ověřování – postavte podepisovací službu, která před autorizací podpisu vyžaduje otisk prstu nebo rozpoznání obličeje.
- Vícepodpisové schválení – implementujte workflow, kde musí několik stran schválit před aplikací finálního podpisu.
- Poskytovatelé cloudových služeb – přizpůsobte příklad pro AWS KMS, Google Cloud KMS nebo jiné cloudové služby správy klíčů.
Implementací vlastních podepisovacích služeb přes rozhraní ICustomSignHash získáte plnou kontrolu nad kryptografickými operacemi a zároveň využijete výkonné funkce GroupDocs.Signature pro .NET.
✨ Závěrečné úvahy o elektronických podpisů dokumentů
Tento průvodce ukázal, jak integrovat GroupDocs.Signature s Azure Key Vault pro vytváření shodných elektronických podpisů PDF souborů bezpečným způsobem. Elektronické podpisy vytvořené tímto způsobem splňují průmyslové standardy pro pravost a integritu. Dodržením tohoto krok‑za‑krokem přístupu a bezpečnostních nejlepších postupů (např. bezpečná správa přihlašovacích údajů) můžete ve své .NET aplikaci implementovat robustní řešení digitálního podpisu, které funguje napříč celým pracovním tokem dokumentů.
Pro podrobnější informace a pokročilé scénáře se podívejte na oficiální dokumentaci.
Get a Free Trial
You can try GroupDocs.Signature APIs for free by just downloading and installing the latest version on our release downloads website.
You can also get a temporary license to test all the library’s functionalities without any constraints. Head to the temporary license page to apply for a temporary license.
🔗 See Also
For more information and additional resources, you may find the following links useful: