Introductie

PDF‑bestanden zijn onmisbaar in diverse sectoren, en het waarborgen van hun authenticiteit en integriteit met digitale handtekeningen is een cruciale beveiligingsmaatregel. Digitale handtekeningen bieden juridische geldigheid en beschermen documenten tegen manipulatie. Deze uitgebreide gids leidt je stap voor stap door het implementeren van .NET PDF‑ondertekening door een veilige PDF‑digitale‑handtekeningservice te bouwen met Azure Key Vault en GroupDocs.Signature for .NET.

Elektronische documenthandtekeningen worden steeds belangrijker voor bedrijven die overstappen op papierloze processen. GroupDocs.Signature for .NET biedt een krachtige C#‑oplossing voor PDF‑digitale handtekeningen die voldoet aan de compliance‑eisen van diverse regelgevende kaders. Of je nu nieuw bent met PDF‑ondertekening in .NET‑applicaties of je bestaande implementatie wilt verbeteren, deze tutorial behandelt alles wat je moet weten.

Azure Key Vault is een cloudgebaseerde sleutelbeheer‑service die veilige opslag en beheer van cryptografische sleutels en certificaten mogelijk maakt. GroupDocs.Signature for .NET is een krachtige, veilige PDF‑ondertekenings‑API waarmee ontwikkelaars programmatisch digitale handtekeningen op PDF‑bestanden kunnen toepassen. Door deze technologieën te integreren, kun je een robuuste en efficiënte PDF‑digitale‑handtekeningservice bouwen.

Een van de krachtigste functies die we gaan verkennen is custom hash signing, die uitzonderlijke flexibiliteit biedt voor je ondertekeningsworkflow. Deze aanpak stelt je in staat externe ondertekeningsapparaten zoals hardware security modules (HSM’s), smart cards of andere cryptografische apparaten aan je applicatie te koppelen. Met custom hash signing kunnen ontwikkelaars hun eigen ondertekeningsservices schrijven die communiceren met propriëtaire systemen, legacy‑infrastructuur of gespecialiseerde beveiligingshardware, terwijl ze compatibel blijven met het GroupDocs.Signature‑framework. Dit maakt het een ideale oplossing voor organisaties met specifieke beveiligingsvereisten of bestaande investeringen in cryptografische infrastructuur.

🔐 Maak een Azure‑sleutelkluis en certificaat aan

Laten we beginnen met het opzetten van een Azure Key Vault en het genereren van een certificaat.

Stap 1: Provision the Key Vault

Maak een nieuwe Azure Key Vault‑resource aan via het Azure‑portaal. Voor gedetailleerde instructies, bekijk deze quick‑start‑gids.

💡Als je geen actieve Azure‑abonnement hebt, kun je je aanmelden voor een gratis proefperiode van 1 maand om te beginnen.

Stap 2: Genereer of importeer je certificaat

Navigeer, zodra je sleutelkluis operationeel is, naar het dashboard, selecteer het tabblad Certificates en klik op Generate/Import om je certificaat toe te voegen.

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

Stap 3: In het veld Method of Certificate Creation selecteer je Generate om automatisch een nieuw certificaat aan te maken. Voor dit voorbeeld kiezen we een Self‑signed certificate als certificaatautoriteitstype.

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

Opmerking: Als je een bestaand certificaat wilt gebruiken, kun je Import selecteren om er een van je lokale apparaat te laden.

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

Stap 4: Ga vervolgens naar Advanced Policy Configuration en stel de optie Private Key Export in op No.

Azure certificate signing process diagram showing the data flow between components

Stap 5: Klik tenslotte op Create. Het certificaat wordt nu toegevoegd aan je sleutelkluis.

Om de details te bekijken, klik je simpelweg op het certificaat om de eigenschappen te openen.

PDF signature validation example in .NET application showing verification results

⚙️ Registreer de applicatie om toegang tot Azure Key Vault mogelijk te maken

Om de Web API toegang te geven tot Azure Key Vault, moet je deze registreren in Azure Active Directory:

Stap 1: Navigeer naar Azure Active Directory, kies App registrations en klik op New registration.

Electronic document signatures integration between Azure Key Vault and GroupDocs

Stap 2: Voer je applicatienaam in en registreer.

Secure PDF signing API configuration screen with security settings

Na registratie ontvang je belangrijke gegevens – kopieer de Client ID en Tenant ID voor gebruik in je applicatie.

Azure Key Vault access policy setup interface for digital signature permissions

Stap 3: Selecteer vervolgens API Permissions in het zijmenu en klik op Add Permission. Kies Azure Key Vault, selecteer Full Access, en rond af door op Add Permissions te klikken.

.NET PDF signing output example showing a successfully signed document

Stap 4: Ga naar Certificate & secrets en klik op New client secret om een nieuwe geheime sleutel aan te maken. Kopieer deze sleutel om deze vanuit je .NET‑applicatie te gebruiken.

External signing device integration diagram for GroupDocs custom hash implementation

🔐 Wijs het toegangsbeleid toe aan Azure Key Vault

In de vorige stappen hebben we de applicatie aangemaakt en geregistreerd. Nu moeten we de nieuw geregistreerde applicatie toegang geven tot Azure Key Vault:

Stap 1: Navigeer naar Azure Key Vault, selecteer Access Policies en klik op Create.

Digital signature compliance settings configuration for regulatory requirements

Stap 2: Selecteer de benodigde permissies en klik op Next.

Azure Active Directory application registration for PDF signing services

Stap 3: Kies in dit venster de applicatie die we eerder hebben geregistreerd, GroupDocs.Signature.Service, en klik op Create.

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

De applicatie verschijnt nu in de sectie Access Policies.

PDF digital signature verification process showing validation workflow steps

📑 Hoe Azure Key Vault te gebruiken met GroupDocs.Signature for .NET PDF‑ondertekening

Deze uitgebreide gids legt uit hoe je PDF‑documenten ondertekent met de GroupDocs.Signature‑API in .NET met custom hash signing die Azure Key Vault benut. We splitsen het proces op in duidelijke stappen – van het configureren van je C#‑omgeving tot het implementeren van een custom hash signer die voldoet aan de compliance‑eisen voor digitale handtekeningen.

Overzicht van veilige PDF‑ondertekening met custom hash‑implementatie

De custom hash signing‑aanpak biedt uitzonderlijke flexibiliteit voor het implementeren van elektronische documenthandtekeningen in je .NET‑applicaties. Dit is wat we behandelen:

  • Zet je .NET‑applicatie op om te werken met GroupDocs.Signature for PDF‑digitale handtekeningen
  • Configureer professionele digitale ondertekeningsopties met juist certificaatbeheer
  • Implementeer een custom hash signing‑mechanisme voor maximale flexibiliteit
  • Integreer Azure Key Vault om het publieke certificaat veilig op te halen en het document te ondertekenen
  • Volg best practices op het gebied van beveiliging gedurende de gehele implementatie

Voor extra achtergrond, raadpleeg de GroupDocs.Signature‑documentatie over digital signing met custom hash.

🚀 Voordelen van custom hash signing voor .NET PDF‑applicaties

Voordat we aan de implementatie beginnen, is het belangrijk te begrijpen waarom custom hash signing een significante vooruitgang betekent in digitale handtekeningtechnologie:

  1. Integratie met externe ondertekeningsapparaten: Custom hash signing maakt naadloze verbinding mogelijk met hardware security modules (HSM’s), smart cards, biometrische apparaten en andere gespecialiseerde cryptografische hardware die je organisatie al gebruikt.
  2. Flexibele architectuur voor enterprise‑oplossingen: Organisaties kunnen hun eigen sign‑services schrijven die communiceren met bestaande infrastructuur, legacy‑systemen of propriëtaire ondertekeningsoplossingen, terwijl ze compatibel blijven met GroupDocs.Signature.
  3. Verbeterde beveiligings‑compliance: Door de hash‑generatie te scheiden van het daadwerkelijke ondertekeningsproces behoud je betere controle over cryptografische operaties, wat helpt te voldoen aan strenge regelgeving zoals eIDAS, ESIGN Act en branchespecifieke standaarden.
  4. Ondersteuning voor cloud‑gebaseerd sleutelbeheer: Integratie met Azure Key Vault zorgt ervoor dat certificaten veilig worden opgeslagen en beheerd in Microsoft’s gecertificeerde infrastructuur in plaats van op lokale machines.
  5. Aanpassing van het ondertekeningsproces: Implementeer aangepaste goedkeuringsworkflows, multi‑party ondertekeningsreeksen of gespecialiseerde validatieregels die verder gaan dan standaard digitale handtekeningen.

Stap 1. Configureren van de C# PDF‑digitale‑handtekeningomgeving

Begin met het definiëren van je bestands‑paden en het initialiseren van het GroupDocs.Signature‑object in je C#‑applicatie. In dit voorbeeld geven we het bron‑PDF‑bestand en de output‑locatie voor het ondertekende document op.

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:

Deze stap maakt een nieuwe Signature‑instantie aan die het PDF‑document laadt dat je wilt ondertekenen, en legt de basis voor veilige PDF‑ondertekening in je .NET‑applicatie.


Stap 2. Configureren van digitale handtekeningopties

Stel vervolgens je digitale handtekeningopties in. Deze opties omvatten certificaatdetails, visuele weergave en het hash‑algoritme. De custom hash signing wordt later toegevoegd.

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

Configureer basis‑eigenschappen van de digitale handtekening, zoals weergave, positionering en hashing, om ervoor te zorgen dat je elektronische documenthandtekeningen aan professionele standaarden voldoen.

Beveiligingsopmerking: Vermijd in productie het hard‑coderen van gevoelige waarden (zoals wachtwoorden); gebruik in plaats daarvan veilige configuratiemethoden die overeenkomen met de eisen voor digitale handtekening‑compliance.


Stap 3. Implementeren van custom hash signing

Wijs nu je custom hash signer toe aan de opties. Deze custom signer implementeert de ICustomSignHash‑interface en wordt gebruikt om de hash te ondertekenen met Azure Key Vault of een ander extern ondertekeningsapparaat.

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

📌Annotation:

Hier wordt een instantie van AzureSigner aangemaakt. De CustomSignHash‑methode wordt tijdens het ondertekeningsproces aangeroepen, en de public‑certificate wordt opgehaald uit Azure Key Vault.


Stap 4. Het document ondertekenen

Roep tenslotte de Sign‑methode aan om het ondertekende PDF‑document te genereren met je custom hash signing‑implementatie.

signature.Sign(sampleOutputFilePath, options);

📌Annotation:

Deze methode past je digitale handtekening toe op het document met de eerder geconfigureerde opties, inclusief je custom hash signer. Het resulterende PDF‑bestand bevat een cryptografisch veilige handtekening die kan worden gevalideerd met standaard PDF‑readers of programmatisch met de validatiefuncties van GroupDocs.Signature.


Stap 5. Gedetailleerde implementatie van Azure‑certificaatondertekening

Hieronder vind je de volledige implementatie van de custom signer die Azure Key Vault gebruikt voor Azure‑certificaatondertekening. Deze klasse demonstreert professionele Azure‑certificaatondertekeningspraktijken door Azure‑referenties op te halen, het publieke certificaat te verkrijgen en de document‑hash veilig te ondertekenen.

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:
    De GetAzureSecretCredential‑methode maakt een referentie aan met je tenant‑ID, client‑ID en geheim. Beveiligingsopmerking: zorg ervoor dat je deze referenties veilig opslaat (bijvoorbeeld via Azure Key Vault of een beveiligde configuratiewinkel) om de integriteit van je .NET PDF‑ondertekening‑implementatie te waarborgen.
  • Signing with Azure:
    De SignWithAzure‑methode gebruikt de CryptographyClient uit de Azure‑SDK om de hash te ondertekenen met het certificaat dat in Azure Key Vault is opgeslagen, wat een professionele aanpak van certificaatbeheer laat zien die voldoet aan best practices voor digitale handtekening‑compliance.
  • Public Certificate Retrieval:
    De methode GetPublicCertificateFromAzureStorage maakt verbinding met je Azure Key Vault en haalt het certificaat op dat nodig is voor verificatie, zodat je elektronische documenthandtekeningen correct gevalideerd kunnen worden.

Stap 6. Azure Key Vault‑implementatiestappen voor PDF‑digitale handtekeningen

Om Azure Key Vault te integreren met je custom sign‑services, volg je deze stappen:

  1. Setup Azure Key Vault:
    • Maak een Azure Key Vault‑instantie aan.
    • Upload je ondertekeningscertificaat naar de Key Vault.
    • Configureer toegangs‑policies voor je applicatie.
  2. Configureer Azure‑referenties:
    • Registreer je applicatie in Azure Active Directory.
    • Haal je tenant‑ID, client‑ID en client‑secret op.
    • Creëer een ClientSecretCredential voor toegang tot de Key Vault.
  3. Haal het certificaat op:
    • Gebruik de CertificateClient om het certificaat met de publieke sleutel uit Azure Key Vault te halen.
    • Dit certificaat wordt gebruikt om de digitale handtekening te verifiëren.
  4. Implementeer custom signing:
    • Gebruik de Azure‑SDK‑CryptographyClient om de hash van het document te ondertekenen.
    • Specificeer het juiste handtekening‑algoritme (bijv. RS256).

📌Annotation:

Elk van deze stappen is cruciaal om ervoor te zorgen dat je ondertekeningsproces veilig is en dat gevoelige sleutels beschermd blijven in de cloud, terwijl je de flexibiliteit behoudt om eigen sign‑services te implementeren voor gespecialiseerde eisen.


🧩 Uitbreiden van je custom signing‑implementatie

De kracht van GroupDocs.Signature’s custom hash signing‑aanpak is dat je deze kunt aanpassen voor vrijwel elk extern ondertekeningsapparaat of -service. Enkele voorbeelden van mogelijke uitbreidingen:

  1. Hardware Security Modules (HSM’s): Implementeer een custom signer die communiceert met fysieke HSM’s voor maximale beveiliging.
  2. Smart Card‑integratie: Maak een signer die werkt met smart‑card‑lezers voor bedrijfsomgevingen die fysieke authenticatie vereisen.
  3. Biometrische authenticatie: Bouw een ondertekeningsservice die vingerafdruk‑ of gezichtsherkenning vereist voordat een handtekening wordt geautoriseerd.
  4. Multi‑party goedkeuring: Implementeer een workflow waarbij meerdere partijen moeten goedkeuren voordat de definitieve handtekening wordt toegepast.
  5. Cloud Service Providers: Pas het voorbeeld aan voor AWS KMS, Google Cloud KMS of andere cloud‑key‑management‑services.

Door je eigen sign‑services via de ICustomSignHash‑interface te implementeren, behoud je volledige controle over je cryptografische operaties terwijl je profiteert van de krachtige documentverwerkingsmogelijkheden van GroupDocs.Signature for .NET.


✨ Eindgedachten over elektronische documenthandtekeningen

Deze gids heeft laten zien hoe je GroupDocs.Signature integreert met Azure Key Vault om conforme elektronische documenthandtekeningen voor PDF‑bestanden op een veilige manier te creëren. Handtekeningen die via deze methode worden gegenereerd, voldoen aan industriële standaarden voor authenticiteit en integriteit. Door de stap‑voor‑stap‑aanpak te volgen en beveiligings‑best practices (zoals veilig omgaan met referenties) in acht te nemen, kun je een robuuste digitale ondertekeningsoplossing implementeren in je .NET‑applicatie die over je volledige document‑workflow heen werkt.

Voor meer details en geavanceerde scenario’s, raadpleeg de officiële documentatie.


Gratis proefversie aanvragen

Je kunt GroupDocs.Signature‑API’s gratis uitproberen door simpelweg de nieuwste versie te downloaden en te installeren vanaf onze release‑downloads website.

Je kunt ook een tijdelijke licentie verkrijgen om alle functionaliteiten van de bibliotheek zonder beperkingen te testen. Ga naar de tijdelijke licentie‑pagina om een tijdelijke licentie aan te vragen.

🔗 Zie ook

Voor meer informatie en aanvullende bronnen kun je de volgende links nuttig vinden: