Einleitung
PDF‑Dateien sind in vielen Branchen unverzichtbar, und die Gewährleistung ihrer Authentizität und Integrität durch digitale Signaturen ist ein kritisches Sicherheitsmerkmal. Digitale Signaturen bieten rechtliche Gültigkeit und schützen Dokumente vor Manipulation. Dieser umfassende Leitfaden führt Sie durch die Implementierung von .NET PDF‑Signierung, indem er einen sicheren PDF‑Digital‑Signature‑Service mit Azure Key Vault und GroupDocs.Signature für .NET erstellt.
Elektronische Dokumentensignaturen werden für Unternehmen, die zu papierlosen Workflows übergehen, immer wichtiger. GroupDocs.Signature für .NET bietet eine leistungsstarke C#‑PDF‑Digital‑Signature‑Lösung, die die Anforderungen an digitale Signatur‑Compliance in verschiedenen regulatorischen Rahmenbedingungen erfüllt. Egal, ob Sie neu in der PDF‑Signierung in .NET‑Anwendungen sind oder Ihre bestehende Implementierung verbessern möchten, dieses Tutorial deckt alles ab, was Sie wissen müssen.
Azure Key Vault ist ein cloud‑basiertes Schlüsselverwaltungs‑Service, das sichere Speicherung und Verwaltung kryptografischer Schlüssel und Zertifikate ermöglicht. GroupDocs.Signature für .NET ist eine leistungsstarke, sichere PDF‑Signing‑API, die Entwicklern das programmgesteuerte Anwenden digitaler Signaturen auf PDF‑Dateien erlaubt. Durch die Integration dieser Technologien können Sie einen robusten und effizienten PDF‑Digital‑Signature‑Service aufbauen.
Eine der leistungsstärksten Funktionen, die wir untersuchen werden, ist das benutzerdefinierte Hash‑Signing, das außergewöhnliche Flexibilität für Ihren Signatur‑Workflow bietet. Dieser Ansatz ermöglicht es Ihnen, externe Signaturgeräte wie Hardware‑Security‑Modules (HSMs), Smartcards oder andere kryptografische Geräte an Ihre Anwendung anzuschließen. Mit benutzerdefiniertem Hash‑Signing können Entwickler eigene Signatur‑Services schreiben, die mit proprietären Systemen, Legacy‑Infrastrukturen oder spezialisierter Sicherheits‑Hardware interagieren und gleichzeitig mit dem GroupDocs.Signature‑Framework kompatibel bleiben. Das macht es zu einer idealen Lösung für Organisationen mit spezifischen Sicherheitsanforderungen oder bestehenden Investitionen in kryptografische Infrastruktur.
🔐 Erstellen eines Azure‑Schlüsseltresors und Zertifikats
Lassen Sie uns beginnen, indem wir einen Azure Key Vault einrichten und ein Zertifikat erzeugen.
Schritt 1: Bereitstellung des Key Vault
Erstellen Sie eine neue Azure Key Vault‑Ressource über das Azure‑Portal. Detaillierte Anweisungen finden Sie in diesem Schnellstart‑Leitfaden.
💡Wenn Sie kein aktives Azure‑Abonnement besitzen, können Sie sich für ein 1‑Monats‑Free‑Trial anmelden, um loszulegen.
Schritt 2: Zertifikat erzeugen oder importieren
Sobald Ihr Key Vault läuft, navigieren Sie zum Dashboard, wählen den Reiter Certificates und klicken auf Generate/Import, um Ihr Zertifikat hinzuzufügen.
Schritt 3: Im Feld Method of Certificate Creation wählen Sie Generate, um automatisch ein neues Zertifikat zu erstellen. In diesem Beispiel verwenden wir ein Self‑signed certificate als Zertifizierungs‑Authority‑Typ.
Hinweis: Wenn Sie ein vorhandenes Zertifikat nutzen möchten, können Sie Import wählen, um eines von Ihrem lokalen Gerät zu laden.
Schritt 4: Gehen Sie zu Advanced Policy Configuration und setzen Sie die Option Private Key Export auf No.
Schritt 5: Klicken Sie schließlich auf Create. Das Zertifikat wird nun zu Ihrem Key Vault hinzugefügt.
Um die Details einzusehen, klicken Sie einfach auf das Zertifikat, um dessen Eigenschaften zu öffnen.
⚙️ Registrieren der Anwendung, um Zugriff auf den Azure‑Key‑Vault zu ermöglichen
Damit die Web‑API auf den Azure Key Vault zugreifen kann, müssen Sie sie in Azure Active Directory registrieren:
Schritt 1: Navigieren Sie zu Azure Active Directory, wählen App registrations und klicken New registration.
Schritt 2: Geben Sie Ihren Anwendungsnamen ein und registrieren Sie die Anwendung.
Nach der Registrierung erhalten Sie wichtige Schlüssel‑Details – kopieren Sie die Client ID und Tenant ID für die Verwendung in Ihrer Anwendung.
Schritt 3: Wählen Sie anschließend API Permissions im Seitenmenü und klicken Add Permission. Wählen Azure Key Vault, setzen Full Access und schließen den Vorgang mit Add Permissions ab.
Schritt 4: Öffnen Sie Certificate & secrets und klicken New client secret, um einen neuen Geheimschlüssel zu erstellen. Kopieren Sie diesen Schlüssel, um ihn in Ihrer .NET‑Anwendung zu verwenden.
🔐 Zuweisen der Zugriffsrichtlinie zum Azure‑Key‑Vault
In den vorherigen Schritten haben wir die Anwendung erstellt und registriert. Nun müssen wir der neu registrierten Anwendung Zugriff auf den Azure Key Vault gewähren:
Schritt 1: Navigieren Sie zum Azure Key Vault, wählen Access Policies und klicken Create.
Schritt 2: Wählen Sie die erforderlichen Berechtigungen und klicken Next.
Schritt 3: In diesem Fenster wählen Sie die zuvor registrierte Anwendung, GroupDocs.Signature.Service, und klicken Create.
Die Anwendung erscheint nun im Abschnitt Access Policies.
📑 Verwendung von Azure Key Vault mit GroupDocs.Signature für .NET PDF‑Signierung
Dieser umfassende Leitfaden erklärt, wie PDF‑Dokumente mit der GroupDocs.Signature‑API in .NET unter Verwendung von benutzerdefiniertem Hash‑Signing, das Azure Key Vault nutzt, signiert werden. Wir zerlegen den Prozess in klare Schritte – von der Konfiguration Ihrer C#‑Umgebung bis zur Implementierung eines benutzerdefinierten Hash‑Signierers, der digitale Signatur‑Compliance‑Anforderungen erfüllt.
Übersicht über sichere PDF‑Signierung mit benutzerdefinierter Hash‑Implementierung
Der Ansatz des benutzerdefinierten Hash‑Signierens bietet außergewöhnliche Flexibilität für die Implementierung elektronischer Dokumentensignaturen in Ihren .NET‑Anwendungen. Folgendes behandeln wir:
- Einrichtung Ihrer .NET‑Anwendung für GroupDocs.Signature für PDF‑Digitalsignaturen
- Konfiguration professioneller digitaler Signatur‑Optionen mit ordnungsgemäßer Zertifikatsverwaltung
- Implementierung eines benutzerdefinierten Hash‑Signierers für maximale Flexibilität
- Integration von Azure Key Vault, um das öffentliche Zertifikat sicher abzurufen und das Dokument zu signieren
- Durchgängige Anwendung von Sicherheits‑Best‑Practices während der Implementierung
Weitere Hintergrundinformationen finden Sie in der GroupDocs.Signature‑Dokumentation zu digitaler Signatur mit benutzerdefiniertem Hash.
🚀 Vorteile des benutzerdefinierten Hash‑Signierens für .NET PDF‑Anwendungen
Bevor wir mit der Implementierung beginnen, sollten Sie verstehen, warum benutzerdefiniertes Hash‑Signing einen bedeutenden Fortschritt in der digitalen Signatur‑Technologie darstellt:
- Integration externer Signaturgeräte: Benutzerdefiniertes Hash‑Signing ermöglicht nahtlose Anbindung an Hardware‑Security‑Modules (HSMs), Smartcards, biometrische Geräte und andere spezialisierte kryptografische Hardware, die Ihr Unternehmen bereits nutzt.
- Flexible Architektur für Unternehmenslösungen: Organisationen können eigene Signatur‑Services schreiben, die mit bestehender Infrastruktur, Legacy‑Systemen oder proprietären Signaturlösungen interagieren und gleichzeitig mit GroupDocs.Signature kompatibel bleiben.
- Erhöhte Sicherheits‑Compliance: Durch die Trennung der Hash‑Erstellung vom eigentlichen Signaturvorgang behalten Sie bessere Kontrolle über kryptografische Vorgänge, was hilft, strenge regulatorische Vorgaben wie eIDAS, ESIGN Act und branchenspezifische Standards zu erfüllen.
- Unterstützung cloud‑basierter Schlüsselverwaltung: Die Integration mit Azure Key Vault ermöglicht die sichere Speicherung und Verwaltung von Zertifikaten in Microsofts zertifizierter Infrastruktur statt auf lokalen Rechnern.
- Anpassung des Signaturprozesses: Implementieren Sie benutzerdefinierte Genehmigungs‑Workflows, Multi‑Party‑Signatursequenzen oder spezialisierte Validierungsregeln, die über Standard‑Digital‑Signature‑Implementierungen hinausgehen.
Schritt 1. Konfiguration der C#‑Umgebung für PDF‑Digitalsignaturen
Definieren Sie zunächst Ihre Dateipfade und initialisieren Sie das GroupDocs.Signature‑Objekt in Ihrer C#‑Anwendung. In diesem Beispiel geben wir die Quell‑PDF‑Datei und den Zielort für das signierte Dokument an.
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...
}
}
📌Anmerkung:
Dieser Schritt erstellt eine neue Signature‑Instanz, die das zu signierende PDF‑Dokument lädt und damit die Grundlage für sichere PDF‑Signierung in Ihrer .NET‑Anwendung legt.
Schritt 2. Konfiguration der Optionen für die digitale Signatur
Als Nächstes richten Sie die Optionen für Ihre digitale Signatur ein. Diese Optionen umfassen Zertifikatsdetails, visuelle Darstellung und den Hash‑Algorithmus. Das benutzerdefinierte Hash‑Signing wird später eingebunden.
// 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
};
📌Anmerkung:
Konfigurieren Sie grundlegende Eigenschaften der digitalen Signatur wie Aussehen, Positionierung und Hash‑Algorithmus, um sicherzustellen, dass Ihre elektronischen Dokumentensignaturen professionelle Standards erfüllen.
Sicherheitshinweis: In Produktionsumgebungen sollten Sie sensible Werte (wie Passwörter) nicht hartkodieren; verwenden Sie stattdessen sichere Konfigurationsmethoden, die den Anforderungen an digitale Signatur‑Compliance entsprechen.
Schritt 3. Implementierung des benutzerdefinierten Hash‑Signierens
Jetzt weisen Sie Ihrem Options‑Objekt Ihren benutzerdefinierten Hash‑Signer zu. Dieser benutzerdefinierte Signierer implementiert das ICustomSignHash‑Interface und wird verwendet, um den Hash mit Azure Key Vault oder einem anderen externen Signaturgerät zu signieren.
var azureSigner = new AzureSigner();
options.CustomSignHash = azureSigner;
options.Signature.Certificate = azureSigner.GetPublicCertificateFromAzureStorage();
📌Anmerkung:
Hier wird eine Instanz von AzureSigner erstellt. Die Methode CustomSignHash wird während des Signaturvorgangs aufgerufen, und das öffentliche Zertifikat wird aus Azure Key Vault abgerufen.
Schritt 4. Signieren des Dokuments
Abschließend rufen Sie die Methode Sign auf, um das signierte PDF‑Dokument mithilfe Ihrer benutzerdefinierten Hash‑Signing‑Implementierung zu erzeugen.
signature.Sign(sampleOutputFilePath, options);
📌Anmerkung:
Diese Methode wendet Ihre digitale Signatur auf das Dokument an, wobei die zuvor konfigurierten Optionen, einschließlich des benutzerdefinierten Hash‑Signierers, verwendet werden. Das resultierende PDF enthält eine kryptografisch sichere Signatur, die mit gängigen PDF‑Readern oder programmgesteuert über die Validierungs‑Features von GroupDocs.Signature überprüft werden kann.
Schritt 5. Detaillierte Implementierung des Azure‑Zertifikats‑Signierens
Im Folgenden finden Sie die vollständige Implementierung des benutzerdefinierten Signierers, der Azure Key Vault für das Azure‑Zertifikats‑Signing nutzt. Diese Klasse demonstriert professionelle Praktiken beim Azure‑Zertifikats‑Signing, indem sie Azure‑Anmeldeinformationen abruft, das öffentliche Zertifikat holt und den Dokument‑Hash sicher signiert.
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);
}
}
📌Anmerkungen:
- Azure‑Anmeldeinformationen:
Die MethodeGetAzureSecretCredentialerstellt ein Credential anhand Ihrer Tenant‑ID, Client‑ID und des Secrets. Sicherheitshinweis: Stellen Sie sicher, dass Sie diese Anmeldeinformationen sicher speichern (z. B. in Azure Key Vault oder einem gesicherten Konfigurationsspeicher), um die Integrität Ihrer .NET PDF‑Signatur‑Implementierung zu wahren. - Signieren mit Azure:
Die MethodeSignWithAzurenutzt denCryptographyClientaus dem Azure‑SDK, um den Hash mit dem im Azure Key Vault gespeicherten Zertifikat zu signieren – ein professioneller Ansatz für Zertifikatsverwaltung, der den besten Praktiken der digitalen Signatur‑Compliance entspricht. - Abrufen des öffentlichen Zertifikats:
Die MethodeGetPublicCertificateFromAzureStorageverbindet sich mit Ihrem Azure Key Vault und holt das Zertifikat, das für die Signatur‑Verifikation benötigt wird, sodass Ihre elektronischen Dokumentensignaturen korrekt validiert werden können.
Schritt 6. Azure‑Key‑Vault‑Implementierungsschritte für PDF‑Digitalsignaturen
Um Azure Key Vault in Ihre benutzerdefinierten Signatur‑Services zu integrieren, folgen Sie diesen Schritten:
- Azure Key Vault einrichten:
- Erstellen Sie eine Azure Key Vault‑Instanz.
- Laden Sie Ihr Signatur‑Zertifikat in den Key Vault hoch.
- Konfigurieren Sie Zugriffsrichtlinien für Ihre Anwendung.
- Azure‑Anmeldeinformationen konfigurieren:
- Registrieren Sie Ihre Anwendung in Azure Active Directory.
- Holen Sie Ihre Tenant‑ID, Client‑ID und das Client‑Secret.
- Erstellen Sie ein
ClientSecretCredentialfür den Zugriff auf den Key Vault.
- Zertifikat abrufen:
- Verwenden Sie den
CertificateClient, um das Zertifikat mit dem öffentlichen Schlüssel aus Azure Key Vault zu holen. - Dieses Zertifikat wird zur Verifikation der digitalen Signatur verwendet.
- Verwenden Sie den
- Benutzerdefiniertes Signieren implementieren:
- Nutzen Sie den
CryptographyClientdes Azure‑SDK, um den Hash des Dokuments zu signieren. - Geben Sie den passenden Signatur‑Algorithmus an (z. B. RS256).
- Nutzen Sie den
📌Anmerkung:
Jeder dieser Schritte ist entscheidend, um sicherzustellen, dass Ihr Signatur‑Prozess sicher ist und sensible Schlüssel in der Cloud geschützt bleiben, während Sie gleichzeitig die Flexibilität behalten, eigene Signatur‑Services für spezielle Anforderungen zu implementieren.
🧩 Erweiterung Ihrer benutzerdefinierten Signaturimplementierung
Der Vorteil des benutzerdefinierten Hash‑Signing‑Ansatzes von GroupDocs.Signature liegt darin, dass Sie ihn praktisch mit jedem externen Signaturgerät oder -service kombinieren können. Hier einige Beispiele, wie Sie die Implementierung erweitern könnten:
- Hardware‑Security‑Modules (HSMs): Implementieren Sie einen Signierer, der mit physischen HSMs kommuniziert, um maximale Sicherheit zu erreichen.
- Smart‑Card‑Integration: Erstellen Sie einen Signierer, der mit Smart‑Card‑Lesern für Unternehmensumgebungen arbeitet, die physische Authentifizierung verlangen.
- Biometrische Authentifizierung: Entwickeln Sie einen Signatur‑Service, der Fingerabdruck‑ oder Gesichtserkennung erfordert, bevor die Signatur erstellt wird.
- Multi‑Party‑Genehmigung: Implementieren Sie einen Workflow, bei dem mehrere Parteien zustimmen müssen, bevor die endgültige Signatur angewendet wird.
- Cloud‑Service‑Provider: Passen Sie das Beispiel an, um mit AWS KMS, Google Cloud KMS oder anderen Cloud‑Key‑Management‑Services zu arbeiten.
Durch die Implementierung eigener Signatur‑Services über das ICustomSignHash‑Interface behalten Sie die vollständige Kontrolle über Ihre kryptografischen Vorgänge und nutzen gleichzeitig die leistungsstarken Dokumenten‑Handling‑Funktionen von GroupDocs.Signature für .NET.
✨ Abschließende Gedanken zu elektronischen Dokumentensignaturen
Dieser Leitfaden zeigte, wie GroupDocs.Signature mit Azure Key Vault integriert wird, um konforme elektronische Dokumentensignaturen für PDF‑Dateien sicher zu erstellen. Die auf diese Weise erzeugten elektronischen Dokumentensignaturen erfüllen Branchenstandards für Authentizität und Integrität. Durch die Befolgung dieses schrittweisen Vorgehens und das Beachten von Sicherheits‑Best‑Practices (wie sichere Handhabung von Anmeldeinformationen) können Sie eine robuste digitale Signaturlösung in Ihrer .NET‑Anwendung implementieren, die über Ihren gesamten Dokumenten‑Workflow hinweg funktioniert.
Für weitere Details und erweiterte Szenarien konsultieren Sie die offizielle Dokumentation.
Kostenlose Testversion erhalten
Sie können die GroupDocs.Signature‑APIs kostenlos testen, indem Sie einfach die neueste Version von unserer Release‑Downloads‑Website herunterladen und installieren.
Sie können zudem eine temporäre Lizenz erhalten, um alle Funktionen der Bibliothek ohne Einschränkungen zu testen. Besuchen Sie die temporäre Lizenz‑Seite, um eine temporäre Lizenz zu beantragen.
🔗 Siehe auch
Für weitere Informationen und zusätzliche Ressourcen können die folgenden Links nützlich sein: