Trabalho Prático 5 - CIE - Mário Loureiro
Trabalho Prático 5 - CIE - Mário Loureiro
Trabalho Prático 5 - CIE - Mário Loureiro
TRABALHO PRÁTICO – Nº 5
2
Depois do processo terminado, o portal permite fazer download do ficheiro assinado em formato PDF.
A assinatura tem validade jurídica e é certificada pelo Estado Português.
3
Figura 3 - Esquema do processo de comunicação entre o sowftare de facturação, o FA e o SAFE
4
2. COMO REGISTAR UMA ENTIDADE (RESPONSÁVEL) [1,2]
A conta de assinatura pode ser criada pelo software de facturação de forma preferencial ou
através do portal autenticação.gov.pt acedendo ao menu “assinatura de facturas > meus atributos
profissionais” e seleccionar a empresa em causa. No caso de o atributo não ter sido já configurado serve
solicitar-se o mesmo. Neste caso deve-se seleccionar o enquadramento jurídico do cidadão, se é
administrador, director, gerente ou procurador da empresa em causa. Inserir ainda o NIPC, nome da
empresa, número da certidão permanente, forma jurídica, entre outros documentos. Devemos por fim
configurar o prazo de validade da conta de assinatura e o número limite de facturas a realizar.
2.1.3. Processo de criação de uma conta de assinatura do SAFE pelo portal autenticação.gov.pt
Conforme indicamos da secção anterior, a conta de assinatura deve ser criada no software de
facturação, no entanto é possível criar a mesma pelo portal autenticação.gov.pt. Pelo processo manual
acedemos a “Os meus Atributos Profissionais > Assinatura de Facturas” e clica-se em “Adicionar
certificado”. Selecciona-se a empresa, a data de validade do certificado e emitir e o número limite de
assinaturas que se podem emitir com o certificado (figura 4). Confirma-se os dados e clica-se em
“Guardar”.
5
Figura 5 - Configuração do certificado de assinatura[1]
Após a confirmação o certificado deverá aparecer na lista de certificado associados ao cidadão conforme
se ilustra a título exemplificativo na figura 5.
Este certificado pode ser descarregado em forma de token pelo requerente (figura 6). Este token
consiste numa chave criptográfica. Explica-se no modo de criação de conta por software de facturação
como funciona a obtenção de token.
6
2.2. Criação de conta pelo software de facturação
O registo da criação de conta de assinatura de facturas pode ser efectuado por meio do software
de facturação de forma análoga ao registo no portal. No processo de criação de conta deve-se inserir os
seguintes dados aos quais se adicionou os requisitos dos mesmos para facilitar a programação da
plataforma:
• NIPC da empresa associada à conta – 9 dígitos;
• Informação adicional da empresa - máximo de 100 caracteres;
• Email associado à conta – obrigatório;
• Data de validade da conta de assinatura – opcional e no formato AAAA-MM-DD;
• Número máximo de assinaturas – obrigatório e no máximo 450000);
No entanto, qualquer pessoa poderia utilizar software de facturação para se autenticar,
bastando para isso ter as credenciais do responsável da empresa. No entanto, existe um mecanismo de
segurança autenticação.gov baseado no OAuth 2.0., que é um protocolo standard que gere a
autenticação de um utilizador e autoriza o acesso de aplicações externas à conta do mesmo, neste caso
o software de facturação. Para se efectuar a autenticação, o cidadão deve inserir os dados no software
de facturação, na área privada do mesmo. O portal deve redireccionar o utilizador para o portal
autenticação.gov com o pedido de autenticação acompanhado com assinatura digital. Depois o portal
afere o pedido de autenticação com pelos dados do cartão de cidadão e solicita a inserção do PIN.
Durante este tempo, o portal valida as credenciais com recurso ao cartão de cidadão e obtém os
atributos a partir do SCAP (figura 7).
A obtenção de um token passa, primeiro por pedir ao site do FA os seguintes parâmetros de entrada:
• response_type com o valor token;
7
• client_id com o identificador do sistema;
• redirect_uri com o url de redireccionamento para o sistema requerente;
• scope, uma lista de atributos com um espaço entre cada um deles derivados do documento de
identificação;
• authentication_level com o nível de segurança de operação, que é por norma o nível 3, pois o
nível 4 permite o acesso a todos os atributos do cartão de cidadão e deve ser aplicado apenas
com acesso presencial ao cartão de cidadão;
• default_selected_tab define uma opção de autenticação default que não deve ser alterada;
• hidden_tabs que são opções de autenticação escondidas ao utilizador;
• state que é o parâmetro de segurança do OAuth que quando estiver preenchido tem o mesmo
que está no redirect_uri para que o utilizador saiba que a resposta que obteve foi a resposta ao
pedido por si realizado.
O FA valida a autenticação e pede a criação de assinatura ao SAFE com os dados obtidos. Depois, o
FA utiliza a autenticação Implicit Grant para e devolve os seguintes atributos ao requerente:
• token_type com o valor Bearer;
• expires_in com um valor long que representa a validade do access token, que é reduzida e em
caso de expiração o SAFE retorna o erro “400: Bad request” e deverá ser feito um novo pedido;
• access_token é gerado pelo FA para ser utilizado no passo seguinte de obtenção dos atributos;
• state com o valor inserido no pedido inicial para que o software saiba que os atributos de
resposta coincidem com o pedido efectuado.
No caso do retorno de erro 400, deve existir a solicitação de actualização de um novo access token, com
recurso a um refresh token. Quando este for gerado, é devolvido um novo access token e um novo
refresh token. O processo ilustra-se na figura 9.
Quando o sistema de facturação obtém o access token este envia-o para o API (Application
Programming Interface) do FA pelo método POST, enviando um objecto JSON (JavaScript Object
Notation) com os seguintes atributos:
• token com o valor do token obtido;
• attributesName com uma lista de strings opcional;
O esquema do processo de obtenção dos atributos é ilustrado na figura 10.
Figura 11 - Processo de obtenção dos atributos por parte do sistema requerente [3]
O sistema requerente recebe depois um objecto JSON com o token e o identificador do processo de
autenticação:
{"token": "a7ff26fb-392e-433b-94d6-c7182b5e7983",
"authenticationContextId": "b3e98d70-dc69-4e5b-bafa-184da35c0a13"}
Enquanto não o receber e o mesmo estiver a ser processado, no caso de se invocar os métodos do SAFE,
este retorna o erro “HTTP 401 Unauthorized”
8
Para obter estes atributos deve usar o parâmetro GET com o seguinte formato:
<FA-API URL>?token=<token>&authenticationContextId=<authenticationContextId>
Após o FA validar o token é devolvida a lista em JSON com os valores dos atributos obtidos, caso
algum venha devolvido do tipo null significa que não foi obtido em primeira instância. Caso isto
acontece o sistema repete o mesmo pedido a cada dois segundos, após sessenta segundos de tentativas
considera que não se consegue obter. No fim do processo, o software de facturação guarda esta
informação devolvida em objecto JSON e mostra uma mensagem de sucesso na criação de conta de
assinatura. Na figura seguinte ilustra-se de modo gráfico o processo descrito:
A validade da conta de assinatura é o valor mais pequeno entre a validade definida pelo cidadão, a
validade do atributo “Assinatura de facturas electrónicas” do SCAP e a validade máxima da conta no
SAFE (45 dias). No fundo, quando um dos atributos de data expirar, a conta também expira.
9
Figura 13 - Ecossistema autenticacao.gov[2]
O Sistema de Certificação de Atributos Profissionais (SCAP) comunica ao SAFE se o cidadão com esses
dados apresenta o atributo para assinatura de facturas electrónicas, quando esse lhe transmite os
dados. Se o atributo estiver atribuído, o SAFE finaliza o processo de criação de conta de assinaturas
electrónicas. O software de facturação comunica com ecossistema autenticação.gov para assinar
facturas, a partir do SAFE, e para transmitir os dados para criação de conta de assinatura, pelo FA.
Conforme explicitamos na secção anterior, a criação de conta por ser feito tanto pelo software de
facturação como pelo portal autenticação.gov.pt que comunica com o FA. A AMA define que este
software de facturação deve estar integrado com o SAFE e o FA e obter aprovação no processo de
integração e credenciação. A empresa deve ter consigo os documentos necessários especificados na
secção anterior e o atributo requerido em estado activo.
10
Figura 15 - Solicitação de autenticação[3]
Existem ainda sistemas de facturação open source como, por exemplo o Invoice Express e o OpenERR
que pode ser certificado pelo cliente que pretende utilizar este sistema junto da AMA.
11
BIBLIOGRAFIA
3. Agência para a Modernização Administrativa I.P. (sem data). Guia rápido de utilização do OAuth2
do FA.
ÍNDICE
INTRODUÇÃO............................................................................................................................................ 2
1. PROCEDIMENTO E FLUXO DE PASSOS PARA ASSINAR FATURAS[1] ....................................... 2
1.1. Processo de assinatura de PDF no portal autenticação.gov.pt .................................................... 2
1.2. Processo de assinatura de PDF por via do software de facturação.............................................. 3
2. COMO REGISTAR UMA ENTIDADE (RESPONSÁVEL)[1,2] ......................................................... 5
2.1. Criação de conta no portal autenticação.gov.pt............................................................................ 5
2.1.1. Autenticação no portal autenticacao.gov.pt .......................................................................... 5
2.1.2. Processo de pedido de atributo no “Assinatura de Facturas Electrónicas” no SCAP .............. 5
2.1.3. Processo de criação de uma conta de assinatura do SAFE pelo portal autenticação.gov.pt ... 5
2.2. Criação de conta pelo software de facturação .............................................................................. 7
2.2.1. Processo de registo no software de facturação[2,3] ..................................................................... 7
2.2.2. Processo de autenticação de geração de token[3] ....................................................................... 7
3. ESPECIFICAÇÃO DOS WEB SERVICES[2] ....................................................................................... 9
3.2. Arquitectura, requisitos e funcionamento do sistema de assinatura de facturas electrónicas ... 9
4. EMPRESAS QUE FORNECEM O SERVIÇO INTERMÉDIO PARA A ASSINATURA DE
FATURAS.................................................................................................................................................. 11
BIBLIOGRAFIA ........................................................................................................................................ 12
ÍNDICE ..................................................................................................................................................... 12
12