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

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.

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

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

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.

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

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

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

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

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.

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

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

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


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

📑 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ů:
- 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.
- 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.
- 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.
- 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.
- 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ů:
- 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.
- 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.
- 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.
- Použijte
- Implementace vlastního podpisu:
- Použijte Azure SDK’s
CryptographyClient
k podpisu hash dokumentu. - Určete vhodný algoritmus podpisu (například RS256).
- Použijte Azure SDK’s
📌 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:
- Hardware Security Modules (HSMs): Implementujte vlastní podpisovač, který komunikuje s fyzickými HSMs pro maximální bezpečnost.
- Integrace smart karty: Vytvořte podpisovač, který se propojí se čtečkami smart kart pro korporátní prostředí, která vyžadují fyzickou autentizaci.
- 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.
- Schvalovací postup více stran: Implementujte vlastní podpisový postup, kde musí více stran schválit před aplikací finálního podpisu.
- 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: