---
title: "Lacuna CloudHub"
description: "Lacuna CloudHub conecta a sua aplicação a todos os provedores de certificado em nuvem da ICP-Brasil por uma única API REST: descobre os provedores que têm o certificado do signatário, intermedeia a autorização e assina hashes."
canonical: "https://docs.lacunasoftware.com/articles/cloudhub"
locale: "pt-BR"
product: "CloudHub"
last_updated: "2026-10-12"
---

# Lacuna CloudHub

O Lacuna CloudHub conecta a sua aplicação aos provedores de **certificado em nuvem** da ICP-Brasil
por meio de uma única API REST. Um certificado em nuvem guarda a chave privada no HSM do provedor; o
titular autoriza cada uso no aplicativo ou na página do próprio provedor, com PIN, notificação push
ou QR code. Com o CloudHub, a sua aplicação descobre quais provedores têm um certificado para um CPF
ou CNPJ, envia o usuário para autorizar e, depois, lê o certificado e assina hashes com ele.

Os provedores são os Prestadores de Serviço de Confiança (PSCs) credenciados pelo ITI, como BirdID,
SafeID e VIDaaS. No CloudHub e nesta documentação, eles são chamados de **provedores**.

## Por que usar o CloudHub

Cada provedor é um servidor de autorização OAuth 2.0, com endpoint próprio, cadastro de cliente
próprio e variações próprias em relação à especificação comum. Integrar provedor por provedor
significa ter um client ID e um client secret em cada um, cadastrar uma URI de redirecionamento em
cada um e escrever código para as particularidades de cada um.

O CloudHub mantém esses cadastros e absorve essas diferenças. A sua aplicação precisa de:

- **Uma chave de API**, enviada no header `X-Api-Key`.
- **Uma integração**: as mesmas chamadas, qualquer que seja o provedor escolhido pelo usuário.
- **Nenhuma mudança** quando a Lacuna adiciona um provedor: ele aparece na lista que o CloudHub
  devolve.

## O que o CloudHub faz e o que fica com você

O CloudHub faz três coisas: **descobre** os provedores que têm um certificado para o signatário,
intermedia a **autorização** no provedor e **assina um hash** com o certificado autorizado.

Ele não monta documentos assinados. A sua biblioteca de assinatura calcula o hash a assinar e, depois,
monta o PDF, o CMS ou o XML assinado. Qualquer produto de assinatura da Lacuna funciona com o
CloudHub: [PKI SDK](https://docs.lacunasoftware.com/articles/pki-sdk), [Rest PKI](https://docs.lacunasoftware.com/articles/rest-pki),
[Rest PKI Core](https://docs.lacunasoftware.com/articles/rest-pki/core) ou [PKI Express](https://docs.lacunasoftware.com/articles/pki-express). O CloudHub
nunca recebe o documento, só o hash dele, e a chave privada nunca sai do provedor.

O CloudHub também não valida o certificado. Valide-o com a sua biblioteca de assinatura, que faz isso
ao concluir a assinatura ou a autenticação.

## Provedores suportados

Os provedores disponíveis para a sua aplicação são os que o CloudHub devolve quando você cria uma
sessão; a lista abaixo é a que a página inicial do CloudHub mostra hoje.

| Provedor | Operado por |
|---|---|
| BirdID | SOLUTI |
| DSCloud | DigitalSign |
| NeoID | SERPRO |
| RemoteID | Certisign |
| SafeID | Safeweb |
| Syngular | Syngular |
| VIDaaS | VALID |

## Como uma assinatura acontece

![Como uma assinatura em nuvem passa pelo CloudHub](https://docs.lacunasoftware.com/images/cloudhub/cloudhub-signature-flow.pt-br.svg)

1. O seu backend cria uma **sessão** com o CPF do signatário e a URL para onde o CloudHub deve
   devolver o usuário. O CloudHub responde com uma URL de autorização para cada provedor que tem um
   certificado para esse CPF.
2. O usuário escolhe um provedor, é redirecionado para ele e autoriza. O provedor devolve o usuário
   ao CloudHub, e o CloudHub o devolve à sua aplicação com um parâmetro `session`.
3. O seu backend usa essa sessão para ler o certificado, pede à biblioteca de assinatura que calcule
   o hash a assinar, pede ao CloudHub que assine o hash e finaliza o documento assinado.

[Como funciona](https://docs.lacunasoftware.com/articles/cloudhub/how-it-works) detalha cada passo, os tipos de sessão e as regras para URIs de
redirecionamento.

## O que você precisa

- **Uma chave de API do CloudHub.** Peça uma ao suporte da Lacuna Software
  (suporte@lacunasoftware.com) e informe as URIs de redirecionamento que a sua aplicação vai usar;
  o CloudHub só devolve usuários a URIs cadastradas para a sua chave (veja
  [URIs de redirecionamento](https://docs.lacunasoftware.com/articles/cloudhub/how-it-works#uris-de-redirecionamento)).
- **Uma biblioteca de assinatura** para calcular o hash a assinar e finalizar a assinatura: PKI SDK,
  Rest PKI, Rest PKI Core ou PKI Express.
- **O endereço do CloudHub**: `https://cloudhub.lacunasoftware.com`.

Mantenha a chave de API no seu servidor. Ela autoriza todas as chamadas, inclusive a assinatura, e
por isso nunca deve chegar a um navegador ou a um aplicativo móvel.

## Bibliotecas cliente

| Linguagem | Pacote | Instalação |
|---|---|---|
| .NET | `Lacuna.Cloudhub.Client` (NuGet) | `dotnet add package Lacuna.Cloudhub.Client` |
| PHP | `lacuna/cloudhub-client` (Packagist) | `composer require lacuna/cloudhub-client` |
| Node.js | `cloudhub-client` (npm) | `npm install cloudhub-client` |
| Java | `com.lacunasoftware.cloudhub:cloudhub-client` (Maven Central) | `implementation 'com.lacunasoftware.cloudhub:cloudhub-client:1.0.5'` |
| Python | nenhuma é necessária | `pip install requests`; os exemplos chamam a API REST diretamente |

A API tem oito operações e um header, então qualquer cliente HTTP serve. A
[referência da API REST](https://docs.lacunasoftware.com/articles/cloudhub/rest-api) documenta o formato das mensagens.

## Exemplos

O repositório [PKI Suite Samples](https://github.com/LacunaSoftware/PkiSuiteSamples) tem aplicações
completas que assinam com o CloudHub:

| Linguagem | Exemplo |
|---|---|
| .NET (PKI SDK) | [PadesCloudHubSdkController.cs](https://github.com/LacunaSoftware/PkiSuiteSamples/blob/master/dotnet/mvc/PkiSuiteAspNetMvcSample/Controllers/PadesCloudHubSdkController.cs), [AuthenticationCloudHubSdkController.cs](https://github.com/LacunaSoftware/PkiSuiteSamples/blob/master/dotnet/mvc/PkiSuiteAspNetMvcSample/Controllers/AuthenticationCloudHubSdkController.cs) |
| PHP (Rest PKI) | [pades-signature-cloudhub-rest](https://github.com/LacunaSoftware/PkiSuiteSamples/tree/master/php/plain/public/pades-signature-cloudhub-rest), [xml-signature-cloudhub-rest](https://github.com/LacunaSoftware/PkiSuiteSamples/tree/master/php/plain/public/xml-signature-cloudhub-rest) |
| Node.js (Rest PKI) | [pades-signature-cloudhub-restpki.js](https://github.com/LacunaSoftware/PkiSuiteSamples/blob/master/nodejs/expressmvc/routes/pades-signature-cloudhub-restpki.js), [authentication-cloudhub.js](https://github.com/LacunaSoftware/PkiSuiteSamples/blob/master/nodejs/expressmvc/routes/authentication-cloudhub.js) |
| Java (Rest PKI) | [PadesSignatureCloudhubRestController.java](https://github.com/LacunaSoftware/PkiSuiteSamples/blob/master/java/springmvc/src/main/java/com/lacunasoftware/pkisuite/controller/PadesSignatureCloudhubRestController.java) |

## Nesta documentação

- [Como funciona](https://docs.lacunasoftware.com/articles/cloudhub/how-it-works): sessões, tipos de sessão, descoberta, URIs de redirecionamento e
  segurança.
- [Primeiros passos](https://docs.lacunasoftware.com/articles/cloudhub/get-started): instale um cliente, crie uma sessão e assine um hash.
- [Assinando um PDF](https://docs.lacunasoftware.com/articles/cloudhub/pades-signature): uma assinatura PAdES completa em C#, PHP, Python, Node.js e
  Java.
- [Autenticação](https://docs.lacunasoftware.com/articles/cloudhub/authentication): permita que os usuários entrem com o certificado em nuvem.
- [API REST](https://docs.lacunasoftware.com/articles/cloudhub/rest-api): todas as operações, modelos e códigos de erro.
