Pendahuluan

File PDF sangat penting di berbagai industri, dan memastikan keaslian serta integritasnya melalui tanda tangan digital merupakan langkah keamanan yang kritis. Tanda tangan digital memberikan keabsahan hukum dan melindungi dokumen dari manipulasi. Panduan komprehensif ini akan memandu Anda dalam mengimplementasikan .NET PDF signing dengan membuat layanan tanda tangan digital PDF yang aman menggunakan Azure Key Vault dan GroupDocs.Signature untuk .NET.

Tanda tangan dokumen elektronik semakin penting bagi bisnis yang beralih ke alur kerja tanpa kertas. GroupDocs.Signature untuk .NET menawarkan solusi tanda tangan digital PDF C# yang kuat dan memenuhi persyaratan kepatuhan tanda tangan digital di berbagai kerangka regulasi. Baik Anda baru dalam PDF signing di aplikasi .NET maupun ingin meningkatkan implementasi yang ada, tutorial ini mencakup semua yang perlu Anda ketahui.

Azure Key Vault adalah layanan manajemen kunci berbasis cloud yang memungkinkan penyimpanan dan pengelolaan kunci kriptografi serta sertifikat secara aman. GroupDocs.Signature untuk .NET adalah API penandatanganan PDF yang kuat dan aman yang memungkinkan pengembang menerapkan tanda tangan digital ke file PDF secara programatis. Dengan mengintegrasikan kedua teknologi ini, Anda dapat membangun layanan tanda tangan digital PDF yang tangguh dan efisien.

Salah satu fitur paling kuat yang akan kami jelajahi adalah custom hash signing, yang memberikan fleksibilitas luar biasa untuk alur kerja penandatanganan Anda. Pendekatan ini memungkinkan Anda menghubungkan perangkat penandatangan eksternal seperti hardware security modules (HSM), smart card, atau perangkat kriptografi lainnya ke aplikasi Anda. Dengan custom hash signing, pengembang dapat menulis layanan tanda tangan mereka sendiri yang berinteraksi dengan sistem proprietari, infrastruktur legacy, atau perangkat keamanan khusus sambil tetap kompatibel dengan kerangka kerja GroupDocs.Signature. Ini menjadikannya solusi ideal bagi organisasi dengan persyaratan keamanan khusus atau investasi yang sudah ada dalam infrastruktur kriptografi.

🔐 Buat Azure key vault dan sertifikat

Mari kita mulai dengan menyiapkan Azure Key Vault dan menghasilkan sertifikat.

Langkah 1: Provision the Key Vault

Buat sumber daya Azure Key Vault baru menggunakan Azure portal. Untuk petunjuk detail, silakan lihat quick-start guide.

💡Jika Anda belum memiliki langganan Azure aktif, Anda dapat mendaftar untuk percobaan gratis 1 bulan untuk memulai.

Langkah 2: Generate or Import Your Certificate

Setelah key vault Anda aktif, buka dashboardnya, pilih tab Certificates, dan klik Generate/Import untuk menambahkan sertifikat Anda.

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

Langkah 3: Pada bidang Method of Certificate Creation, pilih Generate untuk secara otomatis membuat sertifikat baru. Pada contoh ini, kami memilih Self-signed certificate sebagai tipe otoritas sertifikat.

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

Catatan: Jika Anda lebih suka menggunakan sertifikat yang sudah ada, Anda dapat memilih Import untuk memuatnya dari perangkat lokal Anda.

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

Langkah 4: Selanjutnya, buka Advanced Policy Configuration dan atur opsi Private Key Export ke No.

Azure certificate signing process diagram showing the data flow between components

Langkah 5: Finally, click Create. Sertifikat kini akan ditambahkan ke key vault Anda.

Untuk melihat detailnya, cukup klik pada sertifikat untuk membuka propertinya.

PDF signature validation example in .NET application showing verification results

⚙️ Daftarkan aplikasi untuk mengaktifkan akses ke Azure Key Vault

Agar Web API dapat mengakses Azure Key Vault, Anda perlu mendaftarkannya di Azure Active Directory:

Langkah 1: Buka Azure Active Directory, pilih App registrations, dan klik New registration.

Electronic document signatures integration between Azure Key Vault and GroupDocs

Langkah 2: Masukkan nama aplikasi Anda dan lakukan pendaftaran.

Secure PDF signing API configuration screen with security settings

Setelah pendaftaran, Anda akan menerima detail kunci—salin Client ID dan Tenant ID untuk digunakan dalam aplikasi Anda.

Azure Key Vault access policy setup interface for digital signature permissions

Langkah 3: Selanjutnya, pilih API Permissions dari menu samping dan klik Add Permission. Pilih Azure Key Vault, pilih Full Access, dan selesaikan proses dengan mengklik Add Permissions.

.NET PDF signing output example showing a successfully signed document

Langkah 4: Pilih Certificate & secrets dan klik New client secret untuk membuat kunci rahasia baru. Salin kunci ini untuk mengaksesnya dari aplikasi .NET Anda.

External signing device integration diagram for GroupDocs custom hash implementation

🔐 Tetapkan Access Policy ke Azure Key Vault

Pada langkah sebelumnya, kami telah membuat dan mendaftarkan aplikasi. Sekarang, kita perlu memberikan aplikasi yang baru didaftarkan akses ke Azure Key Vault:

Langkah 1: Buka Azure Key Vault, pilih Access Policies, dan klik Create.

Digital signature compliance settings configuration for regulatory requirements

Langkah 2: Pilih izin yang diperlukan dan klik Next.

Azure Active Directory application registration for PDF signing services

Langkah 3: Pada jendela ini, pilih aplikasi yang kami daftarkan sebelumnya, GroupDocs.Signature.Service, dan klik Create.

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

Aplikasi kini akan muncul di bagian Access Policies.

PDF digital signature verification process showing validation workflow steps

📑 Cara menggunakan Azure Key Vault dengan GroupDocs.Signature untuk .NET PDF Signing

Panduan komprehensif ini menjelaskan cara menandatangani dokumen PDF menggunakan API GroupDocs.Signature di .NET dengan custom hash signing yang memanfaatkan Azure Key Vault. Kami akan memecah proses menjadi langkah‑langkah jelas—dari mengonfigurasi lingkungan C# Anda hingga mengimplementasikan custom hash signer yang memenuhi persyaratan kepatuhan tanda tangan digital.

Gambaran Umum Penandatanganan PDF Aman dengan Implementasi Custom Hash

Pendekatan custom hash signing menawarkan fleksibilitas luar biasa untuk mengimplementasikan tanda tangan dokumen elektronik di aplikasi .NET Anda. Berikut yang akan kami bahas:

  • Menyiapkan aplikasi .NET Anda untuk bekerja dengan GroupDocs.Signature untuk tanda tangan digital PDF
  • Mengonfigurasi opsi penandatanganan digital profesional dengan manajemen sertifikat yang tepat
  • Mengimplementasikan mekanisme custom hash signing untuk fleksibilitas maksimal
  • Mengintegrasikan Azure Key Vault untuk secara aman mengambil sertifikat publik dan menandatangani dokumen
  • Mengikuti praktik keamanan terbaik sepanjang implementasi

Untuk latar belakang tambahan, lihat GroupDocs.Signature documentation on digital signing with custom hash.

🚀Manfaat Custom Hash Signing untuk Aplikasi PDF .NET

Sebelum masuk ke implementasi, penting memahami mengapa custom hash signing merupakan kemajuan signifikan dalam teknologi tanda tangan digital:

  1. Integrasi dengan Perangkat Penandatangan Eksternal: Custom hash signing memungkinkan koneksi mulus dengan hardware security modules (HSM), smart card, perangkat biometrik, dan perangkat kriptografi khusus lainnya yang mungkin sudah digunakan organisasi Anda.
  2. Arsitektur Fleksibel untuk Solusi Enterprise: Organisasi dapat menulis layanan tanda tangan mereka sendiri yang berinteraksi dengan infrastruktur yang ada, sistem legacy, atau solusi penandatangan proprietari sambil tetap kompatibel dengan GroupDocs.Signature.
  3. Kepatuhan Keamanan yang Ditingkatkan: Dengan memisahkan pembuatan hash dari proses penandatanganan sebenarnya, Anda memiliki kontrol lebih baik atas operasi kriptografi, membantu memenuhi persyaratan regulasi ketat seperti eIDAS, ESIGN Act, dan standar kepatuhan industri.
  4. Dukungan untuk Manajemen Kunci Berbasis Cloud: Integrasi dengan Azure Key Vault memungkinkan sertifikat disimpan dan dikelola secara aman di infrastruktur Microsoft yang bersertifikat, bukan di mesin lokal.
  5. Kustomisasi Proses Tanda Tangan: Implementasikan alur kerja persetujuan khusus, urutan penandatanganan multi‑pihak, atau aturan validasi khusus yang melampaui implementasi tanda tangan digital standar.

Langkah 1. Mengonfigurasi Lingkungan C# PDF Digital Signature

Mulailah dengan mendefinisikan jalur file dan menginisialisasi objek GroupDocs.Signature di aplikasi C# Anda. Pada contoh ini, kami menentukan file PDF sumber dan lokasi output untuk dokumen yang ditandatangani.

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:

Langkah ini membuat instance Signature baru yang memuat dokumen PDF yang ingin Anda tandatangani, membangun fondasi untuk penandatanganan PDF yang aman di aplikasi .NET Anda.


Langkah 2. Mengonfigurasi Opsi Tanda Tangan Digital

Selanjutnya, atur opsi tanda tangan digital Anda. Opsi ini mencakup detail sertifikat, tampilan visual, dan algoritma hash. Custom hash signing akan dipasang nanti.

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

Konfigurasikan properti dasar tanda tangan digital seperti tampilan, posisi, dan hashing untuk memastikan tanda tangan dokumen elektronik Anda memenuhi standar profesional.

Security note: Dalam produksi, hindari menuliskan nilai sensitif (seperti password) secara hard‑code; gunakan metode konfigurasi aman yang konsisten dengan persyaratan kepatuhan tanda tangan digital.


Langkah 3. Mengimplementasikan Custom Hash Signing

Sekarang, tetapkan custom hash signer ke opsi. Signer khusus ini mengimplementasikan antarmuka ICustomSignHash dan akan digunakan untuk menandatangani hash dengan Azure Key Vault atau perangkat penandatangan eksternal lainnya yang ingin Anda integrasikan.

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

📌Annotation:

Di sini, instance AzureSigner dibuat. Metode CustomSignHash‑nya akan dipanggil selama proses penandatanganan, dan ia juga mengambil sertifikat publik dari Azure Key Vault.


Langkah 4. Menandatangani Dokumen

Akhirnya, panggil metode Sign untuk menghasilkan dokumen PDF yang ditandatangani menggunakan implementasi custom hash signing Anda.

signature.Sign(sampleOutputFilePath, options);

📌Annotation:

Metode ini menerapkan tanda tangan digital Anda ke dokumen menggunakan opsi yang telah dikonfigurasi sebelumnya, termasuk custom hash signer. PDF yang dihasilkan akan berisi tanda tangan kriptografis yang dapat divalidasi menggunakan pembaca PDF standar atau secara programatis dengan fitur validasi GroupDocs.Signature.


Langkah 5. Implementasi Detail Azure Certificate Signing

Berikut adalah implementasi lengkap signer khusus yang menggunakan Azure Key Vault untuk penandatanganan sertifikat Azure. Kelas ini menunjukkan praktik profesional penandatanganan sertifikat Azure dengan mengambil kredensial Azure, mengambil sertifikat publik, dan menandatangani hash dokumen secara aman.

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:
    Metode GetAzureSecretCredential membuat kredensial menggunakan tenant ID, client ID, dan secret Anda. Catatan keamanan: Pastikan kredensial ini disimpan secara aman (misalnya, menggunakan Azure Key Vault atau penyimpanan konfigurasi yang aman) untuk menjaga integritas implementasi .NET PDF signing Anda.
  • Signing with Azure:
    Metode SignWithAzure menggunakan CryptographyClient dari Azure SDK untuk menandatangani hash dengan sertifikat yang disimpan di Azure Key Vault, menunjukkan pendekatan profesional dalam manajemen sertifikat yang mengikuti praktik terbaik kepatuhan tanda tangan digital.
  • Public Certificate Retrieval:
    Metode GetPublicCertificateFromAzureStorage terhubung ke Azure Key Vault Anda dan mengambil sertifikat yang diperlukan untuk verifikasi tanda tangan, memastikan tanda tangan dokumen elektronik dapat divalidasi dengan tepat.

Langkah 6. Langkah Implementasi Azure Key Vault untuk Tanda Tangan Digital PDF

Untuk mengintegrasikan Azure Key Vault dengan layanan tanda tangan khusus Anda, ikuti langkah‑langkah berikut:

  1. Setup Azure Key Vault:
    • Buat instance Azure Key Vault.
    • Unggah sertifikat penandatanganan Anda ke Key Vault.
    • Konfigurasikan kebijakan akses untuk aplikasi Anda.
  2. Configure Azure Credentials:
    • Daftarkan aplikasi Anda di Azure Active Directory.
    • Dapatkan tenant ID, client ID, dan client secret Anda.
    • Buat ClientSecretCredential untuk mengakses Key Vault.
  3. Retrieve the Certificate:
    • Gunakan CertificateClient untuk mengambil sertifikat yang berisi kunci publik dari Azure Key Vault.
    • Sertifikat ini digunakan untuk memverifikasi tanda tangan digital.
  4. Implement Custom Signing:
    • Gunakan CryptographyClient dari Azure SDK untuk menandatangani hash dokumen.
    • Tentukan algoritma tanda tangan yang sesuai (misalnya RS256).

📌Annotation:

Setiap langkah ini penting untuk memastikan proses penandatanganan Anda aman dan kunci sensitif tetap terlindungi di cloud, sambil menawarkan fleksibilitas untuk mengimplementasikan layanan tanda tangan Anda sendiri sesuai kebutuhan khusus.


🧩 Memperluas Implementasi Custom Signing Anda

Keindahan pendekatan custom hash signing pada GroupDocs.Signature adalah Anda dapat menyesuaikannya untuk bekerja dengan hampir semua perangkat atau layanan penandatangan eksternal. Berikut beberapa contoh cara memperluas implementasi ini:

  1. Hardware Security Modules (HSMs): Implementasikan signer khusus yang berkomunikasi dengan HSM fisik untuk keamanan maksimal.
  2. Integrasi Smart Card: Buat signer yang berinteraksi dengan pembaca smart card untuk lingkungan korporat yang memerlukan autentikasi fisik.
  3. Autentikasi Biometrik: Bangun layanan penandatanganan yang memerlukan sidik jari atau pengenalan wajah sebelum mengotorisasi pembuatan tanda tangan.
  4. Persetujuan Multi‑Pihak: Implementasikan alur kerja penandatanganan khusus di mana beberapa pihak harus menyetujui sebelum tanda tangan akhir diterapkan.
  5. Penyedia Layanan Cloud: Sesuaikan contoh ini untuk bekerja dengan AWS KMS, Google Cloud KMS, atau layanan manajemen kunci cloud lainnya.

Dengan mengimplementasikan layanan tanda tangan Anda sendiri melalui antarmuka ICustomSignHash, Anda mempertahankan kontrol penuh atas operasi kriptografi sambil memanfaatkan kemampuan penanganan dokumen yang kuat dari GroupDocs.Signature untuk .NET.


✨ Pemikiran Akhir tentang Tanda Tangan Dokumen Elektronik

Panduan ini menunjukkan cara mengintegrasikan GroupDocs.Signature dengan Azure Key Vault untuk menciptakan tanda tangan dokumen elektronik yang patuh pada standar industri untuk file PDF secara aman. Tanda tangan dokumen elektronik yang dibuat dengan metode ini memenuhi standar autentikasi dan integritas. Dengan mengikuti pendekatan langkah‑demi‑langkah ini dan menerapkan praktik keamanan terbaik (seperti penanganan kredensial yang aman), Anda dapat membangun solusi penandatanganan digital yang kuat dalam aplikasi .NET Anda yang berfungsi di seluruh alur kerja dokumen.

Untuk detail lebih lanjut dan skenario lanjutan, lihat official documentation.


Dapatkan Versi Percobaan Gratis

Anda dapat mencoba API GroupDocs.Signature secara gratis hanya dengan mengunduh dan menginstal versi terbaru di situs release downloads website.

Anda juga dapat memperoleh lisensi sementara untuk menguji semua fungsionalitas perpustakaan tanpa batasan. Kunjungi temporary license page untuk mengajukan permohonan lisensi sementara.

🔗 Lihat Juga

Untuk informasi lebih lanjut dan sumber daya tambahan, Anda mungkin menemukan tautan berikut berguna: