Jump to content

Recommended Posts

Posted (edited)
On 9/16/2023 at 11:02 PM, kalin said:

Sim, o problema não estava no processId, mas nas Hashes dos documentos, não estava a enviar.

Já agora, na criação da conta como é que estás a fazer? Na documentação indicam que pode ser automatizado mas não é explicado como.

Para os testes fiz o processo manual no site, mas ter que fazer isto todos os 45 dias não dá.

Podes ver aqui como proceder com Autenticação gov. (A partir da página 46)
Tens a automatização na página 10 (documentação integração SAFE), ponto 4.1.1.4.  O flow de criação da conta já foi falado aqui, ex:
 

On 11/10/2022 at 9:24 AM, laboss said:

Exatamente o que eu fiz é mesmo isso. Para a criação de conta faço assim:

  1. Chamada ao URL de autenticação com os respetivos scopes
    • Recebo o token de auth
  2. Espero 15 segundos (muito importante)
  3. Recolho os dados na conta no endpoint OAuthResourceServer/Api/AttributeManager
  4. Espero 2 segundos (se não fizer isto 80% das vezes não são retornados os dados)
  5. Recolho os dados da conta no endpoint OAuthResourceServer/Api/AttributeManager?token={Token}&authenticationContextId={authenticationContextId}
  6. Se não receber dados tento 5 vezes desde o passo 2

 

Edited by zeph
  • Vote 2
Posted

Depois de partir muita pedra, e com ajuda do pessoal ( @zeph ), lá consegui criar o primeiro pdf assinado pelo SAFE.

Ao validar a assinatura num leitor tenho o erro:

Citação

The document has been altered or corrupted since the Signature was applied

como é que ficam os vossos pdfs?

Posted
On 9/19/2023 at 1:32 AM, kalin said:

Depois de partir muita pedra, e com ajuda do pessoal ( @zeph ), lá consegui criar o primeiro pdf assinado pelo SAFE.

Ao validar a assinatura num leitor tenho o erro:

como é que ficam os vossos pdfs?

Os meus ficam "amarelos" com warning, o que pelos vistos é normal acontecer. Agora, o teu erro não deve acontecer.  Se já estás a obter o hash assinado, o teu problema deve estar ao "estampar" a assinatura do PDF. Tens aí exemplos da malta que já assinou com o itext. Qual é o serviço para assinar o PDF que estás a usar?

Posted
Em 19/09/2023 às 09:53, zeph disse:

Os meus ficam "amarelos" com warning, o que pelos vistos é normal acontecer. Agora, o teu erro não deve acontecer.  Se já estás a obter o hash assinado, o teu problema deve estar ao "estampar" a assinatura do PDF. Tens aí exemplos da malta que já assinou com o itext. Qual é o serviço para assinar o PDF que estás a usar?

Sim, também penso que o problema é ao adicionar o hash assinado no pdf.

Eu estou a usar as libs da Syncfusion, licença community, eles têm muitos exemplos no github, o que estou a seguir é este Deferred-signing-in-PDF-document

Posted (edited)
On 9/19/2023 at 12:51 PM, kalin said:

Sim, também penso que o problema é ao adicionar o hash assinado no pdf.

Eu estou a usar as libs da Syncfusion, licença community, eles têm muitos exemplos no github, o que estou a seguir é este Deferred-signing-in-PDF-document

Atenção que deves adicionar ao hash, o prefixo mencionado na documentacao de integração (página 24). 

Edited by zeph
Posted (edited)
Em 19/09/2023 às 12:53, zeph disse:

Atenção que deves adicionar ao hash, o prefixo mencionado na documentacao de integração (página 24). 

Sim, estou a fazer isso

 

Edit:

Depois de rever um exemplo que usa o itextsharp vi que estava a concatenar o prefixo diretamente com o array e não com a hash256 do array 😵‍💫.

Agora é colocar o LTV

Edited by kalin
solução para a questão
Posted (edited)
On 9/19/2023 at 4:30 PM, kalin said:

Sim, estou a fazer isso

 

Edit:

Depois de rever um exemplo que usa o itextsharp vi que estava a concatenar o prefixo diretamente com o array e não com a hash256 do array 😵‍💫.

Agora é colocar o LTV

O LTV não é obrigatório. Tens alguns serviços free, mas é sempre aquele receio.

Edited by zeph
Posted
Em 19/09/2023 às 16:09, zeph disse:

O LTV não é obrigatório. Tens alguns serviços free, mas é sempre aquele receio.

Estou a usar o servidor do cartão de cidadão http://ts.cartaodecidadao.pt/tsa/server, mas existem limites:

Citação

tem um limite máximo de 20 pedidos em cada período de 20 minutos que se podem efectuar. Se este valor for excedido o serviço será bloqueado durante 24 horas, sem prejuízo de outras consequências em caso de repetição de situações de bloqueio. (para mais informações sobre o serviço de selo temporal/timestamps do Cartão do Cidadão, consulte a página https://pki.cartaodecidadao.pt).

Se assinar um pdf com 265KB, com a app do cartão de cidadão e com o selo temporal ou não fica com 502KB, se usar as libs da syncfusion sem selo temporal fica com 291KB e com selo temporal fica com 2335KB.

Mas de qualquer forma vou colocar configurável pelo utilizador.

Posted
Em 19/09/2023 às 16:44, desconfiado disse:

Alguém que já tenha desenvolvido isto em C# pode disponibilizar o código ou parte que ajude a acelerar isto?

Desliguei-me disto por bastante tempo mas agora pretendo desenvolver esta treta do SAFE.

quando terminar vou colocar o código que estou a martelar no github, depois posso deixar uma mensagem aqui neste tópico

  • Vote 2
  • 2 weeks later...
  • 3 weeks later...
Posted (edited)

Alguém me pode ajudar!

Como faço para poder obter os certificados para usar no ambiente de testes?

Ou podem me explicar detalhadamente o processo todo, desde o registo até iniciar código.

Edited by febra69

MrG0DL3

Posted
Em 27/10/2023 às 09:51, febra69 disse:

Alguém me pode ajudar!

Como faço para poder obter os certificados para usar no ambiente de testes?

Ou podem me explicar detalhadamente o processo todo, desde o registo até iniciar código.

Boas tens o manual no git deles

https://github.com/amagovpt/doc-SAFE

No manual de integração no ponto 8 tens lá o que precisas de fazer 

 

Posted
Citação

8 Processo de Integração
De modo a poder integrar com o SAFE, a entidade responsável por um Software de Faturação tem de:
1. Enviar email para eid@ama.pt a formalizar a intenção de integrar com o SAFE;
2. Celebrar protocolo com a AMA;
3. Produzir relatório assinado com evidências de cumprimento de Guidelines de Integração (ver 9);
4. Realizar processo de certificação da solução, enviando:
    o Vídeo demonstrativo da solução;
    o 5 exemplares de documentos assinados;
    o Código fonte da aplicação para certificação por parte da AMA. Como alternativa, pode também ser pedida a certificação da aplicação a uma entidade externa independente e credenciada para auditorias eIDAS.
5. Receber credenciais de Basic Authentication e ClientName para integração com o SAFE;
6. Receber ClientId para integração OAuth.

Para proceder ao ponto 8.4, necessito dos certificados para efetuar testes e obter os documentos assinados;

MrG0DL3

Posted (edited)

Eu na altura tive de fazer os passos 1 e 2 primeiro, basicamente enviei o email, tive-me de registar no https://pprwww.autenticacao.gov.pt/  e depois pedi para associar o atributo profissional ao meu NIF. No email eles mandaram o ClientId que precisava para o ambiente de testes, não sei se ainda é assim, mas deve ser, já fiz a certificação em maio de 2022

Edited by laboss
Posted (edited)
Em 02/11/2023 às 13:30, laboss disse:

No manual no ponto 4.2.3 é o end point credentials/info

Pelo que percebi tenho que usar o body a baixo para o seguinte URL {{baseUrl}}/credentials/info

{
  "clientData": {
    "clientName": "???",
    "processId": "GUID"
  },
  "credentialID": "credentialID que tenho no portal de testes",
  "certificates": "single"
}

O que devo colocar nos dois campos indicados com ?

Edited by febra69

MrG0DL3

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.