Wprowadzenie
Pliki PDF są niezbędne w różnych branżach, a zapewnienie ich autentyczności i integralności poprzez podpisy cyfrowe jest ważnym środkiem bezpieczeństwa. Podpisy cyfrowe zapewniają prawidłowość prawną i chronią dokumenty przed manipulacją. Ten kompleksowy przewodnik prowadzi Cię przez implementację podpisów cyfrowych PDF w .NET, tworząc bezpieczną usługę podpisów cyfrowych PDF za pomocą Azure Key Vault i GroupDocs.Signature for .NET.
Podpisy elektroniczne dokumentów stały się coraz ważniejsze dla firm przechodzących na bezpapierowe przepływy pracy. GroupDocs.Signature for .NET oferuje potężne rozwiązanie podpisów cyfrowych PDF w C#, które spełnia wymagania zgodności podpisów cyfrowych w różnych ramach prawnych. Niezależnie od tego, czy jesteś nowicjuszem w podpisywaniu PDF w aplikacjach .NET, czy chcesz ulepszyć istniejące rozwiązanie, ten poradnik pokrywa wszystko, czego potrzebujesz wiedzieć.
Azure Key Vault jest usługą zarządzania kluczami w chmurze, która umożliwia bezpieczne przechowywanie i zarządzanie kluczami kryptograficznymi i certyfikatami. GroupDocs.Signature for .NET to potężne, bezpieczne API podpisów PDF, które pozwala programistom programowo stosować podpisy cyfrowe do plików PDF. Integracja tych technologii pozwala zbudować solidną i wydajną usługę podpisów cyfrowych PDF.
Jedną z najpotężniejszych funkcji, którą zbadamy, jest podpis z niestandardowym hash, który zapewnia wyjątkową elastyczność dla Twojego procesu podpisywania. Ten sposób pozwala połączyć zewnętrzne urządzenia podpisywania, takie jak moduły bezpieczeństwa sprzętowego (HSM), karty inteligentne lub inne urządzenia kryptograficzne z Twoją aplikacją. Z niestandardowym podpisem hash programiści mogą tworzyć własne usługi podpisów, które interfejsują z własnymi systemami, infrastrukturą legacy lub specjalistycznym sprzętem bezpieczeństwa, zachowując kompatybilność z ramką GroupDocs.Signature. To robi go idealnym rozwiązaniem dla organizacji z konkretnymi wymaganiami bezpieczeństwa lub istniejącymi inwestycjami w infrastrukturę kryptograficzną.
🔐 Utwórz skarbnicę kluczy Azure i certyfikat
Zacznijmy od skonfigurowania skarbnicy kluczy Azure i wygenerowania certyfikatu.
Krok 1: Zapewnienie skarbnicy kluczy
Utwórz nowy zasób skarbnicy kluczy Azure za pomocą Azure portal. Dla szczegółowych instrukcji sprawdź ten przewodnik szybkiego startu.
💡Jeśli nie masz aktywnego subskrypcji Azure, możesz zarejestrować się na 1-miesięczny bezpłatny okres próbny, aby rozpocząć.
Krok 2: Wygeneruj lub zaimportuj swój certyfikat
Po uruchomieniu skarbnicy kluczy przejdź do jej tablicy, wybierz zakładkę Certificates i kliknij Generate/Import, aby dodać swój certyfikat.

Krok 3: W polu Method of Certificate Creation wybierz Generate, aby automatycznie utworzyć nowy certyfikat. W tym przykładzie wybieramy Self-signed certificate jako typ certyfikatu.

Uwaga: Jeśli chcesz użyć istniejącego certyfikatu, możesz wybrać Import, aby załadować go z lokalnego urządzenia.

Krok 4: Następnie przejdź do Advanced Policy Configuration i ustaw opcję Private Key Export na No.

Krok 5: Ostatecznie kliknij Create. Certyfikat zostanie teraz dodany do Twojej skarbnicy kluczy.
Aby wyświetlić jego szczegóły, prosto kliknij certyfikat, aby otworzyć jego właściwości.

⚙️ Zarejestruj aplikację, aby umożliwić dostęp do skarbnicy kluczy Azure
Aby umożliwić Web API dostęp do skarbnicy kluczy Azure, musisz zarejestrować ją w Azure Active Directory:
Krok 1: Przejdź do Azure Active Directory, wybierz App registrations i kliknij New registration.

Krok 2: Wprowadź nazwę swojej aplikacji i zarejestruj ją.

Po zarejestrowaniu otrzymasz kluczowe szczegóły — skopiuj Client ID i Tenant ID do użycia w swojej aplikacji.

Krok 3: Następnie wybierz API Permissions z menu bocznego i kliknij Add Permission. Wybierz Azure Key Vault, wybierz Full Access i zakończ proces, klikając Add Permissions.

Krok 4: Wybierz Certificate & secrets i kliknij New client secret, aby utworzyć nowy klucz sekretny. Skopiuj ten klucz, aby uzyskać do niego dostęp z Twojej aplikacji .NET.

🔐 Przydziel politykę dostępu do skarbnicy kluczy Azure
W poprzednich krokach utworzyliśmy i zarejestrowali aplikację. Teraz musimy przyznać nowo zarejestrowanej aplikacji dostęp do skarbnicy kluczy Azure:
Krok 1: Przejdź do skarbnicy kluczy Azure, wybierz Access Policies i kliknij Create.

Krok 2: Wybierz niezbędne uprawnienia i kliknij Next.

Krok 3: W tym oknie wybierz aplikację, którą wcześniej zarejestrowaliśmy, GroupDocs.Signature.Service, i kliknij Create.


Aplikacja pojawi się teraz w sekcji Access Policies.

📑 Jak używać skarbnicy kluczy Azure z GroupDocs.Signature for .NET podpisywania PDF
Ten kompleksowy przewodnik wyjaśnia, jak podpisywać dokumenty PDF za pomocą API GroupDocs.Signature w .NET z niestandardowym podpisem hash, który wykorzystuje skarbnicę kluczy Azure. Podzielimy proces na jasne kroki — od konfiguracji środowiska C# do implementacji niestandardowego podpisu hash, który spełnia wymagania zgodności podpisów cyfrowych.
Przegląd bezpiecznego podpisywania PDF z implementacją niestandardowego hash
Metoda podpisu z niestandardowym hash oferuje wyjątkową elastyczność przy implementacji podpisów elektronicznych dokumentów w Twoich aplikacjach .NET. Oto, co pokryjemy:
- Skonfiguruj swoją aplikację .NET do pracy z GroupDocs.Signature dla podpisów cyfrowych PDF
- Skonfiguruj profesjonalne opcje podpisów cyfrowych z właściwym zarządzaniem certyfikatami
- Zaimplementuj mechanizm podpisu z niestandardowym hash dla maksymalnej elastyczności
- Integruj skarbnicę kluczy Azure, aby bezpiecznie pobrać publiczny certyfikat i podpisz dokument
- Postępuj zgodnie z najlepszymi praktykami bezpieczeństwa podczas implementacji
Dla dodatkowych informacji odwołaj się do dokumentacji GroupDocs.Signature na temat podpisów cyfrowych z niestandardowym hash.
🚀 Korzyści z podpisu z niestandardowym hash dla aplikacji PDF .NET
Zanim przejdziemy do implementacji, ważne jest zrozumienie, dlaczego podpis z niestandardowym hash stanowi znaczący postęp w technologii podpisów cyfrowych:
- Integracja z urządzeniami podpisu zewnętrznymi: Podpis z niestandardowym hash umożliwia płynne połączenie z modułami bezpieczeństwa sprzętowego (HSM), kartami inteligentnymi, urządzeniami biometrycznymi i innymi specjalistycznymi urządzeniami kryptograficznymi, które Twoja organizacja może już używać.
- Elastyczna architektura dla rozwiązań przedsiębiorczych: Organizacje mogą tworzyć własne usługi podpisów, które interfejsują z istniejącą infrastrukturą, systemami legacy lub własnymi rozwiązaniami podpisów, zachowując kompatybilność z GroupDocs.Signature.
- Wzmocniona zgodność z bezpieczeństwem: Oddzielając generowanie hash od samego procesu podpisu, uzyskujesz lepszą kontrolę nad operacjami kryptograficznymi, co pomaga spełnić surowe wymagania regulacyjne, takie jak eIDAS, ESIGN Act i standardy zgodności branżowe.
- Wspieranie zarządzania kluczami w chmurze: Integracja ze skarbnicą kluczy Azure pozwala na bezpieczne przechowywanie i zarządzanie certyfikatami w certyfikowanej bezpiecznej infrastrukturze Microsoftu zamiast na lokalnych maszynach.
- Personalizacja procesu podpisu: Implementuj niestandardowe przepływy zatwierdzenia, sekwencje podpisów wielu stron lub specjalistyczne reguły weryfikacji, które przekraczają standardowe implementacje podpisów cyfrowych.
Krok 1. Konfiguracja środowiska podpisu cyfrowego PDF w C#
Zacznij od zdefiniowania ścieżek plików i inicjowania obiektu GroupDocs.Signature w swojej aplikacji C#. W tym przykładzie określamy plik PDF źródłowy i lokalizację wyjściową dla podpisanego dokumentu.
public static void SignDocument()
{
// Zdefiniuj ścieżki dla dokumentów źródłowych i wyjściowych
string sampleFilePath = "sample.pdf";
string sampleOutputFilePath = "signed.pdf";
using (Signature signature = new Signature(sampleFilePath))
{
// Kod kontynuuje się w kolejnych krokach...
}
}
📌Uwaga:
Ten krok tworzy nową instancję Signature
, która ładowa plik PDF, który chcesz podpisać, ustanawiając podstawę dla bezpiecznego podpisywania PDF w Twojej aplikacji .NET.
Krok 2. Konfiguracja opcji podpisu cyfrowego
Następnie skonfiguruj opcje podpisu cyfrowego. Opcje te obejmują szczegóły certyfikatu, wygląd wizualny i algorytm hash. Podpis z niestandardowym hash zostanie podłączony później.
// Inicjalizuj opcje podpisu cyfrowego
DigitalSignOptions options = new DigitalSignOptions()
{
Signature = new DigitalSignature(),
Password = "1234567890", // Hasło certyfikatu
Reason = "Sign", // Powód podpisu
Contact = "JohnSmith", // Informacje kontaktowe
Location = "Office1", // Lokalizacja podpisu
AllPages = true, // Zastosuj podpis na wszystkich stronach
Width = 80,
Height = 60,
VerticalAlignment = VerticalAlignment.Bottom,
HorizontalAlignment = HorizontalAlignment.Right,
Margin = new Padding() { Bottom = 10, Right = 10 },
HashAlgorithm = HashAlgorithm.Sha256 // Określ SHA-256 do hashowania
};
📌Uwaga:
Konfiguruj podstawowe właściwości podpisu cyfrowego, takie jak wygląd, pozycjonowanie i hashowanie, aby upewnić się, że Twoje podpisy elektroniczne dokumentów spełniają profesjonalne standardy.
Uwaga bezpieczeństwa: W produkcji unikaj wpisywania wprost wartości czułych (takich jak hasła); zamiast tego używaj bezpiecznych metod konfiguracji zgodnych z wymaganiami zgodności podpisów cyfrowych.
Krok 3. Implementacja podpisu z niestandardowym hash
Teraz przypisz swój niestandardowy podpis do opcji. Ten niestandardowy podpis implementuje interfejs ICustomSignHash
i będzie używany do podpisu hash z Azure Key Vault lub dowolnym innym urządzeniem podpisu zewnętrznym, które chcesz zintegrować.
var azureSigner = new AzureSigner();
options.CustomSignHash = azureSigner;
options.Signature.Certificate = azureSigner.GetPublicCertificateFromAzureStorage();
📌Uwaga:
Tutaj tworzymy instancję AzureSigner
. Jego metoda CustomSignHash
zostanie wywołana podczas procesu podpisu, a także pobiera publiczny certyfikat ze skarbnicy kluczy Azure.
Krok 4. Podpisywanie dokumentu
Ostatecznie wywołaj metodę Sign
, aby wygenerować podpisany dokument PDF za pomocą swojej implementacji podpisu z niestandardowym hash.
signature.Sign(sampleOutputFilePath, options);
📌Uwaga:
Ta metoda stosuje Twój podpis cyfrowy do dokumentu za pomocą wcześniej skonfigurowanych opcji, w tym Twojego niestandardowego podpisu. Wynikowy PDF będzie zawierał kryptograficznie bezpieczny podpis, który można zweryfikować za pomocą standardowych czytników PDF lub programowo za pomocą funkcji weryfikacji GroupDocs.Signature.
Krok 5. Szczegółowa implementacja podpisu certyfikatu Azure
Poniżej znajduje się pełna implementacja niestandardowego podpisu za pomocą skarbnicy kluczy Azure do podpisu certyfikatu Azure. Ta klasa demonstruje profesjonalne praktyki podpisu certyfikatu Azure, pobierając poświadczenia Azure, pobierając publiczny certyfikat i bezpieczne podpisywanie hash dokumentu.
public class AzureSigner : ICustomSignHash
{
public byte[] CustomSignHash(byte[] hash, HashAlgorithm hashAlgorithm,
SignatureContext signatureContext)
{
// Deleguj operację podpisu do Azure
return SignWithAzure(hash);
}
private static byte[] SignWithAzure(byte[] signableHash)
{
// Pobierz poświadczenia Azure
var credential = GetAzureSecretCredential();
// Określ identyfikator klucza certyfikatu Key Vault
var certificateKeyId =
"https://groupdocskeyvault.vault.azure.net/keys/GroupDocsSignatureCertificate/>";
CryptographyClient client =
new CryptographyClient(new Uri(certificateKeyId), credential);
// Podpisz hash za pomocą RS256
var result = client.Sign(SignatureAlgorithm.RS256, signableHash);
return result.Signature;
}
static ClientSecretCredential GetAzureSecretCredential()
{
// Podaj szczegóły Twojego identyfikatora klienta, klienta i sekretu AD Azure
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()
{
// Określ URI skarbnicy kluczy
string vaultUri = "https://groupdocskeyvault.vault.azure.net/>";
var credential = GetAzureSecretCredential();
X509Certificate2 pubCertificate =
GetPublicCertificateFromAzureStorage(credential, vaultUri);
return pubCertificate;
}
static X509Certificate2 GetPublicCertificateFromAzureStorage(
ClientSecretCredential credential, string uri)
{
// Utwórz klienta certyfikatu dla skarbnicy kluczy
CertificateClient certificateClient =
new CertificateClient(new Uri(uri), credential);
// Pobierz certyfikat z kluczem publicznym
KeyVaultCertificateWithPolicy certificate =
certificateClient.GetCertificateAsync("GroupDocsSignatureCertificate").Result;
return new X509Certificate2(certificate.Cer);
}
}
📌Uwagi:
- Poświadczenia Azure: Metoda GetAzureSecretCredential tworzy poświadczenie za pomocą Twojego identyfikatora klienta, identyfikatora klienta i sekretu. Uwaga bezpieczeństwa: Upewnij się, że przechowujesz te poświadczenia bezpiecznie (na przykład za pomocą skarbnicy kluczy Azure lub bezpiecznego magazynu konfiguracji), aby zachować integralność Twojej implementacji podpisów PDF w .NET.
- Podpisywanie z Azure: Metoda SignWithAzure używa klienta CryptographyClient z SDK Azure do podpisu hash z certyfikatem przechowywanym w skarbnicy kluczy Azure, demonstrując profesjonalny podział certyfikatu, który jest zgodny z najlepszymi praktykami podpisów cyfrowych.
- Pobieranie publicznego certyfikatu: Metoda GetPublicCertificateFromAzureStorage łączy się z Twoją skarbnicą kluczy Azure i pobiera certyfikat niezbędny do weryfikacji podpisu, upewniając się, że Twoje podpisy elektroniczne dokumentów mogą być właściwie zweryfikowane.
Krok 6. Krokowe implementacje skarbnicy kluczy Azure dla podpisów cyfrowych PDF
Aby zintegrować skarbnicę kluczy Azure z Twoimi niestandardowymi usługami podpisu, postępuj zgodnie z następującymi krokami:
- Konfiguracja skarbnicy kluczy Azure:
- Utwórz instancję skarbnicy kluczy Azure.
- Załaduj swój certyfikat podpisu do skarbnicy kluczy.
- Skonfiguruj polityki dostępu dla Twojej aplikacji.
- Konfiguracja poświadczeń Azure:
- Zarejestruj swoją aplikację w Azure Active Directory.
- Pobierz swój identyfikator klienta, identyfikator klienta i sekret klienta.
- Utwórz
ClientSecretCredential
do dostępu do Key Vault.
- Pobieranie certyfikatu:
- Użyj klienta
CertificateClient
, aby pobrać certyfikat zawierający klucz publiczny ze skarbnicy kluczy Azure. - Ten certyfikat jest używany do weryfikacji podpisu cyfrowego.
- Użyj klienta
- Implementacja niestandardowego podpisu:
- Użyj klienta
CryptographyClient
z SDK Azure do podpisu hash dokumentu. - Określ odpowiedni algorytm podpisu (np. RS256).
- Użyj klienta
📌Uwaga:
Każdy z tych kroków jest krytyczny, aby upewnić się, że Twój proces podpisu jest bezpieczny i że czułe klucze pozostają chronione w chmurze, oferując jednocześnie elastyczność implementacji własnych usług podpisów dla specjalistycznych wymagań.
🧩 Rozszerzanie swojej implementacji niestandardowego podpisu
Piękno podejścia GroupDocs.Signature do niestandardowego podpisu hash polega na tym, że możesz dostosować go do pracy prawie z dowolnym urządzeniem podpisu zewnętrznym lub usługą. Oto kilka przykładów, jak możesz rozszerzyć tę implementację:
- Moduły bezpieczeństwa sprzętowego (HSMs): Zaimplementuj niestandardowego podpisu, który komunikuje się z fizycznymi HSMami dla maksymalnego bezpieczeństwa.
- Integracja z kartami inteligentnymi: Utwórz podpis, który interfejsuje z czytnikami kart inteligentnych dla środowisk korporacyjnych, które wymagają fizycznej autentykacji.
- Autentykacja biometryczna: Utwórz usługę podpisu, która wymaga rozpoznania odcisku palca lub twarzy przed autoryzowaniem tworzenia podpisu.
- Wielostronne zatwierdzenie: Zaimplementuj niestandardowy przepływ podpisu, w którym wiele stron musi zatwierdzić przed zastosowaniem ostatecznego podpisu.
- Dostawcy usług chmurowych: Dostosuj przykład do pracy z AWS KMS, Google Cloud KMS lub innymi usługami zarządzania kluczami w chmurze.
Przez implementację własnych usług podpisów za pomocą interfejsu ICustomSignHash
zachowujesz pełną kontrolę nad operacjami kryptograficznymi, jednocześnie wykorzystując potężne możliwości obsługi dokumentów GroupDocs.Signature for .NET.
✨ Wnioski dotyczące podpisów elektronicznych dokumentów
Ten przewodnik pokazał, jak zintegrować GroupDocs.Signature z Azure Key Vault do tworzenia zgodnych podpisów elektronicznych dokumentów dla plików PDF w bezpieczny sposób. Podpisy elektroniczne dokumentów utworzone za pomocą tego metodu spełniają standardy branżowe dotyczące autentyczności i integralności. Postępując zgodnie z tym krokowym podejściem i przestrzegając najlepszych praktyk bezpieczeństwa (takich jak bezpieczne obsługiwanie poświadczeń), możesz zaimplementować solidne rozwiązanie podpisów cyfrowych w swojej aplikacji .NET, które działa w całym przepływie dokumentów.
Dla dalszych szczegółów i zaawansowanych scenariuszy odwołaj się do oficjalnej dokumentacji.
Wypróbuj darmową wersję
Możesz spróbować API GroupDocs.Signature za darmo, po prostu pobierając i instalując najnowszą wersję na naszej stronie wydawnictw.
Możesz również uzyskać tymczasową licencję, aby przetestować wszystkie funkcje biblioteki bez żadnych ograniczeń. Przejdź na stronę tymczasowej licencji, aby złożyć wniosek o tymczasową licencję.
🔗 Zobacz również
Dla dodatkowych informacji i zasobów możesz znaleźć poniższe linki użyteczne: