• Nenhum resultado encontrado

4 PROVA DE CONCEITO

4.3 P ROTÓTIPO

4.3.3 Required Documents Policy (RDP)

4.3.3.3 Definição dos Documentos

A definição de documentos foi dividida em três subsecções: uma para os documentos de entrada (a fornecer pelo cidadão), outra para os documentos de saída (produzidos pelo serviço) e uma terceira com a definição dos atributos de agregação que permitem verificar que os documentos se referem a uma mesma entidade. O Excerto 4 apresenta um exemplo da definição de documentos numa RDP, no caso concreto para o serviço Pagamento do IMT, em que existe agregação de documentos com base em atributos ofuscados.

Para a identificação dos documentos, elemento utilizámos três identificadores: um URI que o identifica globalmente o tipo de documento, um Id que serve para identificar o documento no contexto da RDP e um nome amigável para permitir a identificação do documento pelo cidadão, que podem ser observados nos elementos <InputDocument> e

<OutputDocument>, no Excerto 4, que definem os documentos de entrada e de saída, respetivamente.

Quanto à identificação das IPS emissoras dos documentos considerámos três situações: (i) o documento ser emitido por uma única IPS bem conhecida, o que acontece, por exemplo, com a emissão da Declaração de Situação Contributiva do Cidadão, ilustrado no Excerto 4; (ii) que o documento pode ser emitido por um serviço de determinado tipo numa IPS de um determinado sector, o que acontece por exemplo com os pagamentos que podem ser efetuados em serviços do tipo “Pagamento de Serviços” prestados por bancos (no protótipo só existe um banco, mas o Chappie reage como se houvesse vários); (iii) que o documento pode ser emitido por qualquer IPS, como é o caso do documento com os dados para realizar um pagamento, que qualquer entidade de qualquer sector pode emitir; e por fim (iv) que o documento tem de ser produzido pelo cidadão, como é o caso do Contrato de Compra e Venda, por exemplo.

Para a identificação dos atributos obrigatórios e dos atributos de agregação, usamos um identificador que identifica cada atributo de forma única no contexto da RDP, um nome amigável para que o cidadão saiba o que é o atributo, o que pode ser observado nos elementos <MandatoryDocAttribute> no Excerto 4. Em simultâneo fornece-se uma expressão XPath que permite localizar o elemento no documento correspondente ao atributo em causa.

A definição dos atributos de agregação é feita com a indicação em cada atributo se ele é ou não um atributo de agregação e, caso seja, incluindo a identificação da respetiva unidade de agregação. Nas definições das Unidades de Agregação, elementos

<AggregationUnit> no Excerto 4, indica-se se os respetivos atributos devem ou não ser alvo de ofuscação e, caso sejam, podem ser indicados o algoritmo e a codificação a usar.

Excerto 4

Secção de especificação de documentos na RDP do serviço Pagamento do IMT. <ns0:Documents>

<ns0:InputDocuments>

<!--Declaração de situação contributiva das Segurança Social--> <ns0:InputDocument DocId="SS-SContrib-In-01"

FriendlyName="Declaração de Situação Contributiva" DocURI="http://ssocial.pt/Docs/DeclaracaoSContrib">

<ns0:Description>Documento que comprova que o cidadão não possui dívidas à Segurança Social.</ns0:Description>

<ns0:Providers>

<ns0:Provider Type="IndividualProvider" >

<ns0:IndividualProvider ProviderName="SegurancaSocial"

ServiceName="Serviço de Pedidos de Declaração de Situação Contributiva">

</ns0:Connection> </ns0:IndividualProvider> </ns0:Provider> </ns0:Providers> <ns0:MandatoryDocAttributes> <ns0:MandatoryDocAttribute MdaId="SC-NSS"

FriendlyName="Número da Segurança Social" AggregationAttr="true" AggUnitRef="NSS" > <ns0:XPathExpr>//*[@AttId='nss']</ns0:XPathExpr> </ns0:MandatoryDocAttribute> <ns0:MandatoryDocAttribute MdaId="SitContributiva" FriendlyName="Situação Contributiva" AggregationAttr="false" > <ns0:XPathExpr>//*[@AttId='sitcontributiva']</ns0:XPathExpr> </ns0:MandatoryDocAttribute> <ns0:MandatoryDocAttribute MdaId="DataSitContributiva"

FriendlyName="Data da Situação Contributiva" AggregationAttr="false" >

<ns0:XPathExpr>//*[@AttId='datasitcontrib']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

</ns0:MandatoryDocAttributes> </ns0:InputDocument>

<!--Declaração de modelo1 a preencher pelo cidadão--> <ns0:InputDocument DocId="DCA-Mod1-In-02" FriendlyName="Declaração Modelo 1" DocURI="http://financas.pt/docs/IMT-Mod1"> <ns0:Providers> <ns0:Provider Type="CitizenProvider"> <ns0:CitizenProvider> <ns0:Download> http://localhost:8082/Financas/Download/Modelo1.doc</ns0:Download> </ns0:CitizenProvider> </ns0:Provider> </ns0:Providers> <ns0:MandatoryDocAttributes/> </ns0:InputDocument> <!--Autenticação do cidadão--> <ns0:InputDocument DocId="F-IMT-AId-In-03"

FriendlyName="Asserção de Identidade do Cidadao" DocURI="http://notario.pt/Docs/AsserçãoIdentidade"> <ns0:Providers> <ns0:Provider Type="SectorProvider"> <ns0:SectorProvider SectorName="AuthenticationServices" ServiceType="EmissaoAssercaoIdentidade"/> </ns0:Provider> </ns0:Providers> <ns0:MandatoryDocAttributes> <ns0:MandatoryDocAttribute MdaId="NIF"

FriendlyName="Número de Identificação Fiscal" AggregationAttr="false" >

</ns0:MandatoryDocAttribute>

<ns0:MandatoryDocAttribute MdaId="NSS"

FriendlyName="Número de Identificação da Segurança Social" AggregationAttr="true" AggUnitRef="NSS" >

<ns0:XPathExpr>//*[@AttId='NSS']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

<ns0:MandatoryDocAttribute MdaId="PKeyCidadao"

FriendlyName="Chave Pública para autenticação do cidadao" AggregationAttr="false" >

<ns0:XPathExpr>//*[@AttId='PKeyCidadao']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

</ns0:MandatoryDocAttributes> </ns0:InputDocument>

<!--Comprovativo da realização do pagamento emitido pelo banco.Este documento deve ser entrgue na resposta à solicitação adicional-->

<ns0:InputDocument DocId="B-CPagamento-In-04" FriendlyName="Comprovativo de pagamento" DocURI="http://Banco.pt/ComprovPagamento"> <ns0:SolicitacaoAdicional RefDocToUse="DadosPagamento"/> <ns0:Providers> <ns0:Provider Type="SectorProvider"> <ns0:SectorProvider SectorName="Banca" ServiceType="Pagamento de Serviços"/> </ns0:Provider> </ns0:Providers> <ns0:MandatoryDocAttributes> <ns0:MandatoryDocAttribute MdaId="CP-Entidade"

FriendlyName="Entidade para pagamento" AggregationAttr="true"

AggUnitRef="EntPagamento" > <ns0:XPathExpr>//*[@AttId='Entidade']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

<ns0:MandatoryDocAttribute MdaId="CP-Referencia"

FriendlyName="Referencia para pagamento" AggregationAttr="true"

AggUnitRef="RefPagamento" > <ns0:XPathExpr>//*[@AttId='Referencia']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

<ns0:MandatoryDocAttribute MdaId="CP-Valor"

FriendlyName="Valor para pagamento" AggregationAttr="false" >

<ns0:XPathExpr>//*[@AttId='Valor']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

<ns0:MandatoryDocAttribute MdaId="DHPagamento"

FriendlyName="Instante em que o pagamento foi realizado" AggregationAttr="false" >

<ns0:XPathExpr>//*[@AttId='DHPagamento']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

</ns0:InputDocuments>

<ns0:OutputDocuments>

<!--Documento enviado na solicitação adicional, com os dados para a realização do pagamento-->

<ns0:OutputDocument DocId="DadosPagamento"

FriendlyName="Dados para realizar o pagamento" DocURI="http://Banco/Docs/DadosPagamento"> <ns0:SolicitacaoAdicional/>

<ns0:MandatoryDocAttributes>

<ns0:MandatoryDocAttribute MdaId="DP-Entidade"

FriendlyName="Entidade para pagamento" AggregationAttr="true"

AggUnitRef="EntPagamento" > <ns0:XPathExpr>//*[@AttId='Entidade']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

<ns0:MandatoryDocAttribute MdaId="DP-Referencia"

FriendlyName="Referencia para pagamento" AggregationAttr="true"

AggUnitRef="RefPagamento" > <ns0:XPathExpr>//*[@AttId='Referencia']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

<ns0:MandatoryDocAttribute MdaId="Valor"

FriendlyName="Valor para pagamento" AggregationAttr="false" >

<ns0:XPathExpr>//*[@AttId='Valor']</ns0:XPathExpr> </ns0:MandatoryDocAttribute>

</ns0:MandatoryDocAttributes> </ns0:OutputDocument>

<!--Resultado final da execução do serviço-->

<ns0:OutputDocument DocId="ComprovativoPagamentoIMT"

FriendlyName="Comprovativo de pagamento do IMT" DocURI="http://financas.pt/docs/CPagamentoIMT"> <ns0:MandatoryDocAttributes> </ns0:MandatoryDocAttributes> </ns0:OutputDocument> </ns0:OutputDocuments> <ns0:AggregationDefinition> <ns0:AggregationUnit AggId="NSS"

FriendlyName="Número da Segurança Social" ToObfuscate="true">

<ns0:Description>

Agregar documentos com base no Número da Segurança Social</ns0:Description> <ns0:Obfuscation Algorithm="AES/CFB8/NoPadding" Encoding="Base64"/> </ns0:AggregationUnit>

<ns0:AggregationUnit AggId="EntPagamento"

FriendlyName="Entidade para receber o pagamento" ToObfuscate="false">

Verificar se a entidade no comprovativo de pagamento coincide com a entidade no documento com os dados para pagamento.</ns0:Description>

</ns0:AggregationUnit>

<ns0:AggregationUnit AggId="RefPagamento"

FriendlyName="Referência para pagamento" ToObfuscate="false"> <ns0:Description>

Verificar se a referência no comprovativo de pagamento coincide com a referencia no documento com os dados para pagamento.</ns0:Description>

</ns0:AggregationUnit> </ns0:AggregationDefinition> </ns0:Documents>

Documentos relacionados