Introdução

Os arquivos PDF são essenciais em diversos setores, e garantir sua autenticidade e integridade por meio de assinaturas digitais é uma medida de segurança crítica. As assinaturas digitais fornecem validade legal e protegem os documentos contra adulteração. Este guia abrangente orienta você na implementação de assinatura de PDF em .NET, criando um serviço seguro de assinatura digital de PDF usando Azure Key Vault e GroupDocs.Signature for .NET.

As assinaturas eletrônicas de documentos tornaram‑se cada vez mais importantes para empresas que estão migrando para fluxos de trabalho sem papel. GroupDocs.Signature for .NET oferece uma solução poderosa em C# para assinatura digital de PDF que atende aos requisitos de conformidade de assinatura digital em várias estruturas regulatórias. Seja você iniciante em assinatura de PDF em aplicações .NET ou esteja buscando aprimorar sua implementação existente, este tutorial cobre tudo o que você precisa saber.

Azure Key Vault é um serviço de gerenciamento de chaves baseado em nuvem que permite o armazenamento seguro e a gestão de chaves criptográficas e certificados. GroupDocs.Signature for .NET é uma API poderosa e segura de assinatura de PDF que permite aos desenvolvedores aplicar assinaturas digitais a arquivos PDF programaticamente. Ao integrar essas tecnologias, você pode construir um serviço robusto e eficiente de assinatura digital de PDF.

Um dos recursos mais poderosos que exploraremos é a assinatura de hash personalizada, que oferece flexibilidade excepcional para seu fluxo de trabalho de assinatura. Essa abordagem permite conectar dispositivos de assinatura externos, como módulos de segurança de hardware (HSMs), cartões inteligentes ou quaisquer outros dispositivos criptográficos à sua aplicação. Com a assinatura de hash personalizada, os desenvolvedores podem escrever seus próprios serviços de assinatura que se integram a sistemas proprietários, infraestruturas legadas ou hardware de segurança especializado, mantendo compatibilidade com o framework GroupDocs.Signature. Isso a torna uma solução ideal para organizações com requisitos de segurança específicos ou investimento existente em infraestrutura criptográfica.

🔐 Crie um Azure Key Vault e um certificado

Vamos começar configurando um Azure Key Vault e gerando um certificado.

Passo 1: Provisionar o Key Vault

Crie um novo recurso Azure Key Vault usando o Azure portal. Para instruções detalhadas, consulte este quick‑start guide.

💡Se você não possui uma assinatura ativa do Azure, pode se inscrever para um teste gratuito de 1 mês para começar.

Passo 2: Gere ou importe seu certificado

Depois que seu Key Vault estiver ativo, navegue até o painel, selecione a aba Certificates e clique em Generate/Import para adicionar seu certificado.

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

Passo 3: No campo Method of Certificate Creation, selecione Generate para criar automaticamente um novo certificado. Neste exemplo, optamos por um Self‑signed certificate como tipo de autoridade certificadora.

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

Observação: Se preferir usar um certificado existente, selecione Import para carregá‑lo a partir do seu dispositivo local.

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

Passo 4: Em seguida, vá para Advanced Policy Configuration e defina a opção Private Key Export como No.

Azure certificate signing process diagram showing the data flow between components

Passo 5: Por fim, clique em Create. O certificado será adicionado ao seu Key Vault.

Para visualizar os detalhes, basta clicar no certificado para abrir suas propriedades.

PDF signature validation example in .NET application showing verification results

⚙️ Registre a aplicação para habilitar o acesso ao Azure Key Vault

Para permitir que a Web API acesse o Azure Key Vault, você precisa registrá‑la no Azure Active Directory:

Passo 1: Navegue até Azure Active Directory, escolha App registrations e clique em New registration.

Electronic document signatures integration between Azure Key Vault and GroupDocs

Passo 2: Insira o nome da sua aplicação e registre‑a.

Secure PDF signing API configuration screen with security settings

Após o registro, você receberá detalhes importantes—copie o Client ID e o Tenant ID para usar na sua aplicação.

Azure Key Vault access policy setup interface for digital signature permissions

Passo 3: Em seguida, selecione API Permissions no menu lateral e clique em Add Permission. Escolha Azure Key Vault, selecione Full Access e finalize o processo clicando em Add Permissions.

.NET PDF signing output example showing a successfully signed document

Passo 4: Selecione Certificate & secrets e clique em New client secret para criar uma nova chave secreta. Copie essa chave para acessá‑la a partir da sua aplicação .NET.

External signing device integration diagram for GroupDocs custom hash implementation

🔐 Atribua a política de acesso ao Azure Key Vault

Nos passos anteriores, criamos e registramos a aplicação. Agora, precisamos conceder à aplicação recém‑registrada acesso ao Azure Key Vault:

Passo 1: Navegue até o Azure Key Vault, selecione Access Policies e clique em Create.

Digital signature compliance settings configuration for regulatory requirements

Passo 2: Selecione as permissões necessárias e clique em Next.

Azure Active Directory application registration for PDF signing services

Passo 3: Nesta janela, escolha a aplicação que registramos anteriormente, GroupDocs.Signature.Service, e clique em Create.

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

A aplicação aparecerá agora na seção Access Policies.

PDF digital signature verification process showing validation workflow steps

📑 Como usar Azure Key Vault com GroupDocs.Signature for .NET PDF Signing

Este guia abrangente explica como assinar documentos PDF usando a API GroupDocs.Signature em .NET com assinatura de hash personalizada que aproveita o Azure Key Vault. Dividiremos o processo em etapas claras—desde a configuração do seu ambiente C# até a implementação de um assinador de hash personalizado que atende aos requisitos de conformidade de assinatura digital.

Visão geral da assinatura segura de PDF com implementação de hash personalizada

A abordagem de assinatura de hash personalizada oferece flexibilidade excepcional para implementar assinaturas eletrônicas de documentos em suas aplicações .NET. Veja o que será abordado:

  • Configurar sua aplicação .NET para trabalhar com GroupDocs.Signature for PDF digital signatures
  • Configurar opções profissionais de assinatura digital com gerenciamento adequado de certificados
  • Implementar um mecanismo de assinatura de hash personalizado para máxima flexibilidade
  • Integrar Azure Key Vault para recuperar com segurança o certificado público e assinar o documento
  • Seguir as melhores práticas de segurança ao longo da implementação

Para informações adicionais, consulte a documentação do GroupDocs.Signature sobre assinatura digital com hash personalizado.

🚀 Benefícios da assinatura de hash personalizada para aplicações .NET PDF

Antes de mergulhar na implementação, é importante entender por que a assinatura de hash personalizada representa um avanço significativo na tecnologia de assinatura digital:

  1. Integração com dispositivos de assinatura externos: A assinatura de hash personalizada permite conexão fluida com módulos de segurança de hardware (HSMs), cartões inteligentes, dispositivos biométricos e outros hardwares criptográficos que sua organização já utiliza.
  2. Arquitetura flexível para soluções corporativas: As organizações podem escrever seus próprios serviços de assinatura que se integram à infraestrutura existente, sistemas legados ou soluções proprietárias, mantendo compatibilidade com GroupDocs.Signature.
  3. Conformidade de segurança aprimorada: Ao separar a geração do hash do processo real de assinatura, você mantém maior controle sobre as operações criptográficas, ajudando a atender requisitos regulatórios rigorosos como eIDAS, ESIGN Act e normas setoriais específicas.
  4. Suporte a gerenciamento de chaves baseado em nuvem: A integração com Azure Key Vault permite que os certificados sejam armazenados e gerenciados de forma segura na infraestrutura certificada da Microsoft, em vez de máquinas locais.
  5. Personalização do processo de assinatura: Implemente fluxos de aprovação personalizados, sequências de assinatura multipartes ou regras de validação especializadas que vão além das implementações padrão de assinatura digital.

Passo 1. Configurando o ambiente C# de assinatura digital de PDF

Comece definindo os caminhos dos arquivos e inicializando o objeto GroupDocs.Signature na sua aplicação C#. Neste exemplo, especificamos o PDF de origem e o local de saída para o documento assinado.

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:

Esta etapa cria uma nova instância Signature que carrega o documento PDF que você deseja assinar, estabelecendo a base para assinatura segura de PDF na sua aplicação .NET.


Passo 2. Configurando as opções de assinatura digital

Em seguida, configure as opções de assinatura digital. Essas opções incluem detalhes do certificado, aparência visual e algoritmo de hash. A assinatura de hash personalizada será inserida posteriormente.

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

Configure propriedades básicas da assinatura digital, como aparência, posicionamento e algoritmo de hash, para garantir que suas assinaturas eletrônicas de documentos atendam a padrões profissionais.

Nota de segurança: Em produção, evite codificar valores sensíveis (como senhas); em vez disso, use métodos de configuração seguros compatíveis com os requisitos de conformidade de assinatura digital.


Passo 3. Implementando a assinatura de hash personalizada

Agora, atribua seu assinador de hash personalizado às opções. Esse assinador personalizado implementa a interface ICustomSignHash e será usado para assinar o hash com Azure Key Vault ou qualquer outro dispositivo de assinatura externo que você deseje integrar.

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

📌Annotation:

Aqui, uma instância de AzureSigner é criada. Seu método CustomSignHash será invocado durante o processo de assinatura, e ele também recupera o certificado público do Azure Key Vault.


Passo 4. Assinando o documento

Por fim, chame o método Sign para gerar o PDF assinado usando sua implementação de assinatura de hash personalizada.

signature.Sign(sampleOutputFilePath, options);

📌Annotation:

Este método aplica sua assinatura digital ao documento usando as opções configuradas anteriormente, incluindo seu assinador de hash personalizado. O PDF resultante conterá uma assinatura criptograficamente segura que pode ser validada por leitores de PDF padrão ou programaticamente com os recursos de validação do GroupDocs.Signature.


Passo 5. Implementação detalhada da assinatura de certificado Azure

A seguir, a implementação completa do assinador personalizado usando Azure Key Vault para assinatura de certificado Azure. Esta classe demonstra boas práticas profissionais ao recuperar credenciais Azure, obter o certificado público e assinar o hash do documento de forma segura.

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:
    O método GetAzureSecretCredential cria uma credencial usando seu ID de locatário, ID de cliente e segredo. Nota de segurança: garanta que essas credenciais sejam armazenadas de forma segura (por exemplo, usando Azure Key Vault ou um repositório de configuração seguro) para manter a integridade da sua implementação de assinatura de PDF em .NET.
  • Signing with Azure:
    O método SignWithAzure utiliza o CryptographyClient do Azure SDK para assinar o hash com o certificado armazenado no Azure Key Vault, demonstrando uma abordagem profissional de gerenciamento de certificados que segue as melhores práticas de conformidade de assinatura digital.
  • Public Certificate Retrieval:
    O método GetPublicCertificateFromAzureStorage conecta‑se ao seu Azure Key Vault e recupera o certificado necessário para a verificação da assinatura, garantindo que suas assinaturas eletrônicas de documentos possam ser validadas adequadamente.

Passo 6. Etapas de implementação do Azure Key Vault para assinaturas digitais de PDF

Para integrar o Azure Key Vault aos seus serviços de assinatura personalizados, siga estas etapas:

  1. Configurar Azure Key Vault:
    • Crie uma instância do Azure Key Vault.
    • Carregue seu certificado de assinatura no Key Vault.
    • Configure políticas de acesso para sua aplicação.
  2. Configurar credenciais Azure:
    • Registre sua aplicação no Azure Active Directory.
    • Recupere seu tenant ID, client ID e client secret.
    • Crie um ClientSecretCredential para acessar o Key Vault.
  3. Recuperar o certificado:
    • Use o CertificateClient para obter o certificado contendo a chave pública do Azure Key Vault.
    • Esse certificado é usado para validar a assinatura digital.
  4. Implementar assinatura personalizada:
    • Use o CryptographyClient do Azure SDK para assinar o hash do documento.
    • Especifique o algoritmo de assinatura apropriado (por exemplo, RS256).

📌Annotation:

Cada uma dessas etapas é crucial para garantir que seu processo de assinatura seja seguro e que chaves sensíveis permaneçam protegidas na nuvem, ao mesmo tempo em que oferece flexibilidade para implementar seus próprios serviços de assinatura para requisitos especializados.


🧩 Expandindo sua implementação de assinatura personalizada

A beleza da abordagem de assinatura de hash personalizada do GroupDocs.Signature é que você pode adaptá‑la para funcionar com praticamente qualquer dispositivo ou serviço de assinatura externo. Aqui estão alguns exemplos de como você pode ampliar essa implementação:

  1. Módulos de Segurança de Hardware (HSMs): Implemente um assinador personalizado que se comunique com HSMs físicos para máxima segurança.
  2. Integração com Cartão Inteligente: Crie um assinador que interaja com leitores de cartões inteligentes para ambientes corporativos que exigem autenticação física.
  3. Autenticação Biométrica: Construa um serviço de assinatura que exija impressão digital ou reconhecimento facial antes de autorizar a criação da assinatura.
  4. Aprovação multipartes: Implemente um fluxo de assinatura personalizado onde várias partes precisam aprovar antes que a assinatura final seja aplicada.
  5. Provedores de serviços em nuvem: Adapte o exemplo para funcionar com AWS KMS, Google Cloud KMS ou outros serviços de gerenciamento de chaves em nuvem.

Ao implementar seus próprios serviços de assinatura por meio da interface ICustomSignHash, você mantém controle total sobre suas operações criptográficas enquanto aproveita as poderosas capacidades de manipulação de documentos do GroupDocs.Signature for .NET.


✨ Considerações finais sobre assinaturas eletrônicas de documentos

Este guia demonstrou como integrar GroupDocs.Signature com Azure Key Vault para criar assinaturas eletrônicas de documentos compatíveis para arquivos PDF de forma segura. As assinaturas eletrônicas criadas por esse método atendem aos padrões da indústria em termos de autenticidade e integridade. Ao seguir esta abordagem passo a passo e observar as melhores práticas de segurança (como o manuseio seguro de credenciais), você pode implementar uma solução robusta de assinatura digital na sua aplicação .NET que funciona em todo o seu fluxo de trabalho de documentos.

Para detalhes adicionais e cenários avançados, consulte a documentação oficial.


Get a Free Trial

You can try GroupDocs.Signature APIs for free by just downloading and installing the latest version on our release downloads website.

You can also get a temporary license to test all the library’s functionalities without any constraints. Head to the temporary license page to apply for a temporary license.

🔗 See Also

For more information and additional resources, you may find the following links useful: