Ú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.

Azure Key Vault interface for creating digital signature certificates for PDF signing

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.

Complete workflow diagram of GroupDocs .NET PDF digital signature process with Azure Key Vault

Poznámka: Pokud chcete použít existující certifikát, můžete zvolit Import a načíst jej ze svého zařízení.

C# code example of custom hash signing implementation with GroupDocs.Signature

Krok 4: Poté přejděte na Advanced Policy Configuration a nastavte možnost Private Key Export na No.

Azure certificate signing process diagram showing the data flow between components

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.

PDF signature validation example in .NET application showing verification results

⚙️ 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.

Electronic document signatures integration between Azure Key Vault and GroupDocs

Krok 2: Zadejte název aplikace a proveďte registraci.

Secure PDF signing API configuration screen with security settings

Po registraci obdržíte klíčové údaje – zkopírujte Client ID a Tenant ID pro použití ve vaší aplikaci.

Azure Key Vault access policy setup interface for digital signature permissions

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.

.NET PDF signing output example showing a successfully signed document

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.

External signing device integration diagram for GroupDocs custom hash implementation

🔐 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.

Digital signature compliance settings configuration for regulatory requirements

Krok 2: Vyberte potřebná oprávnění a klikněte na Next.

Azure Active Directory application registration for PDF signing services

Krok 3: V tomto okně vyberte aplikaci, kterou jsme registrovali dříve, GroupDocs.Signature.Service, a klikněte na Create.

Custom sign services architecture diagram showing component relationships
GroupDocs Signature appearance settings panel for visual signature customization

Aplikace se nyní zobrazí v sekci Access Policies.

PDF digital signature verification process showing validation workflow steps

📑 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ů:

  1. 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.
  2. 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.
  3. 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.
  4. 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ů.
  5. 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:
    Metoda GetAzureSecretCredential vytváří 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:
    Metoda SignWithAzure používá CryptographyClient z 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:
    Metoda GetPublicCertificateFromAzureStorage se 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ě:

  1. 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.
  2. Konfigurace Azure přihlašovacích údajů:
    • Zaregistrujte aplikaci v Azure Active Directory.
    • Získejte tenant ID, client ID a client secret.
    • Vytvořte ClientSecretCredential pro přístup k Key Vaultu.
  3. Načtení certifikátu:
    • Pomocí CertificateClient načtěte certifikát obsahující veřejný klíč z Azure Key Vaultu.
    • Tento certifikát slouží k ověření digitálního podpisu.
  4. Implementace vlastního podepisování:
    • Použijte CryptographyClient z Azure SDK k podepsání hashe dokumentu.
    • Zvolte vhodný algoritmus podpisu (např. RS256).

📌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:

  1. Hardware Security Modules (HSMs) – implementujte podepisovač, který komunikuje s fyzickými HSM pro maximální bezpečnost.
  2. 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.
  3. Biometrické ověřování – postavte podepisovací službu, která před autorizací podpisu vyžaduje otisk prstu nebo rozpoznání obličeje.
  4. Vícepodpisové schválení – implementujte workflow, kde musí několik stran schválit před aplikací finálního podpisu.
  5. 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: