Úvod

Soubory PDF jsou důležité v různých odvětvích a zajištění jejich autenticity a integrity prostřednictvím digitálních podpisů je důležitým bezpečnostním opatřením. Digitální podpisy poskytují právní platnost a chrání dokumenty před neoprávněnými změnami. Tento podrobný průvodce vás provede implementací podpisu PDF v .NET pomocí vytváření bezpečné služby pro digitální podpisy PDF pomocí Azure Key Vault a GroupDocs.Signature for .NET.

Elektronické podpisy dokumentů se stávají stále důležitějšími pro podniky, které přecházejí na bezpapírové pracovní postupy. GroupDocs.Signature for .NET nabízí mocnou řešení pro digitální podpisy PDF v C#, které splňují požadavky na digitální podpisy v různých regulačních rámcích. Bez ohledu na to, zda jste nováček v podpisu PDF v aplikacích .NET nebo chcete zlepšit svou existující implementaci, tento návod vám ukáže vše, co potřebujete vědět.

Azure Key Vault je cloudová služba pro správu klíčů, která umožňuje bezpečné uložení a správu kryptografických klíčů a certifikátů. GroupDocs.Signature for .NET je mocná a bezpečná API pro podpis PDF, která umožňuje vývojářům programově aplikovat digitální podpisy na soubory PDF. Integrací těchto technologií můžete vytvořit robustní a efektivní službu pro digitální podpisy PDF.

Jednou z nejmocnějších funkcí, které budeme prozkoumávat, je podpis s vlastním hash, který poskytuje výjimečnou flexibilitu pro vaše podpisové postupy. Tento přístup vám umožňuje připojit externí zařízení pro podpis, jako jsou hardware security modules (HSMs), smart karty nebo jakékoli jiné kryptografické zařízení k vaší aplikaci. S podpisem s vlastním hash mohou vývojáři napsat vlastní služby pro podpis, které se propojí s vlastními systémy, starými infrastrukturami nebo specializovaným bezpečnostním hardwarem, přičemž zachovávají kompatibilitu s rámcem GroupDocs.Signature. To z něj dělá ideální řešení pro organizace se specifickými požadavky na bezpečnost nebo existující investicemi do kryptografické infrastruktury.

🔐 Vytvoření Azure klíčové schránky a certifikátu

Začněme nastavením Azure Key Vault a generováním certifikátu.

Krok 1: Založení klíčové schránky

Vytvořte nový zdroj Azure Key Vault pomocí Azure portálu. Pro podrobné pokyny si prosím přečtěte tento rychlý start.

💡Pokud nemáte aktivní předplatné Azure, můžete se zaregistrovat na 1 měsíc bezplatného zkušebního období.

Krok 2: Generování nebo import certifikátu

Jakmile je vaše klíčová schránka spuštěna, přejděte na její nástěnku, vyberte záložku Certifikáty a klikněte na Generovat/Importovat, aby jste přidali svůj certifikát.

Azure Key Vault rozhraní pro vytváření certifikátů pro podpis PDF

Krok 3: V poli Metoda vytváření certifikátu vyberte Generovat, aby se automaticky vytvořil nový certifikát. V tomto příkladu si vybereme samopodepsaný certifikát jako typ certifikační autority.

Kompletní diagram postupu GroupDocs .NET PDF digitálního podpisu s Azure Key Vault

Poznámka: Pokud raději použijete existující certifikát, můžete vybrat Importovat, aby jste nahráli jeden ze svého lokálního zařízení.

Příklad kódu v C# pro implementaci podpisu s vlastním hash s GroupDocs.Signature

Krok 4: Poté přejděte na Pokročilé nastavení politiky a nastavte možnost Export soukromého klíče na Ne.

Diagram procesu podpisu certifikátu Azure ukazující tok dat mezi komponentami

Krok 5: Nakonec klikněte na Vytvořit. Certifikát bude nyní přidán do vaší klíčové schránky.

Aby jste zobrazili jeho podrobnosti, prostě klikněte na certifikát, aby jste otevřeli jeho vlastnosti.

Příklad ověření podpisu PDF v aplikaci .NET ukazující výsledky ověření

⚙️ Registrace aplikace pro povolení přístupu k Azure Key Vault

Aby Web API mohl přístupovat k Azure Key Vault, musíte jej zaregistrovat v Azure Active Directory:

Krok 1: Přejděte na Azure Active Directory, vyberte Registrace aplikací a klikněte na Nová registrace.

Integrace elektronických podpisů dokumentů mezi Azure Key Vault a GroupDocs

Krok 2: Zadejte název své aplikace a zaregistrujte ji.

Nastavení bezpečnostních nastavení pro konfiguraci bezpečného podpisu PDF API

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

Rozhraní pro nastavení přístupových politik Azure Key Vault pro oprávnění k podpisu

Krok 3: Poté vyberte Oprávnění API z postranního menu a klikněte na Přidat oprávnění. Vyberte Azure Key Vault, vyberte Plný přístup a dokončete proces kliknutím na Přidat oprávnění.

Příklad výstupu podpisu PDF v .NET ukazující úspěšně podepsaný dokument

Krok 4: Vyberte Certifikáty & tajné klíče a klikněte na Nový tajný klíč, aby jste vytvořili nový tajný klíč. Zkopírujte tento klíč, aby jste jej mohli použít z vaší aplikace .NET.

Diagram integrace externího zařízení pro podpis s implementací vlastního hash GroupDocs

🔐 Přidělení přístupové politiky k Azure Key Vault

V předchozích krocích jsme vytvořili a zaregistrovali aplikaci. Nyní musíme povolit nově zaregistrované aplikaci přístup k Azure Key Vault:

Krok 1: Přejděte na Azure Key Vault, vyberte Přístupové politiky a klikněte na Vytvořit.

Nastavení konfigurace oprávnění k podpisu pro splnění regulačních požadavků

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

Registrace aplikace Azure Active Directory pro služby podpisu PDF

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

Diagram architektury vlastních služeb pro podpis ukazující vztahy mezi komponentami
Panel nastavení vzhledu GroupDocs Signature pro vizuální přizpůsobení podpisu

Aplikace nyní objeví v sekci Přístupové politiky.

Proces ověření digitálního podpisu PDF ukazující kroky ověřovacího postupu

📑 Jak použít Azure Key Vault s GroupDocs.Signature for .NET PDF podpis

Tento podrobný průvodce vysvětluje, jak podepisovat dokumenty PDF pomocí API GroupDocs.Signature v .NET s vlastním hash podpisem, který využívá Azure Key Vault. Rozdělíme proces na jasné kroky – od nastavení vašeho prostředí C# až po implementaci vlastního hash podpisu, který splňuje požadavky na digitální podpis.

Přehled bezpečného podpisu PDF s implementací vlastního hash

Přístup s vlastním hash podpisem nabízí výjimečnou flexibilitu pro implementaci elektronických podpisů dokumentů v vašich aplikacích .NET. Co budeme pokrývat:

  • Nastavte svou aplikaci .NET pro práci s GroupDocs.Signature pro digitální podpisy PDF
  • Nastavte profesionální možnosti podpisu s správou certifikátů
  • Implementujte mechanismus podpisu s vlastním hash pro maximální flexibilitu
  • Integrujte Azure Key Vault pro bezpečné získání veřejného certifikátu a podepsání dokumentu
  • Dodržujte bezpečnostní nejlepší praxe po celém procesu implementace

Pro další pozadí si přečtěte dokumentaci GroupDocs.Signature k digitálnímu podpisu s vlastním hash.

🚀 Výhody podpisu s vlastním hash pro aplikace PDF v .NET

Před tím, než se pustíme do implementace, je důležité pochopit, proč podpis s vlastním hash představuje významný pokrok v technologii digitálních podpisů:

  1. Integrace s externími zařízeními pro podpis: Podpis s vlastním hash umožňuje bezproblémové připojení k hardware security modules (HSMs), smart kartám, biometrickým zařízením a jiným specializovaným kryptografickým hardwaru, který vaše organizace již může používat.
  2. Flexibilní architektura pro podnikové řešení: Organizace mohou napsat vlastní služby pro podpis, které se propojí s existující infrastrukturou, starými systémy nebo vlastními řešeními pro podpis, přičemž zachovávají kompatibilitu s GroupDocs.Signature.
  3. Zlepšená bezpečnostní kompliance: Oddělením generování hash od samotného procesu podpisu si udržujete lepší kontrolu nad kryptografickými operacemi, což pomáhá splnit přísné regulační požadavky jako eIDAS, ESIGN Act a průmyslové kompliance standardy.
  4. Podpora pro správu klíčů v cloudu: Integrace s Azure Key Vault umožňuje, aby certifikáty byly bezpečně uloženy a spravovány v Microsoftově certifikované bezpečné infrastruktuře místo na lokálních strojích.
  5. Přizpůsobení procesu podpisu: Implementujte vlastní schvalovací postupy, sekvence podpisu více stran nebo specializovaná pravidla ověřování, která přesahují standardní implementace digitálních podpisů.

Krok 1. Nastavení prostředí pro podpis PDF v C#

Začněte definováním cest k souborům a inicializací objektu GroupDocs.Signature v vaší aplikaci C#. V tomto příkladu určujeme zdrojový soubor PDF a výstupní umístění pro podepsaný dokument.

public static void SignDocument()
{
    // Definujte cesty pro zdrojové a výstupní dokumenty
    string sampleFilePath = "sample.pdf";
    string sampleOutputFilePath = "signed.pdf";

    using (Signature signature = new Signature(sampleFilePath))
    {
        // Kód pokračuje v následujících krocích...
    }
}

📌 Poznámka:

Tento krok vytvoří novou instanci Signature, která načte PDF dokument, který chcete podepsat, a položí základ pro bezpečný podpis PDF v vaší aplikaci .NET.


Krok 2. Nastavení možností digitálního podpisu

Nyní nastavte své možnosti digitálního podpisu. Tyto možnosti zahrnují detaily certifikátu, vizuální vzhled a algoritmus hash. Podpis s vlastním hash bude připojen později.

// Inicializujte možnosti digitálního podpisu
DigitalSignOptions options = new DigitalSignOptions()
{
    Signature = new DigitalSignature(),
    Password = "1234567890",      // Heslo certifikátu
    Reason = "Sign",              // Důvod podpisu
    Contact = "JohnSmith",        // Kontaktní informace
    Location = "Office1",         // Místo podpisu
    AllPages = true,              // Aplikujte podpis na všechny stránky
    Width = 80,
    Height = 60,
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Margin = new Padding() { Bottom = 10, Right = 10 },
    HashAlgorithm = HashAlgorithm.Sha256 // Určete SHA-256 pro hashování
};

📌 Poznámka:

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 vyhňte hardcodování citlivých hodnot (jako jsou hesla); místo toho použijte bezpečné metody konfigurace, které jsou v souladu s požadavky na digitální podpis.


Krok 3. Implementace podpisu s vlastním hash

Nyní přiřadíte svůj vlastní podpisovač hash možnostem. Tento vlastní podpisovač implementuje rozhraní ICustomSignHash a bude použit pro podpis hash s Azure Key Vault nebo jakýmkoli jiným externím zařízením pro podpis, které chcete integrovat.

var azureSigner = new AzureSigner();
options.CustomSignHash = azureSigner;
options.Signature.Certificate = azureSigner.GetPublicCertificateFromAzureStorage();

📌 Poznámka:

Tady je vytvořena instance AzureSigner. Jeho metoda CustomSignHash bude volána během procesu podpisu a také získá veřejný certifikát z Azure Key Vault.


Krok 4. Podpis dokumentu

Nakonec voláte metodu Sign, aby jste vygenerovali podepsaný PDF dokument pomocí své implementace podpisu s vlastním hash.

signature.Sign(sampleOutputFilePath, options);

📌 Poznámka:

Tato metoda aplikuje váš digitální podpis na dokument pomocí předchozích nastavených možností, včetně vašeho vlastního podpisovače hash. Výsledný PDF bude obsahovat kryptograficky bezpečný podpis, který lze ověřit pomocí standardních čteček PDF nebo programově s funkcemi ověřování GroupDocs.Signature.


Krok 5. Podrobná implementace podpisu certifikátu Azure

Níže je kompletní implementace vlastního podpisovače pomocí Azure Key Vault pro podpis certifikátu Azure. Tento třída demonstruje profesionální postupy podpisu certifikátu Azure, získá Azure přihlašovací údaje, získává veřejný certifikát a bezpečně podepisuje hash dokumentu.

public class AzureSigner : ICustomSignHash
{
    public byte[] CustomSignHash(byte[] hash, HashAlgorithm hashAlgorithm,
     SignatureContext signatureContext)
    {
        // Delegujte operaci podpisu Azure
        return SignWithAzure(hash);
    }

    private static byte[] SignWithAzure(byte[] signableHash)
    {
        // Získejte Azure přihlašovací údaje
        var credential = GetAzureSecretCredential();

        // Určete identifikátor klíče certifikátu Azure
        var certificateKeyId =
        "https://groupdocskeyvault.vault.azure.net/keys/GroupDocsSignatureCertificate/>";
        CryptographyClient client =
            new CryptographyClient(new Uri(certificateKeyId), credential);

        // Podepište hash pomocí RS256
        var result = client.Sign(SignatureAlgorithm.RS256, signableHash);
        return result.Signature;
    }

    static ClientSecretCredential GetAzureSecretCredential()
    {
        // Zadejte své Azure AD tenant, client a tajné detaily
        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()
    {
        // Definujte URI klíčové schránky
        string vaultUri = "https://groupdocskeyvault.vault.azure.net/>";
        var credential  = GetAzureSecretCredential();
        X509Certificate2 pubCertificate =
        GetPublicCertificateFromAzureStorage(credential, vaultUri);
        return pubCertificate;
    }

    static X509Certificate2 GetPublicCertificateFromAzureStorage(
        ClientSecretCredential credential, string uri)
    {
        // Vytvořte klienta certifikátu pro klíčovou schránku
        CertificateClient certificateClient =
            new CertificateClient(new Uri(uri), credential);

        // Získejte certifikát s veřejným klíčem
        KeyVaultCertificateWithPolicy certificate =
        certificateClient.GetCertificateAsync("GroupDocsSignatureCertificate").Result;
        return new X509Certificate2(certificate.Cer);
    }
}

📌 Poznámky:

  • Azure přihlašovací údaje: Metoda GetAzureSecretCredential vytváří přihlašovací údaje pomocí vašeho tenant ID, client ID a tajného klíče. Bezpečnostní poznámka: Ujistěte se, že ukládáte tyto přihlašovací údaje bezpečně (například pomocí Azure Key Vault nebo bezpečného úložiště konfigurace) k udržení integrity vaší implementace podpisu PDF v .NET.
  • Podpis s Azure: Metoda SignWithAzure používá CryptographyClient z Azure SDK k podpisu hash s certifikátem uloženým v Azure Key Vault, což demonstruje profesionální přístup k správě certifikátů, který dodržuje nejlepší bezpečnostní praxe pro digitální podpis.
  • Získání veřejného certifikátu: Metoda GetPublicCertificateFromAzureStorage se připojí k vaší Azure Key Vault a získá certifikát potřebný pro ověření podpisu, aby se ujistila, že vaše elektronické podpisy dokumentů mohou být ověřeny příslušně.

Krok 6. Kroky implementace Azure Key Vault pro digitální podpisy PDF

Aby jste integrovali Azure Key Vault se svými vlastními službami pro podpis, postupujte podle těchto kroků:

  1. Nastavení Azure Key Vault:
    • Vytvořte instance Azure Key Vault.
    • Nahrát svůj podpisový certifikát do klíčové schránky.
    • Nastavte přístupové politiky pro vaši aplikaci.
  2. Konfigurace Azure přihlašovacích údajů:
    • Zaregistrujte svou aplikaci v Azure Active Directory.
    • Získejte svůj tenant ID, client ID a client secret.
    • Vytvořte ClientSecretCredential pro přístup k klíčové schránce.
  3. Získání certifikátu:
    • Použijte CertificateClient k získání certifikátu obsahujícího veřejný klíč z Azure Key Vault.
    • Tento certifikát se používá k ověření digitálního podpisu.
  4. Implementace vlastního podpisu:
    • Použijte Azure SDK’s CryptographyClient k podpisu hash dokumentu.
    • Určete vhodný algoritmus podpisu (například RS256).

📌 Poznámka:

Každý z těchto kroků je důležitý, aby se ujistili, že váš podpisový proces je bezpečný a že citlivé klíče zůstávají chráněny v cloudu, přičemž nabízí flexibilitu implementovat vlastní služby pro specializované požadavky.


🧩 Rozšíření vaší implementace vlastního podpisu

Krása přístupu GroupDocs.Signature k podpisu s vlastním hash spočívá v tom, že jej můžete přizpůsobit, aby pracoval s téměř jakýmkoli externím zařízením nebo službou pro podpis. Níže jsou příklady, jak můžete rozšířit tuto implementaci:

  1. Hardware Security Modules (HSMs): Implementujte vlastní podpisovač, který komunikuje s fyzickými HSMs pro maximální bezpečnost.
  2. Integrace smart karty: Vytvořte podpisovač, který se propojí se čtečkami smart kart pro korporátní prostředí, která vyžadují fyzickou autentizaci.
  3. Biometrická autentizace: Vytvořte službu pro podpis, která vyžaduje otisk prstu nebo rozpoznávání obličeje před autorizací vytvoření podpisu.
  4. Schvalovací postup více stran: Implementujte vlastní podpisový postup, kde musí více stran schválit před aplikací finálního podpisu.
  5. Poskytovatelé cloudových služeb: Přizpůsobte příklad, aby pracoval s AWS KMS, Google Cloud KMS nebo jinými službami pro správu klíčů v cloudu.

Použitím vlastních služeb pro podpis prostřednictvím rozhraní ICustomSignHash si udržujete úplnou kontrolu nad svými kryptografickými operacemi, přičemž využíváte mocné schopnosti GroupDocs.Signature for .NET pro práci s dokumenty.


✨ Závěrečné poznámky k elektronickým podpisům dokumentů

Tento návod ukázal, jak integrovat GroupDocs.Signature s Azure Key Vault pro vytváření elektronických podpisů dokumentů pro PDF soubory bezpečným způsobem. Elektronické podpisy dokumentů vytvořené tímto způsobem splňují průmyslové standardy pro autentičnost a integrity. Dodržováním tohoto krok za krokem přístupu a pozorováním bezpečnostních nejlepších praxi (jako je bezpečné ovládání přihlašovacích údajů) můžete implementovat robustní řešení pro digitální podpisy v vaší aplikaci .NET, které funguje přes celý dokumentový workflow.

Pro další podrobnosti a pokročilé scenáře si přečtěte oficiální dokumentaci.


Získejte bezplatnou zkušební verzi

Můžete si vyprobovat GroupDocs.Signature API zdarma stažením a nainstalováním poslední verze na našem webu s vydáním.

Můžete také získat dočasnou licenci, aby jste mohli testovat všechny funkce knihovny bez jakýchkoli omezení. Přejděte na stránku s dočasnou licencí, aby jste si ji požádali.

🔗 Podívejte se také

Pro další informace a další zdroje si můžete přečíst následující odkazy: