zeph Posted November 3, 2022 at 04:28 PM Report #627966 Posted November 3, 2022 at 04:28 PM 3 minutes ago, laboss said: Eu fiz o processo no site https://pprwww.autenticacao.gov.pt/web/guest/area-privada/atributos-profissionais Pedi o Administrador, Gerente, ou Diretor depois ficou pendente no separador "Consulta de Processos", quando ficou ai eu mandei um mail e eles ativaram no dia seguinte. No meu caso demorou 5 dias a ficar ativo
bioshock Posted November 3, 2022 at 04:31 PM Report #627967 Posted November 3, 2022 at 04:31 PM 5 minutes ago, laboss said: https://pprwww.autenticacao.gov.pt/web/guest/area-privada/atributos-profissionais Pedi o Administrador, Gerente, ou Diretor depois ficou pendente no separador "Consulta de Processos", quando ficou ai eu mandei um mail e eles ativaram no dia seguinte. Sim, também fiz. Mas tive de mandar agora um email para eid@ama.pt a pedir que autorizem. 1 minute ago, zeph said: No meu caso demorou 5 dias a ficar ativo Minha nossa senhora. 🤣
laboss Posted November 3, 2022 at 04:40 PM Report #627968 Posted November 3, 2022 at 04:40 PM Tive uma benesse porque tive 4 meses as espera das credenciais de teste 🤣
desconfiado Posted November 7, 2022 at 05:06 PM Report #628017 Posted November 7, 2022 at 05:06 PM Que sistema confuso! Estou completamente "atarantado" com isto. Não entendo nada do que é necessário fazer nem como testar. Alguém me consegue dar algumas indicações? Eu já tenho o registo feito em pré-produção (https://pprwww.autenticacao.gov.pt/area-privada/atributos-profissionais) e atributos profissionais de "Assinatura de faturas eletrónicas". Também tenho um certificado caducado em "Assinatura de Facturas" que devo ter criado no ano passado quando iniciei este processo que entretanto parei. Já criei um novo certificado e este já está activo. Agora não sei como testar porque não estou a entender nada do processo e os manuais disponibilizados são uma tristeza.
laboss Posted November 7, 2022 at 05:12 PM Report #628018 Posted November 7, 2022 at 05:12 PM (edited) Para testar podes testar no site deles https://pprwww.autenticacao.gov.pt/area-privada/assinatura/pdf Depois na api é +/- isto Em 27/10/2022 às 15:30, laboss disse: Basicamente e isto, saltando a parte da autenticação, etc. Geras o PDF sem assinatura Geras o Hash do PDF em SHA-256 Aqui tens de ter cuidado porque já tens de ter o container da assinatura no PDF, se não quando meteres o hash deles no PDF tb vais meter o container e já não fica válido Invocas o serviço para pedir autorização assinar Aqui vais ter de enviar o hash gerado no passo 2 O passo 3 devolve um SAD (Basicamente é um ID com a autorização) Invocas o serviço de assinatura com o SAD e com os hash novamente O serviço vai-te devolver a assinatura do teu HASH que basicamente é um novo HASH Tens de colocar o HASH recebido embebido no PDF (No container que criaste ao gerar o 1º HASH) Ta feito No serviço deles nunca envias o PDF, trabalhas com o HASH, se conheceres o da digitalsign e parecido nas partes dos hash. A parte mais complicada de tudo isto para mim, foi gerar o Hash do PDF e depois colocar o HASH recolhido no PDF, o resto faz-se bem. A parte de criar a conta pela API é basicamente é gerares a conta SAFE para teres acesso ao token da mesma. Para testares os PDF's assinados existe um site deles https://validador.autenticacao.gov.pt/validation Edited November 7, 2022 at 05:14 PM by laboss
desconfiado Posted November 7, 2022 at 05:21 PM Report #628019 Posted November 7, 2022 at 05:21 PM E onde é que está a documentação sobre esses serviços? Carreguei os ficheiros json que estão na pasta API do Github, para o site https://editor.swagger.io/ mas não estou a entender muito bem. Tem lá 2 ficheiros json um "SAFE-AccountManagementService.json" e outro "SAFE-SignatureService.json". O de assinatura tem o método /Info que não pede parâmetro nenhum por isso não sei como por a funcionar. O /SignHash suponho que seja o que tem que se chamar mas não estou a entender o que são os parametros "SAFEAuthorization" e "Authorization". Onde obtenho estes parametros e como estão relacionados com o certificado de teste que gerei no portal?
laboss Posted November 7, 2022 at 05:35 PM Report #628021 Posted November 7, 2022 at 05:35 PM Ta tudo aqui: https://github.com/amagovpt/doc-SAFE https://github.com/amagovpt/doc-SAFE/blob/main/AMA - SAFE Documento de integração.pdf Manual da coisa SAFE - Signature Service /v2/credentials/authorize (Pedes a assinatura) /v2/signatures/signHash (Recolhes os hash para colocares no PDF) Todos as chamadas tens de colocar um Authorization Basicamente é isto curl --location --request POST 'https://safe.autenticacao.gov.pt/info' \ --header 'Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXX' Este basic são dados que eles te enviaram Exemplo de um autorize curl --location --request POST 'https://safe.autenticacao.gov.pt/credentials/authorize' \ --header 'SAFEAuthorization: Bearer xxxxxxxxxxxxx' \ --header 'Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXX' \ --header 'Content-Type: application/json' \ --data-raw '{ "numSignatures": 1, "hashes": [ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ], "clientData": { "processId": "121212c-456e-4abc-9efb-d774936ce749", "documentNames": [ "documentName1" ], "clientName": "clientTest" }, "credentialID": "" }' 1 Report
zeph Posted November 7, 2022 at 06:08 PM Report #628024 Posted November 7, 2022 at 06:08 PM On 10/31/2022 at 3:34 PM, bioshock said: Pois, eu vi esse client_id na documentação, mas quando o testo o URL devolve sempre erro na página do .gov. Se meter um client_id válido (e eu sei de um válido) já funciona, independentemente se utilizar o sub-domínio preprod. ou o de produção final. Estava à espera que me respondessem da SAFE, já enviei o contrato assinado para lá. Os dados de teste que usei foram: creationClientName = clientTest, clientID = 123456789 e o NIPC = 500000000 (pedi os atributos para esse NIF de testes) Exemplo: https://preprod.autenticacao.gov.pt/oauth/askauthorization?client_id=123456789& scope=http://interop.gov.pt/MDC/Cidadao/NomeProprio%20 http://interop.gov.pt/MDC/Cidadao/NIC%20 http://interop.gov.pt/MDC/Cidadao/DocType%20 http://interop.gov.pt/MDC/Cidadao/DocNumber%20 http://interop.gov.pt/MDC/Cidadao/NomeProprio%20 http://interop.gov.pt/MDC/Cidadao/NomeApelido%20 http://interop.gov.pt/MDC/Cidadao/DataValidade%20 http://interop.gov.pt/MDC/Cidadao/DataNascimento%20 http://interop.gov.pt/SAFE/createSignatureAccount?enterpriseNipc=500000000 $enterpriseAdditionalInfo=mais_contas_para_o_mesmo_NIF $email=teste@test.com $signaturesLimit=1000 $creationClientName=clientTest &response_type=token 1 Report
desconfiado Posted November 7, 2022 at 06:21 PM Report #628026 Posted November 7, 2022 at 06:21 PM No "Authorization" deve ser enviado "Basic Y2xpZW50VGVzdDpUZXN0" que corresponde ás credenciais clientTest:Test enconded em Base64, certo? Está-me a dar erro.
zeph Posted November 7, 2022 at 06:23 PM Report #628027 Posted November 7, 2022 at 06:23 PM On 11/7/2022 at 6:21 PM, desconfiado said: No "Authorization" deve ser enviado "Basic Y2xpZW50VGVzdDpUZXN0" que corresponde ás credenciais clientTest:Test enconded em Base64, certo? Está-me a dar erro. Correto. Qual é o método?
desconfiado Posted November 7, 2022 at 06:26 PM Report #628028 Posted November 7, 2022 at 06:26 PM (edited) Em 07/11/2022 às 18:23, zeph disse: Correto. Qual é o método? /credentials/info Curl curl -X 'POST' \ 'https://pprsafe.autenticacao.gov.pt/credentials/info' \ -H 'accept: application/json' \ -H 'SAFEAuthorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJTQUZFIiwic3ViIjoiQkkwODg3NjA0MCIsImF1ZCI6IkJJMDg4NzYwNDA1MDI5NzY3NzIiLCJpYXQiOjE2Njc4NDA0MzEsImV4cCI6MTY2NzkyNjgzMSwidG9rZW5HdWlkIjoiMTdhOWNhMzktOTJhMS00MmZhLThkYzctYmIyNWU3M2I3YWQ5IiwiYWNjZXNzVG9rZW4iOnRydWUsInNhaWQiOiJ6QWVhMHVBbXE5TndhTXRtSkk2bFBIaVhyV2ErNGxBbmVSUDd4TFViWSthaGE5T1BWQVNoUFE9PSJ9.Mtczlr3PvwLLWfGYX515q3UPF888UmxOzYtfa8lrAlE' \ -H 'Content-Type: application/json' \ -d '{ "credentialID": "caeedd36-24cc-4a36-b855-dff6a80103f9", "certificates": "chain", "clientData": { "processId": "a015722c-456e-4abc-9efb-d774936ce749", "clientName": "clientTest" } }' Editei o ficheiro json e alterei o endpoint para o de teste https://pprsafe.autenticacao.gov.pt/ Edited November 7, 2022 at 06:27 PM by desconfiado
desconfiado Posted November 7, 2022 at 06:42 PM Report #628029 Posted November 7, 2022 at 06:42 PM Faltava-me o "CredentialID" do certificado. Coloquei o correcto mas continua a dar erro. O "processId" é apenas um GUID qualquer, certo?
zeph Posted November 7, 2022 at 06:44 PM Report #628030 Posted November 7, 2022 at 06:44 PM On 11/7/2022 at 6:26 PM, desconfiado said: /credentials/info Curl curl -X 'POST' \ 'https://pprsafe.autenticacao.gov.pt/credentials/info' \ -H 'accept: application/json' \ -H 'SAFEAuthorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJTQUZFIiwic3ViIjoiQkkwODg3NjA0MCIsImF1ZCI6IkJJMDg4NzYwNDA1MDI5NzY3NzIiLCJpYXQiOjE2Njc4NDA0MzEsImV4cCI6MTY2NzkyNjgzMSwidG9rZW5HdWlkIjoiMTdhOWNhMzktOTJhMS00MmZhLThkYzctYmIyNWU3M2I3YWQ5IiwiYWNjZXNzVG9rZW4iOnRydWUsInNhaWQiOiJ6QWVhMHVBbXE5TndhTXRtSkk2bFBIaVhyV2ErNGxBbmVSUDd4TFViWSthaGE5T1BWQVNoUFE9PSJ9.Mtczlr3PvwLLWfGYX515q3UPF888UmxOzYtfa8lrAlE' \ -H 'Content-Type: application/json' \ -d '{ "credentialID": "caeedd36-24cc-4a36-b855-dff6a80103f9", "certificates": "chain", "clientData": { "processId": "a015722c-456e-4abc-9efb-d774936ce749", "clientName": "clientTest" } }' Editei o ficheiro json e alterei o endpoint para o de teste https://pprsafe.autenticacao.gov.pt/ Tens de enviar as duas authorizações, SAFEAuthorization(Bearer) e Authorization(Basic) --header 'SAFEAuthorization: Bearer xpto' \ --header 'Authorization: Basic xpto' \ On 11/7/2022 at 6:42 PM, desconfiado said: Faltava-me o "CredentialID" do certificado. Coloquei o correcto mas continua a dar erro. O "processId" é apenas um GUID qualquer, certo? Sim
bioshock Posted November 7, 2022 at 07:37 PM Report #628031 Posted November 7, 2022 at 07:37 PM On 11/7/2022 at 6:08 PM, zeph said: Os dados de teste que usei foram: creationClientName = clientTest, clientID = 123456789 e o NIPC = 500000000 (pedi os atributos para esse NIF de testes) Exemplo: https://preprod.autenticacao.gov.pt/oauth/askauthorization?client_id=123456789& scope=http://interop.gov.pt/MDC/Cidadao/NomeProprio%20 http://interop.gov.pt/MDC/Cidadao/NIC%20 http://interop.gov.pt/MDC/Cidadao/DocType%20 http://interop.gov.pt/MDC/Cidadao/DocNumber%20 http://interop.gov.pt/MDC/Cidadao/NomeProprio%20 http://interop.gov.pt/MDC/Cidadao/NomeApelido%20 http://interop.gov.pt/MDC/Cidadao/DataValidade%20 http://interop.gov.pt/MDC/Cidadao/DataNascimento%20 http://interop.gov.pt/SAFE/createSignatureAccount?enterpriseNipc=500000000 $enterpriseAdditionalInfo=mais_contas_para_o_mesmo_NIF $email=teste@test.com $signaturesLimit=1000 $creationClientName=clientTest &response_type=token E isto significa que consegues testar as assinaturas sem ter a aprovação da @ama.pt (no que toca ao endpoint de pré-produção do AutenticaçãoGov)? Ok, amanhã testo, obrigado.
zeph Posted November 7, 2022 at 07:52 PM Report #628032 Posted November 7, 2022 at 07:52 PM On 11/7/2022 at 7:37 PM, bioshock said: E isto significa que consegues testar as assinaturas sem ter a aprovação da @ama.pt (no que toca ao endpoint de pré-produção do AutenticaçãoGov)? Ok, amanhã testo, obrigado. Tens de ter a Assinatura digital como atributo, logo claro que tive aprovação
desconfiado Posted November 8, 2022 at 07:46 PM Report #628048 Posted November 8, 2022 at 07:46 PM Qual é a validade do Access Token? Criei ontem um certificado e fiz download do Access Token e do Refresh Token. Hoje estava a tentar chamar o serviço "/credentials/list" para testar e devolve-me {"error":"Bad Request","error_description":"The access or refresh token is expired or has been revoked"} Fui verificar o certificado e este mantém-se válido e o Access Token continua o mesmo. Supostamente tenho que chamar o serviço "/signatureAccount/updateToken" mas como? Qual é a URL?
desconfiado Posted November 8, 2022 at 08:35 PM Report #628049 Posted November 8, 2022 at 08:35 PM Que confusão de sistema! O que é o processId e onde se obtém? Eu estava a confundir o processId com o Credential ID do certificado mas já percebi que não é a mesma coisa. Sinceramente, que sistema horrível este! Eu já desenvolvi a comunicação com a espap, Saphety e Multicert sem problemas. Este sistema já me está a meter nojo!
zeph Posted November 8, 2022 at 09:08 PM Report #628050 Posted November 8, 2022 at 09:08 PM (edited) On 11/8/2022 at 7:46 PM, desconfiado said: Qual é a validade do Access Token? Criei ontem um certificado e fiz download do Access Token e do Refresh Token. Hoje estava a tentar chamar o serviço "/credentials/list" para testar e devolve-me {"error":"Bad Request","error_description":"The access or refresh token is expired or has been revoked"} Fui verificar o certificado e este mantém-se válido e o Access Token continua o mesmo. Supostamente tenho que chamar o serviço "/signatureAccount/updateToken" mas como? Qual é a URL? Url: https://pprsafe.autenticacao.gov.pt/signatureAccount/updateToken No header, envias o parametro SAFEAuthorization com o refreshtoken e o Authorization com o basic token. On 11/8/2022 at 8:35 PM, desconfiado said: Que confusão de sistema! O que é o processId e onde se obtém? Eu estava a confundir o processId com o Credential ID do certificado mas já percebi que não é a mesma coisa. Sinceramente, que sistema horrível este! Eu já desenvolvi a comunicação com a espap, Saphety e Multicert sem problemas. Este sistema já me está a meter nojo! O processID é uma GUID que tens de criar. Em relação à validade do access token, eles não expecificam, mas deduzo que seja 1 dia. Edited November 8, 2022 at 09:10 PM by zeph
desconfiado Posted November 8, 2022 at 09:54 PM Report #628051 Posted November 8, 2022 at 09:54 PM Parece que já estou a começar a entender isto. Já consegui obter resposta e renovar o token. Só tenho uma duvida em relação ao processo de criação do certificado. Quem já desenvolveu isto fez a criação do certificado através do software ou fizeram como eu que criei o certificado directamente no portal? E como é que se controla a validade do certificado, ou seja, como é que se sabe quando caduca o certificado? Suponho que terá que ser criado novo certificado quando o actual caducar, certo?
zeph Posted November 8, 2022 at 10:11 PM Report #628052 Posted November 8, 2022 at 10:11 PM (edited) On 11/8/2022 at 9:54 PM, desconfiado said: Parece que já estou a começar a entender isto. Já consegui obter resposta e renovar o token. Só tenho uma duvida em relação ao processo de criação do certificado. Quem já desenvolveu isto fez a criação do certificado através do software ou fizeram como eu que criei o certificado directamente no portal? E como é que se controla a validade do certificado, ou seja, como é que se sabe quando caduca o certificado? Suponho que terá que ser criado novo certificado quando o actual caducar, certo? A data de validade do certificado emitido é a data de validade do atributo “Assinatura de faturas eletrónicas” na empresa para a qual pretende criar conta de assinatura, acrescido de 30 dias. Edited November 8, 2022 at 10:17 PM by zeph
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