소개

PDF 파일은 다양한 산업에서 필수적이며, 디지털 서명을 통해 그 진위성과 무결성을 보장하는 것은 중요한 보안 조치입니다. 디지털 서명은 법적 유효성을 제공하고 문서가 변조되지 않도록 보호합니다. 이 포괄적인 가이드는 Azure Key Vault 및 GroupDocs.Signature for .NET을 사용하여 .NET PDF 서명 서비스를 구현하는 방법을 단계별로 안내합니다.

전자 문서 서명은 종이 없는 워크플로우로 전환하는 기업에 있어 점점 더 중요해지고 있습니다. GroupDocs.Signature for .NET은 다양한 규제 프레임워크의 디지털 서명 준수 요구 사항을 충족하는 강력한 C# PDF 디지털 서명 솔루션을 제공합니다. .NET 애플리케이션에서 PDF 서명에 처음 도전하거나 기존 구현을 향상시키려는 경우, 이 튜토리얼은 필요한 모든 내용을 다룹니다.

Azure Key Vault는 암호화 키와 인증서를 안전하게 저장하고 관리할 수 있는 클라우드 기반 키 관리 서비스입니다. GroupDocs.Signature for .NET은 개발자가 프로그래밍 방식으로 PDF 파일에 디지털 서명을 적용할 수 있는 강력한, 안전한 PDF 서명 API입니다. 이러한 기술을 통합하여 강력한 PDF 디지털 서명 서비스를 구축할 수 있습니다.

이 가이드에서 탐구할 가장 강력한 기능 중 하나는 사용자 지정 해시 서명입니다. 이 접근 방식은 서명 워크플로우에 대한 예외적인 유연성을 제공합니다. 이를 통해 하드웨어 보안 모듈(HSM), 스마트 카드 또는 기타 암호화 장치와 같은 외부 서명 장치를 애플리케이션에 연결할 수 있습니다. 사용자 지정 해시 서명을 통해 개발자는 고유한 서명 서비스를 작성하여 기존 인프라, 레거시 시스템 또는 특수 보안 하드웨어와 인터페이스를 설정할 수 있습니다. 이는 특정 보안 요구 사항이 있거나 암호화 인프라에 대한 기존 투자가 있는 조직에 이상적인 솔루션입니다.

🔐 Azure 키 자격 증명서 생성

Azure Key Vault를 설정하고 인증서를 생성하는 것으로 시작하겠습니다.

단계 1: 키 자격 증명서 프로비저닝

Azure 포털을 사용하여 새로운 Azure Key Vault 리소스를 만드세요. 자세한 지침은 이 빠른 시작 가이드를 참조하세요.

💡 활성화된 Azure 구독이 없는 경우 1개월 무료 체험판에 가입하여 시작할 수 있습니다.

단계 2: 인증서 생성 또는 가져오기

키 자격 증명서가 실행되면 대시보드로 이동하여 인증서 탭을 선택하고 생성/가져오기를 클릭하여 인증서를 추가합니다.

PDF 서명에 대한 디지털 서명 인증서 생성을 위한 Azure Key Vault 인터페이스

단계 3: 인증서 생성 방법 필드에서 생성을 선택하여 자동으로 새 인증서를 만듭니다. 이 예제에서는 자체 서명 인증서를 인증서 권한으로 선택합니다.

Azure Key Vault을 사용하여 GroupDocs .NET PDF 디지털 서명 프로세스의 완전한 워크플로우 다이어그램

참고: 기존 인증서를 사용하려면 가져오기를 선택하여 로컬 장치에서 가져올 수 있습니다.

GroupDocs.Signature를 사용하여 사용자 지정 해시 서명 구현의 C# 코드 예제

단계 4: 고급 정책 구성으로 이동하여 개인 키 내보내기 옵션을 아니오로 설정합니다.

Azure 인증서 서명 프로세스 다이어그램으로 구성 요소 간의 데이터 흐름을 보여줌

단계 5: 마지막으로 생성을 클릭하면 인증서가 키 자격 증명서에 추가됩니다.

인증서의 세부 정보를 보려면 인증서를 클릭하여 속성을 엽니다.

.NET 애플리케이션에서 PDF 서명 검증 예제를 보여줌

⚙️ Azure Key Vault에 대한 애플리케이션 등록

Azure Key Vault에 액세스할 수 있도록 Web API를 등록해야 합니다.

단계 1: Azure Active Directory로 이동하여 앱 등록을 선택하고 새 등록을 클릭합니다.

Azure Key Vault 및 GroupDocs 간의 전자 문서 서명 통합

단계 2: 애플리케이션 이름을 입력하고 등록합니다.

보안 설정과 함께 PDF 서명 API 구성 화면

등록 후 클라이언트 ID테넌트 ID를 복사하여 애플리케이션에서 사용합니다.

디지털 서명 권한을 위한 Azure Key Vault 액세스 정책 설정 인터페이스

단계 3: 사이드 메뉴에서 API 권한을 선택하고 권한 추가를 클릭합니다. Azure Key Vault를 선택하고 전체 액세스를 선택한 다음 권한 추가를 클릭하여 프로세스를 완료합니다.

.NET PDF 서명 출력 예제를 보여줌

단계 4: 인증서 및 비밀을 선택하고 새 클라이언트 비밀을 클릭하여 새 비밀 키를 만듭니다. 이 키를 .NET 애플리케이션에서 액세스할 수 있도록 복사합니다.

GroupDocs 사용자 지정 해시 구현을 위한 외부 서명 장치 통합 다이어그램

🔐 Azure Key Vault에 액세스 정책 할당

이전 단계에서 애플리케이션을 생성하고 등록했습니다. 이제 새로 등록된 애플리케이션이 Azure Key Vault에 액세스할 수 있도록 권한을 부여해야 합니다.

단계 1: Azure Key Vault로 이동하여 액세스 정책을 선택하고 생성을 클릭합니다.

규제 요구 사항을 위한 디지털 서명 준수 설정 구성

단계 2: 필요한 권한을 선택하고 다음을 클릭합니다.

PDF 서명 서비스에 대한 Azure Active Directory 애플리케이션 등록

단계 3: 이 창에서 이전에 등록한 애플리케이션 GroupDocs.Signature.Service를 선택하고 생성을 클릭합니다.

구성 요소 관계를 보여주는 사용자 지정 서명 서비스 아키텍처 다이어그램
시각적 서명 사용자 지정을 위한 GroupDocs Signature 외관 설정 패널

애플리케이션이 액세스 정책 섹션에 표시됩니다.

검증 워크플로우 단계를 보여주는 PDF 디지털 서명 검증 프로세스

📑 Azure Key Vault을 사용하여 GroupDocs.Signature for .NET PDF 서명

이 포괄적인 가이드는 Azure Key Vault을 활용한 사용자 지정 해시 서명을 사용하여 GroupDocs.Signature API를 통해 .NET에서 PDF 문서를 서명하는 방법을 설명합니다. C# 환경 설정부터 디지털 서명 준수 요구 사항을 충족하는 사용자 지정 해시 서명자를 구현하는 과정을 단계별로 설명합니다.

사용자 지정 해시 구현을 통한 안전한 PDF 서명 개요

사용자 지정 해시 서명 접근 방식은 .NET 애플리케이션에서 전자 문서 서명을 구현하는 데 예외적인 유연성을 제공합니다. 다음을 다룹니다:

  • GroupDocs.Signature를 사용하여 PDF 디지털 서명에 .NET 애플리케이션을 설정합니다.
  • 적절한 인증서 관리와 함께 전문 디지털 서명 옵션을 구성합니다.
  • 최대 유연성을 위한 사용자 지정 해시 서명 메커니즘을 구현합니다.
  • Azure Key Vault를 사용하여 공용 인증서를 안전하게 검색하고 문서를 서명합니다.
  • 구현 전체에서 보안 모범 사례를 따릅니다.

추가 배경 정보는 GroupDocs.Signature 문서에서 확인할 수 있습니다.

.NET PDF 애플리케이션에 대한 사용자 지정 해시 서명의 이점

구현에 들어가기 전에 사용자 지정 해시 서명이 디지털 서명 기술에서 중요한 발전임을 이해하는 것이 중요합니다:

  1. 외부 서명 장치와의 통합: 사용자 지정 해시 서명은 하드웨어 보안 모듈(HSM), 스마트 카드, 생체 인식 장치 및 기타 특수 암호화 하드웨어와 원활하게 연결할 수 있습니다.
  2. 기업 솔루션을 위한 유연한 아키텍처: 조직은 기존 인프라, 레거시 시스템 또는 고유한 서명 솔루션과 인터페이스를 설정할 수 있는 고유한 서명 서비스를 작성할 수 있습니다.
  3. 향상된 보안 준수: 해시 생성과 실제 서명 프로세스를 분리하여 암호화 작업을 더 잘 제어하여 eIDAS, ESIGN Act 및 산업별 준수 표준과 같은 엄격한 규제 요구 사항을 충족할 수 있습니다.
  4. 클라우드 기반 키 관리 지원: Azure Key Vault를 통합하여 인증서를 Microsoft의 인증된 안전한 인프라에서 안전하게 저장하고 관리할 수 있습니다.
  5. 서명 프로세스 사용자 지정: 표준 디지털 서명 구현을 넘어서는 사용자 지정 승인 워크플로우, 다중 당사자 서명 순서 또는 특수 검증 규칙을 구현할 수 있습니다.

단계 1. C# PDF 디지털 서명 환경 구성

C# 애플리케이션에서 파일 경로를 정의하고 GroupDocs.Signature 객체를 초기화합니다. 이 예제에서는 서명할 PDF 파일과 서명된 문서의 출력 위치를 지정합니다.

public static void SignDocument()
{
    // 소스 및 출력 문서 경로 정의
    string sampleFilePath = "sample.pdf";
    string sampleOutputFilePath = "signed.pdf";

    using (Signature signature = new Signature(sampleFilePath))
    {
        // 코드는 다음 단계에서 계속됩니다...
    }
}

📌주석:

이 단계는 서명할 PDF 문서를 로드하여 .NET 애플리케이션에서 안전한 PDF 서명의 기초를 마련합니다.


단계 2. 디지털 서명 옵션 구성

다음으로 디지털 서명 옵션을 설정합니다. 이러한 옵션에는 인증서 세부 정보, 시각적 외관 및 해시 알고리즘이 포함됩니다. 사용자 지정 해시 서명은 나중에 연결됩니다.

// 디지털 서명 옵션 초기화
DigitalSignOptions options = new DigitalSignOptions()
{
    Signature = new DigitalSignature(),
    Password = "1234567890",      // 인증서 암호
    Reason = "Sign",              // 서명 이유
    Contact = "JohnSmith",        // 연락처 정보
    Location = "Office1",         // 서명 위치
    AllPages = true,              // 모든 페이지에 서명 적용
    Width = 80,
    Height = 60,
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Margin = new Padding() { Bottom = 10, Right = 10 },
    HashAlgorithm = HashAlgorithm.Sha256 // 해싱에 SHA-256 지정
};

📌주석:

기본 디지털 서명 속성(외관, 위치 및 해싱)을 구성하여 전자 문서 서명이 전문 기준을 충족하도록 합니다.

보안 참고: 프로덕션에서는 민감한 값을 하드 코딩하지 말고 디지털 서명 준수 요구 사항을 충족하는 안전한 구성 방법을 사용하세요.


단계 3. 사용자 지정 해시 서명 구현

이제 옵션에 사용자 지정 해시 서명자를 할당합니다. 이 사용자 지정 서명자는 ICustomSignHash 인터페이스를 구현하며 Azure Key Vault 또는 통합하려는 기타 외부 서명 장치와 함께 해시를 서명하는 데 사용됩니다.

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

📌주석:

AzureSigner 인스턴스를 생성합니다. 서명 프로세스 중에 CustomSignHash 메서드가 호출되고 Azure Key Vault에서 공용 인증서를 검색합니다.


단계 4. 문서 서명

마지막으로 Sign 메서드를 호출하여 사용자 지정 해시 서명 구현을 사용하여 서명된 PDF 문서를 생성합니다.

signature.Sign(sampleOutputFilePath, options);

📌주석:

이 메서드는 이전에 구성한 옵션(사용자 지정 해시 서명자 포함)을 사용하여 문서에 디지털 서명을 적용합니다. 결과 PDF에는 표준 PDF 리더 또는 GroupDocs.Signature의 검증 기능을 사용하여 검증할 수 있는 암호화적으로 안전한 서명이 포함됩니다.


단계 5. Azure 인증서 서명 구현 세부 정보

다음은 Azure Key Vault를 사용하여 Azure 인증서 서명을 구현하는 완전한 구현입니다. 이 클래스는 Azure 인증서 서명 모범 사례를 보여주며 Azure 자격 증명을 검색하고 공용 인증서를 검색하고 문서 해시를 안전하게 서명합니다.

public class AzureSigner : ICustomSignHash
{
    public byte[] CustomSignHash(byte[] hash, HashAlgorithm hashAlgorithm,
     SignatureContext signatureContext)
    {
        // 서명 작업을 Azure에 위임
        return SignWithAzure(hash);
    }

    private static byte[] SignWithAzure(byte[] signableHash)
    {
        // Azure 자격 증명 검색
        var credential = GetAzureSecretCredential();

        // 키 자격 증명서 인증서 키 식별자 지정
        var certificateKeyId =
        "https://groupdocskeyvault.vault.azure.net/keys/GroupDocsSignatureCertificate/>";
        CryptographyClient client =
            new CryptographyClient(new Uri(certificateKeyId), credential);

        // RS256을 사용하여 해시 서명
        var result = client.Sign(SignatureAlgorithm.RS256, signableHash);
        return result.Signature;
    }

    static ClientSecretCredential GetAzureSecretCredential()
    {
        // Azure AD 테넌트, 클라이언트 및 비밀 세부 정보 제공
        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()
    {
        // 키 자격 증명서 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)
    {
        // 키 자격 증명서에 대한 인증서 클라이언트 생성
        CertificateClient certificateClient =
            new CertificateClient(new Uri(uri), credential);

        // 공용 키가 포함된 인증서 검색
        KeyVaultCertificateWithPolicy certificate =
        certificateClient.GetCertificateAsync("GroupDocsSignatureCertificate").Result;
        return new X509Certificate2(certificate.Cer);
    }
}

📌주석:

  • Azure 자격 증명: GetAzureSecretCredential 메서드는 테넌트 ID, 클라이언트 ID 및 비밀을 사용하여 자격 증명을 만듭니다. 보안 참고: 이러한 자격 증명을 안전하게 저장(예: Azure Key Vault 또는 안전한 구성 저장소 사용)하여 .NET PDF 서명 구현의 무결성을 유지합니다.
  • Azure와 서명: SignWithAzure 메서드는 Azure SDK의 CryptographyClient를 사용하여 Azure Key Vault에 저장된 인증서로 해시를 서명하여 디지털 서명 준수 모범 사례를 따르는 전문적인 인증서 관리 접근 방식을 보여줍니다.
  • 공용 인증서 검색: 이 메서드는 Azure Key Vault에 연결하고 서명 검증을 위해 필요한 인증서를 검색하여 전자 문서 서명이 적절하게 검증될 수 있도록 합니다.

단계 6. PDF 디지털 서명에 대한 Azure Key Vault 구현 단계

사용자 지정 서명 서비스를 Azure Key Vault와 통합하려면 다음 단계를 따르세요:

  1. Azure Key Vault 설정:
    • Azure Key Vault 인스턴스를 만듭니다.
    • 서명 인증서를 Key Vault에 업로드합니다.
    • 애플리케이션에 대한 액세스 정책을 구성합니다.
  2. Azure 자격 증명 구성:
    • Azure Active Directory에서 애플리케이션을 등록합니다.
    • 테넌트 ID, 클라이언트 ID 및 클라이언트 비밀을 검색합니다.
    • Key Vault에 액세스하기 위한 ClientSecretCredential을 만듭니다.
  3. 인증서 검색:
    • CertificateClient을 사용하여 Azure Key Vault에서 공용 키가 포함된 인증서를 가져옵니다.
    • 이 인증서는 디지털 서명을 검증하는 데 사용됩니다.
  4. 사용자 지정 서명 구현:
    • Azure SDK의 CryptographyClient을 사용하여 문서 해시를 서명합니다.
    • 적절한 서명 알고리즘(예: RS256)을 지정합니다.

📌주석:

각 단계는 서명 프로세스가 안전하게 유지되도록 하며 민감한 키가 클라우드에 안전하게 보호되도록 합니다. 동시에 사용자 지정 요구 사항을 충족하는 고유한 서명 서비스를 구현할 수 있는 유연성을 제공합니다.


🧩 사용자 지정 서명 구현 확장

GroupDocs.Signature의 사용자 지정 해시 서명 접근 방식의 장점 중 하나는 거의 모든 외부 서명 장치 또는 서비스와 함께 작동할 수 있다는 것입니다. 다음은 이 구현을 확장하는 몇 가지 예입니다:

  1. 하드웨어 보안 모듈(HSM): 물리적 HSM과 통신하는 사용자 지정 서명자를 구현하여 최대 보안을 제공합니다.
  2. 스마트 카드 통합: 스마트 카드 리더와 인터페이스를 설정하여 물리적 인증을 요구하는 기업 환경에 적합합니다.
  3. 생체 인식 인증: 서명 생성을 승인하기 전에 지문 또는 얼굴 인식과 같은 생체 인식이 필요하도록 서명 서비스를 구축합니다.
  4. 다중 당사자 승인: 최종 서명이 적용되기 전에 여러 당사자가 승인해야 하는 사용자 지정 서명 워크플로우를 구현합니다.
  5. 클라우드 서비스 제공업체: 예제를 AWS KMS, Google Cloud KMS 또는 기타 클라우드 키 관리 서비스와 함께 작동하도록 조정합니다.

ICustomSignHash 인터페이스를 통해 고유한 서명 서비스를 구현함으로써 암호화 작업을 완전히 제어하면서 GroupDocs.Signature for .NET의 강력한 문서 처리 기능을 활용할 수 있습니다.


✨ 전자 문서 서명에 대한 최종 생각

이 가이드는 Azure Key Vault를 사용하여 .NET 애플리케이션에서 PDF 파일에 대해 준수하는 전자 문서 서명을 생성하는 방법을 안내했습니다. 이 방법으로 생성된 전자 문서 서명은 법적 유효성과 무결성을 충족합니다. 이 단계별 접근 방식을 따르고 보안 모범 사례(예: 안전한 자격 증명 처리)를 준수하면 .NET 애플리케이션에서 강력한 디지털 서명 솔루션을 구현할 수 있습니다. 문서 워크플로우 전체에서 작동합니다.

추가 세부 정보 및 고급 시나리오는 공식 문서를 참조하세요.


무료 체험

릴리스 다운로드 웹사이트에서 최신 버전을 다운로드하고 설치하여 GroupDocs.Signature API를 무료로 사용할 수 있습니다.

제한 없이 모든 라이브러리 기능을 테스트할 수 있는 임시 라이선스를 얻을 수도 있습니다. 임시 라이선스 페이지로 이동하여 임시 라이선스를 신청하세요.

🔗 참고

추가 정보 및 리소스를 찾으려면 다음 링크가 유용할 수 있습니다: