Giriş

PDF dosyaları çeşitli sektörlerde vazgeçilmezdir ve dijital imzalarla kimlik ve bütünlüklerinin sağlanması kritik bir güvenlik önlemidir. Dijital imzalar yasal geçerlilik sağlar ve belgeleri yetkisiz değişikliklerden korur. Bu kapsamlı rehber, Azure Key Vault ve GroupDocs.Signature for .NET kullanarak güvenli bir PDF dijital imza hizmeti oluşturmayı adım adım anlatır.

Elektronik belge imzaları, kağıtsız iş akışlarına geçiş yapan işletmeler için giderek daha önemli hâle gelmiştir. GroupDocs.Signature for .NET, çeşitli düzenleyici çerçevelerdeki dijital imza uyumluluk gereksinimlerini karşılayan güçlü bir C# PDF dijital imza çözümü sunar. .NET uygulamalarında PDF imzalamaya yeniyseniz ya da mevcut uygulamanızı geliştirmek istiyorsanız, bu öğretici bilmeniz gereken her şeyi kapsar.

Azure Key Vault, kriptografik anahtarların ve sertifikaların güvenli bir şekilde depolanmasını ve yönetilmesini sağlayan bulut tabanlı bir anahtar yönetim hizmetidir. GroupDocs.Signature for .NET, geliştiricilerin PDF dosyalarına programlı olarak dijital imza eklemesini sağlayan güçlü ve güvenli bir PDF imzalama API’sidir. Bu teknolojileri entegre ederek sağlam ve verimli bir PDF dijital imza hizmeti oluşturabilirsiniz.

Keşfedeceğimiz en güçlü özelliklerden biri, imzalama iş akışınıza olağanüstü esneklik kazandıran özel hash imzalamadır. Bu yaklaşım, donanım güvenlik modülleri (HSM), akıllı kartlar veya diğer kriptografik cihazlar gibi harici imzalama cihazlarını uygulamanıza bağlamanıza olanak tanır. Özel hash imzalama sayesinde, geliştiriciler kendi imza hizmetlerini, mevcut altyapı, eski sistemler veya özel güvenlik donanımlarıyla entegre edecek şekilde yazabilir ve aynı zamanda GroupDocs.Signature çerçevesiyle uyumluluğu koruyabilir. Bu, belirli güvenlik gereksinimleri olan ya da kriptografik altyapısına zaten yatırım yapmış organizasyonlar için ideal bir çözümdür.

🔐 Azure anahtar kasası ve sertifika oluşturma

Azure Key Vault’u kurarak bir sertifika oluşturalım.

Adım 1: Key Vault’u sağlama

Azure portal üzerinden yeni bir Azure Key Vault kaynağı oluşturun. Ayrıntılı talimatlar için bu hızlı başlangıç kılavuzuna göz atın.

💡Aktif bir Azure aboneliğiniz yoksa, başlamak için 1‑aylık ücretsiz deneme sürümüne kaydolabilirsiniz.

Adım 2: Sertifikanızı Oluşturun veya İçe Aktarın

Key Vault’unuz çalışır duruma geldiğinde, kontrol paneline gidin, Certificates sekmesini seçin ve Generate/Import üzerine tıklayarak sertifikanızı ekleyin.

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

Adım 3: Method of Certificate Creation alanında Generate seçeneğini işaretleyerek yeni bir sertifika otomatik olarak oluşturun. Bu örnek için Self‑signed certificate tipini seçiyoruz.

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

Not: Mevcut bir sertifikanız varsa, Import seçeneğiyle yerel cihazınızdan yükleyebilirsiniz.

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

Adım 4: Advanced Policy Configuration bölümüne gidin ve Private Key Export seçeneğini No olarak ayarlayın.

Azure certificate signing process diagram showing the data flow between components

Adım 5: Son olarak Create butonuna tıklayın. Sertifika artık Key Vault’a eklenmiş olacak.

Detaylarını görmek için sertifikanın üzerine tıklayarak özelliklerini açın.

PDF signature validation example in .NET application showing verification results

⚙️ Azure Key Vault’a erişim için uygulamayı kaydetme

Web API’nin Azure Key Vault’a erişebilmesi için uygulamayı Azure Active Directory‘de kaydetmeniz gerekir:

Adım 1: Azure Active DirectoryApp registrationsNew registration yolunu izleyin.

Electronic document signatures integration between Azure Key Vault and GroupDocs

Adım 2: Uygulama adınızı girin ve kaydedin.

Secure PDF signing API configuration screen with security settings

Kayıt sonrası Client ID ve Tenant ID değerlerini kopyalayarak uygulamanızda kullanın.

Azure Key Vault access policy setup interface for digital signature permissions

Adım 3: Yan menüden API Permissions seçin, Add PermissionAzure Key VaultFull Access adımlarını izleyip Add Permissions ile tamamlayın.

.NET PDF signing output example showing a successfully signed document

Adım 4: Certificates & secrets sekmesinden New client secret oluşturun. Oluşturulan anahtarı kopyalayarak .NET uygulamanızda kullanın.

External signing device integration diagram for GroupDocs custom hash implementation

🔐 Azure Key Vault’a Erişim Politikası Atama

Önceki adımlarda uygulamayı oluşturup kaydettik. Şimdi bu uygulamaya Azure Key Vault erişimi verelim:

Adım 1: Azure Key Vault’a gidin, Access Policies sekmesini seçin ve Create butonuna tıklayın.

Digital signature compliance settings configuration for regulatory requirements

Adım 2: Gerekli izinleri seçip Next butonuna tıklayın.

Azure Active Directory application registration for PDF signing services

Adım 3: Açılan pencereden daha önce kaydettiğimiz GroupDocs.Signature.Service uygulamasını seçin ve Create ile onaylayın.

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

Uygulama artık Access Policies bölümünde görünecek.

PDF digital signature verification process showing validation workflow steps

📑 Azure Key Vault ve GroupDocs.Signature for .NET ile PDF İmzalama

Bu kapsamlı rehber, Azure Key Vault’u kullanan özel hash imzalama yöntemiyle GroupDocs.Signature API’si aracılığıyla PDF belgelerinin nasıl imzalanacağını anlatır. .NET ortamınızı yapılandırmaktan, özel hash imzalayıcısını uygulamaya kadar tüm adımları net bir şekilde ele alacağız.

Özel Hash Uygulamasıyla Güvenli PDF İmzalamanın Genel Görünümü

Özel hash imzalama, .NET uygulamalarınızda elektronik belge imzalarını uygulamak için olağanüstü bir esneklik sunar. Şu konuları ele alacağız:

  • GroupDocs.Signature for PDF dijital imzalarıyla .NET uygulamanızı yapılandırma
  • Sertifika yönetimiyle profesyonel dijital imza seçenekleri ayarlama
  • Maksimum esneklik için özel hash imzalama mekanizması geliştirme
  • Azure Key Vault’tan kamu sertifikasını güvenli bir şekilde alıp belgeyi imzalama
  • Uygulama boyunca güvenlik en iyi uygulamalarını izleme

Ek bilgi için GroupDocs.Signature dokümantasyonunda özel hash ile dijital imzalama bölümüne bakabilirsiniz.

🚀 .NET PDF Uygulamaları için Özel Hash İmzalamanın Avantajları

Uygulamaya geçmeden önce, özel hash imzalamanın dijital imza teknolojisindeki önemini anlamak faydalı:

  1. Harici İmzalama Cihazlarıyla Entegrasyon: Özel hash imzalama, HSM, akıllı kart, biyometrik cihaz ve organizasyonunuzun halihazırda kullandığı diğer kriptografik donanımlarla sorunsuz bağlantı sağlar.
  2. Kurumsal Çözümler İçin Esnek Mimari: Şirketler, mevcut altyapı, eski sistemler veya özel imzalama çözümleriyle uyumlu kendi imza hizmetlerini yazarak GroupDocs.Signature ile uyumluluğu koruyabilir.
  3. Gelişmiş Güvenlik Uyumluluğu: Hash üretimini imzalama işleminden ayırarak kriptografik operasyonlar üzerindeki kontrol artar; bu da eIDAS, ESIGN Act ve sektöre özgü standartlar gibi katı düzenlemeleri karşılamaya yardımcı olur.
  4. Bulut Tabanlı Anahtar Yönetimi Desteği: Azure Key Vault entegrasyonu, sertifikaların Microsoft’un sertifikalı güvenli altyapısında saklanmasını ve yönetilmesini sağlar; yerel makinelerde depolama ihtiyacını ortadan kaldırır.
  5. İmza Süreci Özelleştirme: Standart dijital imza uygulamalarının ötesinde, çok taraflı onay akışları, özel doğrulama kuralları ve benzeri senaryoları hayata geçirebilirsiniz.

Adım 1. C# PDF Dijital İmza Ortamının Yapılandırılması

Dosya yollarını tanımlayıp Signature nesnesini başlatalım. Aşağıdaki örnek, kaynak PDF ve imzalı çıktının konumlarını gösterir.

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

📌Açıklama:

Bu adım, imzalamak istediğiniz PDF dosyasını yükleyen yeni bir Signature örneği oluşturur ve .NET uygulamanızda güvenli PDF imzalamanın temelini atar.


Adım 2. Dijital İmza Seçeneklerini Yapılandırma

Şimdi dijital imza seçeneklerini ayarlayın. Sertifika bilgileri, görsel görünüm ve hash algoritması gibi ayarlar bu adımda belirlenir. Özel hash imzalama daha sonra eklenecek.

// 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  
};

📌Açıklama:

Görünüm, konum ve hash ayarları gibi temel dijital imza özelliklerini yapılandırarak elektronik belge imzalarınızın profesyonel standartlara uygun olmasını sağlarsınız.

Güvenlik notu: Üretim ortamında şifre gibi hassas değerleri kod içinde sabit tutmayın; bunun yerine dijital imza uyumluluğu gereksinimlerine uygun güvenli yapılandırma yöntemleri kullanın.


Adım 3. Özel Hash İmzalama Uygulaması

Şimdi özel hash imzalayıcınızı seçeneklere atayın. Bu imzalayıcı, ICustomSignHash arayüzünü uygular ve Azure Key Vault ya da başka bir dış imzalama cihazı ile hash’i imzalamak için kullanılır.

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

📌Açıklama:

Burada bir AzureSigner örneği oluşturulur. CustomSignHash metodu imzalama sürecinde çağrılır ve aynı zamanda Azure Key Vault’tan kamu sertifikasını alır.


Adım 4. Belgeyi İmzalama

Son olarak, Sign metodunu çağırarak özel hash imzalama uygulamanızla imzalı PDF’i oluşturun.

signature.Sign(sampleOutputFilePath, options);

📌Açıklama:

Bu metod, önceden yapılandırılmış seçenekleri (özel hash imzalayıcı dahil) kullanarak belgeye dijital imza ekler. Ortaya çıkan PDF, standart PDF okuyucularla ya da GroupDocs.Signature’ın doğrulama özellikleriyle doğrulanabilen kriptografik olarak güvenli bir imza içerir.


Adım 5. Azure Sertifika İmzalama Detaylı Uygulaması

Aşağıda Azure Key Vault kullanarak Azure sertifikasıyla imzalama yapan özel imzalayıcının tam implementasyonu yer almaktadır. Bu sınıf, Azure kimlik bilgilerini alır, kamu sertifikasını getirir ve belge hash’ini güvenli bir şekilde imzalar.

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);  
    }  
}

📌Açıklamalar:

  • Azure Kimlik Bilgileri:
    GetAzureSecretCredential metodu, tenant ID, client ID ve secret bilgilerinizi kullanarak bir kimlik bilgisi nesnesi oluşturur. Güvenlik notu: Bu kimlik bilgilerini (örneğin Azure Key Vault ya da güvenli bir yapılandırma deposu) güvenli bir şekilde saklayarak .NET PDF imzalama implementasyonunuzun bütünlüğünü koruyun.
  • Azure ile İmzalama:
    SignWithAzure metodu, Azure SDK’sının CryptographyClient’ını kullanarak Azure Key Vault’taki sertifika ile hash’i imzalar; bu, dijital imza uyumluluğu en iyi uygulamalarına uygun profesyonel bir sertifika yönetim yaklaşımıdır.
  • Kamu Sertifikası Alımı:
    GetPublicCertificateFromAzureStorage metodu, Azure Key Vault’a bağlanıp imza doğrulaması için gerekli olan kamu sertifikasını getirir; böylece elektronik belge imzalarınız uygun şekilde doğrulanabilir.

Adım 6. PDF Dijital İmzaları için Azure Key Vault Uygulama Adımları

Özel imza hizmetlerinizi Azure Key Vault ile bütünleştirmek için şu adımları izleyin:

  1. Azure Key Vault’u Kurun:
    • Azure Key Vault örneği oluşturun.
    • İmzalama sertifikanızı Key Vault’a yükleyin.
    • Uygulamanız için erişim politikalarını yapılandırın.
  2. Azure Kimlik Bilgilerini Yapılandırın:
    • Azure Active Directory’da uygulamanızı kaydedin.
    • Tenant ID, client ID ve client secret değerlerinizi alın.
    • Key Vault’a erişim için bir ClientSecretCredential oluşturun.
  3. Sertifikayı Alın:
    • CertificateClient kullanarak Azure Key Vault’tan kamu anahtarı içeren sertifikayı çekin.
    • Bu sertifika, dijital imzayı doğrulamak için kullanılacaktır.
  4. Özel İmzalama Uygulayın:
    • Azure SDK’nın CryptographyClient’ını kullanarak belgenin hash’ini imzalayın.
    • Uygun imza algoritmasını (ör. RS256) belirtin.

📌Açıklama:

Bu adımlar, imzalama sürecinizin güvenli olmasını ve hassas anahtarların bulutta korunmasını sağlarken, aynı zamanda özel imza hizmetlerinizi ihtiyaçlarınıza göre uyarlama esnekliği sunar.


🧩 Özel İmzalama Uygulamanızı Genişletme

GroupDocs.Signature’ın özel hash imzalama yaklaşımının en güzel yanı, neredeyse her dış imzalama cihazı ya da hizmetiyle çalışacak şekilde uyarlanabilmesidir. İşte bazı genişletme örnekleri:

  1. Donanım Güvenlik Modülleri (HSM): En yüksek güvenlik için fiziksel HSM’lerle iletişim kuran bir imzalayıcı geliştirin.
  2. Akıllı Kart Entegrasyonu: Kurumsal ortamlarda fiziksel kimlik doğrulama gerektiren akıllı kart okuyucularıyla çalışan bir imzalayıcı oluşturun.
  3. Biyometrik Doğrulama: İmza oluşturulmadan önce parmak izi ya da yüz tanıma gibi biyometrik doğrulama gerektiren bir hizmet tasarlayın.
  4. Çok Taraflı Onay: Nihai imza uygulanmadan önce birden fazla tarafın onay vermesi gereken bir iş akışı geliştirin.
  5. Bulut Servis Sağlayıcıları: Örneği AWS KMS, Google Cloud KMS gibi diğer bulut anahtar yönetim hizmetleriyle uyumlu hâle getirin.

ICustomSignHash arayüzü üzerinden kendi imza hizmetlerinizi yazarak kriptografik işlemleriniz üzerinde tam kontrol sahibi olurken, GroupDocs.Signature for .NET’in güçlü belge işleme yeteneklerinden faydalanabilirsiniz.


✨ Elektronik Belge İmzaları Üzerine Son Düşünceler

Bu rehber, GroupDocs.Signature ile Azure Key Vault’u birleştirerek PDF dosyaları için uyumlu elektronik belge imzaları oluşturmanın güvenli bir yolunu gösterdi. Bu yöntemle oluşturulan imzalar, kimlik ve bütünlük açısından sektör standartlarını karşılar. Adım adım yaklaşımı ve güvenlik en iyi uygulamalarını (güvenli kimlik bilgisi yönetimi gibi) izleyerek, .NET uygulamanızda tüm belge iş akışınızı kapsayan sağlam bir dijital imzalama çözümü geliştirebilirsiniz.

Daha fazla detay ve ileri senaryolar için resmi dokümantasyona göz atın.


Ücretsiz Deneme Alın

GroupDocs.Signature API’lerini sadece en son sürümü sürüm indirme web sitemiz üzerinden indirip kurarak ücretsiz deneyebilirsiniz.

Ayrıca, kütüphanenin tüm işlevlerini sınırlama olmadan test edebileceğiniz geçici bir lisans da alabilirsiniz. Geçici lisans başvurusu için geçici lisans sayfasına gidin.

🔗 İlgili Bağlantılar

Daha fazla bilgi ve ek kaynaklar için aşağıdaki bağlantılar faydalı olabilir: