Show / Hide Table of Contents
Editar no GitHub

Configurando uma autoridade de carimbo de tempo

Quando se realiza uma assinatura com um política que exija uma integração com o carimbo de tempo, é preciso configurar uma autoridade de carimbo de tempo para usa classe PkiExpressOperator ou qualquer classe que herda dela.

Use a classe TimestampAuthority para configurar a comunicação com o provedor de carimbo de tempo.

Usando o provedor de carimbo de tempo do REST PKI

Para usar o provedor de carimbo de tempo do REST PKI, é necessário que configure as credenciais necessárias para a comunicação entre o PKI Express e o REST PKI. Para simplicarmos a integração, é possível utilizar o access token para realizar essa comunicação (veja o artigo para outros tipos de autenticação).

Primeiro, crie um conta no site do REST PKI e adquira um token de acesso no dashboad. E, configure a aplicação com os seguintes parâmetros:

$authority = new TimestampAuthority("https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310");
$authority->setOAuthTokenAuthentication('<place_your_access_token>');
$operator->timestampAuthority = $authority;

Exemplo (Assinatura de PDF com carimbo de tempo)

// Performing a PAdES signature with timestamp
function configureTimestamp($operator) {
    $authority = new TimestampAuthority("https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310");
    $authority->setOAuthTokenAuthentication('<place_your_access_token>');
    $operator->timestampAuthority = $authority;
}


// Starting signature
$signatureStarter = new PadesSignatureStarter();
configureTimestamp($signatureStarter);
$signatureStarter->signaturePolicy(StandardSignaturePolicies::PADES_T); // A policy that requires timestamp
...
$signatureStarter->start();


// Completing signature
$signatureFinisher = new SignatureFinisher();
configureTimestamp($signatureFinisher);
...
$signatureFinisher->complete();

Leia mais: Solicitando carimbos de tempo ao Rest PKI

Usando outros provedores de carimbo de tempo

Para usar um provedor diferente, é preciso ter a URL para este provedor e qual método de autenticação ele utiliza para esta operação.

Atualmente, a class TimestampAuthority só suporta três tipos de autenticação:

  • Usuário e Senha;
  • Token de Acesso; e
  • SSL mútua.

Primeiro, instancie a class TimestampAuthoritycom a URL do provedor de carimbo de tempo.

$authority = new TimestampAuthority("<place_timestamp_provider_url>");

E para cada tipo de autenticação, é preciso utilizar um método diferente da class TimestampAuthority:

Autenticação com Usuário e Senha

Use o método setBasicAuthentication() para configurar a autenticação com o usuário e senha:

$authority->setBasicAuthentication('<place_username>', '<place_password>');

Autenticação com Token de Acesso

Use o método setOAuthTokenAuthentication() para configurar a autenticação com token de acesso:

$authority->setOAuthTokenAuthentication('<place_access_token>');

Autenticação com SSL Mútua

Use o método setSSLAuthentication() com o thumbprint do certificado para configurar a autenticação com SSL mútua.

$authority->setSSLAuthentication('<place_ssl_thumbprint>');
Note

Aqui, o PKI Express irá olhar no storage de certificado da aplicação para olhar o certificado deseja. Ele irá filtrar os certificados existentes por seus thumbprints.

Back to top Copyright © 2015-2020 Lacuna Software