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.
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.
Not: Mevcut bir sertifikanız varsa, Import seçeneğiyle yerel cihazınızdan yükleyebilirsiniz.
Adım 4: Advanced Policy Configuration bölümüne gidin ve Private Key Export seçeneğini No olarak ayarlayın.
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.
⚙️ 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 Directory → App registrations → New registration yolunu izleyin.
Adım 2: Uygulama adınızı girin ve kaydedin.
Kayıt sonrası Client ID ve Tenant ID değerlerini kopyalayarak uygulamanızda kullanın.
Adım 3: Yan menüden API Permissions seçin, Add Permission → Azure Key Vault → Full Access adımlarını izleyip Add Permissions ile tamamlayın.
Adım 4: Certificates & secrets sekmesinden New client secret oluşturun. Oluşturulan anahtarı kopyalayarak .NET uygulamanızda kullanın.
🔐 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.
Adım 2: Gerekli izinleri seçip Next butonuna tıklayın.
Adım 3: Açılan pencereden daha önce kaydettiğimiz GroupDocs.Signature.Service uygulamasını seçin ve Create ile onaylayın.
Uygulama artık Access Policies bölümünde görünecek.
📑 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ı:
- 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.
- 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.
- 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.
- 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.
- İ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:
GetAzureSecretCredentialmetodu, 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:
SignWithAzuremetodu, Azure SDK’sınınCryptographyClient’ı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ı:
GetPublicCertificateFromAzureStoragemetodu, 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:
- 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.
- 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
ClientSecretCredentialoluşturun.
- Sertifikayı Alın:
CertificateClientkullanarak Azure Key Vault’tan kamu anahtarı içeren sertifikayı çekin.- Bu sertifika, dijital imzayı doğrulamak için kullanılacaktır.
- Özel İmzalama Uygulayın:
- Azure SDK’nın
CryptographyClient’ını kullanarak belgenin hash’ini imzalayın. - Uygun imza algoritmasını (ör. RS256) belirtin.
- Azure SDK’nın
📌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:
- 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.
- Akıllı Kart Entegrasyonu: Kurumsal ortamlarda fiziksel kimlik doğrulama gerektiren akıllı kart okuyucularıyla çalışan bir imzalayıcı oluşturun.
- Biyometrik Doğrulama: İmza oluşturulmadan önce parmak izi ya da yüz tanıma gibi biyometrik doğrulama gerektiren bir hizmet tasarlayın.
- Çok Taraflı Onay: Nihai imza uygulanmadan önce birden fazla tarafın onay vermesi gereken bir iş akışı geliştirin.
- 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: