Configuração de carimbo de tempo
Se você usa uma versão 1.x do Rest PKI Core, veja a seção abaixo
Migrando da 1.x para a 2.x
Para migrar sem perder o histórico de requisições, é preciso usar o campo Aliases.
Configuração 1.x
[Timestamp]
MaxAutoRetryCount=2
RetryDelayInMilliseconds=500
[Timestamp:Timestampers:0]
Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
AuthenticationType=OAuthBearerToken
BearerToken=YOURTOKEN
Tiers=PkiBrazil
[Timestamp:Timestampers:1]
Url=https://tsp.patorum.com/timestamp
AuthenticationType=BasicAuthentication
Username=SOMEUSER
Password=SOMEPASS
Configuração 2.x
[Timestamp]
MaxAutoRetryCount=2
RetryDelayInMilliseconds=500
[Timestamp:Providers:Lacuna]
Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
AuthenticationType=OAuthBearerToken
BearerToken=YOURTOKEN
Tiers=PkiBrazil
Aliases=Provider0
[Timestamp:Providers:Alternative]
Url=https://tsp.patorum.com/timestamp
AuthenticationType=BasicAuthentication
Username=SOMEUSER
Password=SOMEPASS
Aliases=Provider1
Na configuração 2.x, o campo Aliases deve ser preenchido com o nome do provedor na configuração 1.x, que se baseia na posição do provedor na lista de carimbadoras (timestampers).
Configuração
A aplicação obtém carimbos de tempo X.509 quando necessário, por meio do Time-Stamp Protocol (RFC 3161), junto a provedores de carimbo de tempo compatíveis.
A seção de configuração Timestamp contém a configuração para a obtenção de carimbos de tempo. Configurações disponíveis:
- Providers: dicionário de provedores (veja abaixo)
- Tiers: dicionário de planos (veja abaixo)
- RetryDelayMilliseconds: se todos os provedores falharem, tempo de espera em milissegundos antes de tentar novamente (padrão:
1500) - MaxAutoRetryCount: número de vezes que a lista de provedores é percorrida até se obter um carimbo de tempo (padrão:
3) - LacunaTestTimestamperEnabled: se a carimbadora de testes da Lacuna será usada com o plano
LacunaTest(padrão:True)
O dicionário Providers contém a configuração de cada provedor de carimbo de tempo. As configurações disponíveis para cada item são:
- Url: a URL completa para a qual as requisições de carimbo de tempo são enviadas (ex.:
https://pki.rest/tsp) - Aliases: lista, separada por vírgulas, de identificadores anteriores do provedor (útil para renomear provedores sem quebrar o histórico de requisições)
- DisplayName: nome de exibição do provedor
- AuthenticationMethod: o modo de autenticação exigido pelo provedor de carimbo de tempo (veja os métodos suportados abaixo)
- DefaultPolicy: OID da política padrão a ser usada pela TSA ao solicitar um carimbo de tempo. Só é aplicada se a requisição não informar um
tsaPolicyId - Priority: define a prioridade de uso. Quanto mais próximo de zero, maior a prioridade (padrão:
1.000.000) - DangerousAcceptAnyServerCertificate: se a verificação do certificado do provedor deve ser ignorada. Use com cautela, pois isso pode expor a aplicação a riscos de segurança (padrão:
false) - ServerCertificateThumbprint: thumbprint SHA do certificado do servidor. Serve para garantir que a conexão seja feita com o servidor correto, verificando o certificado do servidor (suporta SHA-1, SHA-256, SHA-384 e SHA-512)
- StoreRawResponse: armazena a resposta bruta do carimbo de tempo, o arquivo .tsr (padrão:
false) - Tiers: lista, separada por vírgulas, dos planos de carimbo de tempo (tiers) para os quais esta carimbadora pode ser usada. Se omitida, a carimbadora será usada para todos os planos. Pode conter os IDs ou os nomes dos planos (ex.:
PkiBrazil,LacunaTest)
Dependendo do modo de autenticação exigido pelo provedor de carimbo de tempo, são necessárias configurações adicionais:
None: nenhuma configuração adicional é necessáriaBasicAuthentication: preencha Username e PasswordOAuthBearerToken: preencha BearerTokenMutualSSL- Se o certificado cliente estiver armazenado em um arquivo PFX (PKCS#12) contendo o certificado cliente, preencha:
- PfxPath com o caminho do arquivo ou PfxContent com o conteúdo do arquivo em Base64
- PfxPassword com a senha do arquivo PFX
- Se o certificado cliente estiver no repositório de certificados do sistema operacional, preencha:
- CertificateThumbprint com o thumbprint SHA-1 do certificado em hexadecimal (em minúsculas ou maiúsculas)
- CertificateStore (opcional): defina como
LocalMachinepara usar o repositório do computador (padrão:CurrentUser)
- Se o certificado cliente estiver armazenado em um arquivo PFX (PKCS#12) contendo o certificado cliente, preencha:
ApiKey: preencha ApiKeyCustomAuthorizationHeader: preencha AuthorizationHeader com o valor do header de autorização, normalmente na forma de um esquema seguido de um valor (ex.:ApiKey SOME_VALUE)
Seleção e prioridade de provedores
Quando um carimbo de tempo é solicitado para um plano específico, todos os provedores desse plano são selecionados e ordenados por prioridade. A prioridade é determinada pelo valor do campo Priority. Quanto menor o valor, maior a prioridade (o padrão é 1.000.000).
Se vários provedores tiverem a mesma prioridade, o provedor é escolhido por um algoritmo de alternância (round-robin). Isso garante que a carga seja distribuída igualmente entre os provedores de mesma prioridade.
Exemplos
Exemplo típico (arquivo de configuração .ini ou .conf):
[Timestamp:Providers:Lacuna]
Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
AuthenticationMethod=OAuthBearerToken
BearerToken=YOURTOKEN
Exemplo típico (variáveis de ambiente):
Timestamp__Providers__Lacuna__Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
Timestamp__Providers__Lacuna__AuthenticationMethod=OAuthBearerToken
Timestamp__Providers__Lacuna__BearerToken=YOURTOKEN
Exemplo com 2 provedores e configurações avançadas (arquivo de configuração .ini ou .conf):
[Timestamp]
MaxAutoRetryCount=2
RetryDelayMilliseconds=500
[Timestamp:Providers:Lacuna]
Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
AuthenticationMethod=OAuthBearerToken
BearerToken=YOURTOKEN
Priority=0
[Timestamp:Providers:Alternative]
Url=https://tsp.patorum.com/timestamp
AuthenticationMethod=BasicAuthentication
Username=SOMEUSER
Password=SOMEPASS
Exemplo com 2 provedores e configurações avançadas (variáveis de ambiente):
Timestamp__MaxAutoRetryCount=2
Timestamp__RetryDelayMilliseconds=500
Timestamp__Providers__Lacuna__Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
Timestamp__Providers__Lacuna__AuthenticationMethod=OAuthBearerToken
Timestamp__Providers__Lacuna__BearerToken=YOURTOKEN
Timestamp__Providers__Lacuna__Priority=0
Timestamp__Providers__Alternative__Url=https://tsp.patorum.com/timestamp
Timestamp__Providers__Alternative__AuthenticationMethod=BasicAuthentication
Timestamp__Providers__Alternative__Username=SOMEUSER
Timestamp__Providers__Alternative__Password=SOMEPASS
Planos de carimbo de tempo
É possível restringir o uso de cada provedor a uma lista de planos de carimbo de tempo (tiers). Para isso, preencha a configuração Tiers de cada provedor, por exemplo:
[Timestamp:Providers:Lacuna]
Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
AuthenticationMethod=OAuthBearerToken
BearerToken=YOURTOKEN
Tiers=PkiBrazil
Além disso, na seção Timestamp você pode preencher o dicionário Tiers para definir nomes de exibição para os planos de carimbo de tempo, assim como aliases (útil para renomear planos sem quebrar o histórico de requisições). As configurações disponíveis para cada item são:
- DisplayName: nome de exibição do plano
- Aliases: lista, separada por vírgulas, de identificadores anteriores do plano
Exemplo:
[Timestamp:Tiers:PkiBrazil]
DisplayName=ICP-Brasil (production only!)
[Timestamp:Tiers:Test]
DisplayName=Tests (development only!)
Aliases=TestTier,Tests
[Timestamp:Providers:Lacuna]
Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
AuthenticationMethod=OAuthBearerToken
BearerToken=YOURTOKEN
Tiers=PkiBrazil
[Timestamp:Providers:Free]
Url=https://somefreeprovider.com/tsp
Tiers=Test
Configuração nas versões 1.x
Nas versões 1.x, só estava disponível uma sintaxe, hoje obsoleta, para configurar o carimbo de tempo.
A sintaxe antiga continua sendo suportada; portanto, se você está atualizando a partir da 1.x, não é obrigatório alterar a sua configuração
A seção de configuração Timestamp contém a configuração para a obtenção de carimbos de tempo. Configurações disponíveis:
- Timestampers: lista de provedores de carimbo de tempo (veja abaixo)
- RetryDelayInMilliseconds: se todos os provedores falharem, tempo de espera em milissegundos antes de tentar novamente (padrão:
1500) - MaxAutoRetryCount: número de vezes que a lista de provedores é percorrida até se obter um carimbo de tempo (padrão:
3) - LacunaTestTimestamperEnabled: se a carimbadora de testes da Lacuna será usada com o plano
LacunaTest(padrão:True)
A lista Timestampers contém a configuração de cada provedor de carimbo de tempo. As configurações disponíveis são:
- Url: a URL completa para a qual as requisições de carimbo de tempo são enviadas (ex.:
https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310) - AuthenticationType: o modo de autenticação exigido pelo provedor de carimbo de tempo. Os modos suportados são
None,BasicAuthenticationeOAuthBearerToken(veja abaixo). - Tiers: lista, separada por vírgulas, dos planos de carimbo de tempo (tiers) para os quais esta carimbadora pode ser usada. Se omitida, a carimbadora será usada para todos os planos. Pode conter os IDs ou os nomes dos planos (ex.:
PkiBrazil,LacunaTest)
Dependendo do modo de autenticação exigido pelo provedor de carimbo de tempo, são necessárias configurações adicionais:
None: nenhuma configuração adicional é necessáriaBasicAuthentication: preencha Username e PasswordOAuthBearerToken: preencha BearerToken
Exemplo típico (arquivo de configuração .ini ou .conf):
[Timestamp:Timestampers:0]
Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
AuthenticationType=OAuthBearerToken
BearerToken=YOURTOKEN
Tiers=PkiBrazil
Exemplo típico (variáveis de ambiente):
Timestamp__Timestampers__0__Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
Timestamp__Timestampers__0__AuthenticationType=OAuthBearerToken
Timestamp__Timestampers__0__BearerToken=YOURTOKEN
Timestamp__Timestampers__0__Tiers=PkiBrazil
Exemplo mais avançado (arquivo de configuração .ini ou .conf):
[Timestamp]
MaxAutoRetryCount=2
RetryDelayInMilliseconds=500
[Timestamp:Timestampers:0]
Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
AuthenticationType=OAuthBearerToken
BearerToken=YOURTOKEN
Tiers=PkiBrazil
[Timestamp:Timestampers:1]
Url=https://tsp.patorum.com/timestamp
AuthenticationType=BasicAuthentication
Username=SOMEUSER
Password=SOMEPASS
Exemplo mais avançado (variáveis de ambiente):
Timestamp__MaxAutoRetryCount=2
Timestamp__RetryDelayInMilliseconds=500
Timestamp__Timestampers__0__Url=https://pki.rest/tsp/a402df41-8559-47b2-a05c-be555bf66310
Timestamp__Timestampers__0__AuthenticationType=OAuthBearerToken
Timestamp__Timestampers__0__BearerToken=YOURTOKEN
Timestamp__Timestampers__0__Tiers=PkiBrazil
Timestamp__Timestampers__1__Url=https://tsp.patorum.com/timestamp
Timestamp__Timestampers__1__AuthenticationType=BasicAuthentication
Timestamp__Timestampers__1__Username=SOMEUSER
Timestamp__Timestampers__1__Password=SOMEPASS