zeph Posted September 16, 2023 at 10:36 PM Report #631825 Posted September 16, 2023 at 10:36 PM (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: Chamada ao URL de autenticação com os respetivos scopes Recebo o token de auth Espero 15 segundos (muito importante) Recolho os dados na conta no endpoint OAuthResourceServer/Api/AttributeManager Envio o Token recebido no auth Envio o attributesName com o valor http://interop.gov.pt/SAFE/createSignatureAccount (sem os scopes) Recebo o token e authenticationContextId Espero 2 segundos (se não fizer isto 80% das vezes não são retornados os dados) Recolho os dados da conta no endpoint OAuthResourceServer/Api/AttributeManager?token={Token}&authenticationContextId={authenticationContextId} Se não receber dados tento 5 vezes desde o passo 2 Edited September 17, 2023 at 09:37 AM by zeph 2 Report
kalin Posted September 18, 2023 at 11:32 PM Report #631833 Posted September 18, 2023 at 11:32 PM 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?
zeph Posted September 19, 2023 at 08:53 AM Report #631834 Posted September 19, 2023 at 08:53 AM 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?
kalin Posted September 19, 2023 at 10:51 AM Report #631835 Posted September 19, 2023 at 10:51 AM 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
zeph Posted September 19, 2023 at 11:53 AM Report #631836 Posted September 19, 2023 at 11:53 AM (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 September 19, 2023 at 12:00 PM by zeph
kalin Posted September 19, 2023 at 02:30 PM Report #631837 Posted September 19, 2023 at 02:30 PM (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 September 19, 2023 at 02:46 PM by kalin solução para a questão
zeph Posted September 19, 2023 at 03:09 PM Report #631838 Posted September 19, 2023 at 03:09 PM (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 September 19, 2023 at 03:13 PM by zeph
desconfiado Posted September 19, 2023 at 03:44 PM Report #631839 Posted September 19, 2023 at 03:44 PM 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.
kalin Posted September 19, 2023 at 03:52 PM Report #631840 Posted September 19, 2023 at 03:52 PM 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.
kalin Posted September 19, 2023 at 03:55 PM Report #631841 Posted September 19, 2023 at 03:55 PM 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 2 Report
kalin Posted October 4, 2023 at 03:23 PM Report #631892 Posted October 4, 2023 at 03:23 PM Para quem quiser em C# com as libs da Syncfusion para tratar dos pdf's https://github.com/fredericoregateiro/SAFE-testes Ainda falta a criação da conta, para já é preciso criar a conta no site e fazer o download dos tokens. 2 Report
BIGGIE97 Posted October 23, 2023 at 05:01 PM Report #631961 Posted October 23, 2023 at 05:01 PM Alguém conseguiu implementar em Java, utilizando o pdfbox?
febra69 Posted October 27, 2023 at 08:51 AM Report #631979 Posted October 27, 2023 at 08:51 AM (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 October 27, 2023 at 09:01 AM by febra69 MrG0DL3
laboss Posted October 27, 2023 at 09:05 AM Report #631980 Posted October 27, 2023 at 09:05 AM 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
febra69 Posted October 27, 2023 at 10:00 AM Report #631981 Posted October 27, 2023 at 10:00 AM 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
laboss Posted October 27, 2023 at 10:15 AM Report #631983 Posted October 27, 2023 at 10:15 AM (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 October 27, 2023 at 10:16 AM by laboss
febra69 Posted November 2, 2023 at 12:57 PM Report #632023 Posted November 2, 2023 at 12:57 PM Em 04/10/2023 às 16:23, kalin disse: Para quem quiser em C# com as libs da Syncfusion para tratar dos pdf's https://github.com/fredericoregateiro/SAFE-testes Ainda falta a criação da conta, para já é preciso criar a conta no site e fazer o download dos tokens. Como obtiveste o certificados X509Certificate? MrG0DL3
laboss Posted November 2, 2023 at 01:30 PM Report #632024 Posted November 2, 2023 at 01:30 PM Em 02/11/2023 às 12:57, febra69 disse: Como obtiveste o certificados X509Certificate? No manual no ponto 4.2.3 é o end point credentials/info
febra69 Posted November 2, 2023 at 02:16 PM Report #632025 Posted November 2, 2023 at 02:16 PM (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 November 2, 2023 at 02:21 PM by febra69 MrG0DL3
laboss Posted November 2, 2023 at 02:24 PM Report #632026 Posted November 2, 2023 at 02:24 PM O clientName é fornecido pela AMA quando pedes para fazer a integração, e processId é um Guid que crias para identificar o processo.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now