O sistema Foundation Saúde, esta em conformidade com o Protocolo de Transações Unimed on-line (PTU) versão 6.0 e oferece suporte a comunicação por meio de WebServices com segurança (certificado digital), exigidos pela Unimed do Brasil.

Configurações

Para a configuração dos Web Services externos (serviços disponibilizados pela Unimed Brasil), é utilizado o arquivo foundation-exchange.properties. Neste arquivo, será configurando o namespace e a URL do serviço da Unimed do Brasil, para cada tipo de mensagem. Este arquivo deve ser gravado obrigatoriamente no diretório jboss-4.2.3.GA/server/default/conf

Nesse arquivo é necessário configurar a seguinte propriedade: 


Mensagens Contempladas

Serviços suportados pelo Foundation Saúde para receber requisições.

Transação - PTU 6.0WebService
Autorização de Ordem de ServiçoPtuServiceOrderAuthorizationWSv6000
Consulta de Dados do BeneficiárioPtuInsuranceUserQueryWSv6000
CancelamentoPtuCancellationWSv6000
Resposta de AuditoriaPtuAuditoryWSv6000
Status da TransaçãoPtuTransactionStatusWSv6000
Pedido de Complemento de AutorizaçãoPtuAuthorizationComplementWSv6000
Consulta transações Respondidas pelo WSDPtuConsultA1100WSv6000
Pedido de InsistênciaPtuInsistenceWSv6000
Pedido de AutorizaçãoPtuAuthorizationWSv6000
Consulta de PrestadoresPtuProviderQueryWSv6000
Requisição de Contagem de BeneficiáriosPtuActiveInsuranceUsersQueryWSv6000
Comunicação de Decurso de PrazoPtuCommunicationProcessTermWSv6000
Ordem de ServiçoPtuServiceOrderWSv6000

Configuração dos WebServices

Para a configuração dos Web Services externos (serviços disponibilizados pela Unimed Brasil), é utilizado o arquivo foundation-exchange.properties. Neste arquivo, será configurando o namespace e a URL do serviço da Unimed do Brasil, para cada tipo de mensagem.

Este arquivo deve ser gravado obrigatoriamente no diretório jboss-4.2.3.GA/server/default/conf

O formato para configuração do "namespace", exemplo:

com.totvs.foundation.exchange.connector.ptu.implementation.v01.DefaultExternalConnector.RespostaAuditoria.namespace.URI = http://ptu.unimed.com.br/respostaauditoria/webservices/V3_01_35.

O formato para configuração da "URL" do "Web Service Externo", exemplo:

com.totvs.foundation.exchange.connector.ptu.implementation.v01.DefaultExternalConnector.OrdemServico.WSDL = https://wsd.homologacao.unimed.com.br/wsdintercambio/intercambioservices/ptu_v3_01_35/RespostaAuditoria?wsdl 

Em ambos os casos, a alteração é exclusiva a coluna da direita, sendo que a coluna a esquerda permanece inalterada.

 


7.4 Envio de Mensagem por WebService

O envio de mensagens de serviço é feito por meio de "Web Services" com certificado de segurança. Os serviços disponíveis e a estrutura da mensagem são obtidos por intermédio do endereço: “http://<host-name>[:port]/jbossws/services”. 
Todos "Web Services" relativos aos serviços "PTU", estão sob o contexto “htz-foundation”.

Exemplo: 

Endereçohttp://localhost/jbossws/services 

Transação

Versão

Caminho do WebService

Pedido de Autorização

3.01.35

https://localhost/htz-foundation/PtuAuthorizationWSv30135?wsdl

1.01.40

https://localhost/htz-foundation/PtuAuthorizationWSv10140?wsdl

Pedido de Complemento de Autorização

3.01.35

https://localhost/htz-foundation/PtuAuthorizationComplementWSv30135?wsdl

1.01.40

https://localhost/htz-foundation/PtuAuthorizationComplementWSv10140?wsdl

Pedido de Insistência

3.01.35

https://localhost/htz-foundation/PtuInsistenceWSv30135?wsdl

1.01.40

https://localhost/htz-foundation/PtuInsistenceWSv10140?wsdl

Cancelamento

3.01.35

https://localhost/htz-foundation/PtuCancellationWSv30135?wsdl

1.01.40

https://localhost/htz-foundation/PtuCancellationWSv10140?wsdl

Consulta de dados do Beneficiário

3.01.35

https://localhost/htz-foundation/PtuInsuranceUserQueryWSv30135?wsdl

 

Consulta Prestador

3.01.35

https://localhost/htz-foundation/PtuProviderQueryWSv30135?wsdl

Ordem de Serviço

3.01.35

https://localhost/htz-foundation/PtuServiceOrderWSv30135?wsdl

Resposta de Pedido de Auditoria

3.01.35

https://localhost/htz-foundation/PtuAuditoryWSv30135?wsdl

Pedido de Complemento de Autorização Compatibilidade

3.01.35

https://localhost/htz-foundation/PtuAuthorizationComplementCompatibility?wsdl

Contagem de Beneficiários

3.01.35

https://localhost/htz-foundation/PtuActiveInsuranceUsersQueryWSv30135?wsdl

Observação: A Unimed Brasil somente realiza comunicação com "WebServices", publicados na porta 80 e 443 com certificado digital.

7.5 Certificado Digital

A seguir são apresentados os passos para criação e distribuição do Certificado Digital de segurança para os "WebServices". Será usada a ferramenta "Keytool", distribuída junto com a instalação "Java JDK".

Observação: A criação do certificado digital deve ser feita apenas para o uso dos módulos "TISS". Para o uso do módulo "PTU", o certificado deve ser solicitado a Unimed do Brasil.


7.5.1 Criação do Contenedor de Certificados (Keystore)

Utilizando o "Keytool", digite a seguinte linha de comando (cmd):

keytool -genkeypair -alias keystore -dname "<distinguished-name>" -keypass 
medical -keystore c:/totvs/jboss4.2.3.GA/server/default/conf/server.keystore -storepass medical -validity 365

Os valores grifados devem ser substituidos:

Segue abaixo um exemplo: 
CN = foundation.dominio_operadora.com.br 
OU = Totvs Saúde 
O = Totvs 
L = Joinville 
S = SC 
C = BR 

Estes atributos formam a seguinte "string" para preenchimento do valor: “CN=foundation.dominio_operadora.com.br, OU=Totvs Saude,O=Totvs, L=Joinville, ST=SC, C=BR”. 
Nota: Lembre-se de usar aspas na linha de comando para strings com espaços.

Atenção: Verifique se o arquivo “server.keystore” foi criado no diretório escolhido (-keystore).

Exemplo de criação do keystore server e client:

>keytool -genkeypair -alias keystore -dname "CN=LOCALHOST, OU=Totvs Saude,O=Totvs, L=Joinville, ST=SC, C=BR" -keypass medical -keystore "client.keystore" -storepass medical -validity 365

>keytool -genkeypair -alias keystore -dname "CN=LOCALHOST, OU=Totvs Saude,O=Totvs, L=Joinville, ST=SC, C=BR" -keypass medical -keystore "server.keystore" -storepass medical -validity 365


7.5.2 Criação do Certificado

Para extrair o certificado do contenedor digite a seguinte linha de comando (cmd) :

keytool -exportcert -alias keystore -file c:/totvs/jboss-4.2.3.GA/server/default/conf/certificate.cer 
-keystore c:/totvs/jboss-4.2.3.GA/server/default/conf/keystore.keystore -storepass medical

Segue abaixo detalhes de cada propriedade:

 

 

Atenção: Verifique se o arquivo “certificate.cer” foi criado no diretório escolhido (-file).

 

Exemplo de criação dos certificados:

>keytool -exportcert -alias keystore -file "c:/totvs/jboss-4.2.3.GA/server/default/conf/client.cer" -keystore "client.keystore" -storepass medical

>keytool -exportcert -alias keystore -file " c:/totvs/jboss-4.2.3.GA/server/default/conf /server.cer" -keystore "server.keystore" -storepass medical


7.5.3 Importação dos Certificados

Cada cliente autorizado a receber ou enviar mensagens "Web Service" deve fornecer seu arquivo de certificado pra ser adicionado à lista de clientes confiáveis.

Também o cliente precisa receber o certificado do provedor(host) dos serviços "Web Service" para adicioná-lo a sua lista de confiabilidade.

Tendo recebido o arquivo do cliente, executar a seguinte linha de comando (cmd): 
keytool -importcert -alias client_truststore -file “<certificado-cliente > -keypass “<senha-cliente>” -keystore “c:/totvs/jboss-4.2.3.GA/server/default/conf/truststore.truststore” 
-storepass medical -noprompt -trustcacerts

Os valores grifados devem ser substituídos, e para palavras-chave iguais devem ser os mesmos usados anteriormente (§ 3.5.1, § 3.5.2):

 

 

Atenção: Verifique se o arquivo ”truststore.truststore” foi criado no diretório escolhido (-storepass).

 

Exemplo de importação dos certificados

Importando certificado do cliente no servidor

keytool -importcert -alias clientlocal -file "client.cer" -keypass medical -keystore "server.truststore" -storepass medical -noprompt –trustcacerts

Importando certificado do servidor no cliente

keytool -importcert -alias server -file "server.cer" -keypass medical -keystore "client.truststore" -storepass medical -noprompt –trustcacerts

O proximo passo é copiar os arquivos “server.keystore” e “server.truststore”, para o diretório ”C:/totvs/jboss-4.2.3.GA/server/default/conf”.



7.6 Configuração de Segurança no Servidor de Aplicações

A seguir são mostrados os passos para habilitar, ou desabilitar, o uso do certificado digital. Por padrão algumas configurações estão comentadas para os clientes que utilizarem somente os módulos "TISS" e "SIB" sem o certificado digital. Caso o cliente utilize os módulos "SIB" e "TISS" sem certificado, será necessário fazer as configurações da seção 8.6.2.

7.6.1 Habilitar Certificado Digital - PTU/Tiss/SIB

Na estrutura ”C:/totvs/jboss-4.2.3.GA/server/default/conf”, a partir do diretório de instalação do "JBOSS", é preciso verificar a configuração de dois arquivos: 

Observação: Para configurar o certificado para o módulo do "PTU", deve copiar os arquivos  enviados pela Unimed do Brasil para o diretório “c:\totvs\jboss-4.2.3.GA\server\default\conf”. O nome do arquivo que vai ser configurado é igual ao domínio que é informado no parâmetro “-b”, no arquivo de inicialização do "JBOOS", conforme a seção 6 - Inicialização e Acesso.Ex.: foundation.dominio_operadora.com.br.javaks

 

<!-- ... -->

 

<mbean code="org.jboss.security.plugins.JaasSecurityDomain"

    name="jboss.web:service=SecurityDomain">

  <constructor>

    <arg type="java.lang.String" value="JBossWS-SSL"/>

  </constructor>

  <attribute name="KeyStoreURL">

      ${jboss.server.home.dir}/conf/keystore.keystore

  </attribute>

  <attribute name="KeyStorePass">medical</attribute>

  <attribute name="TrustStoreURL">

    ${jboss.server.home.dir}/conf/truststore.truststore

</attribute>

  <attribute name="TrustStorePass">medical</attribute>

  <depends>jboss.security:service=JaasSecurityManager</depends>

</mbean>

 

<!-- ... -->

 

Observação: Para a DISTRO com certificado, este arquivo já se encontra configurado.

Na estrutura “/server/default/deploy”, a partir do diretório de instalação, verificar, comentar o arquivo “properties-service.xml”, conforme mostrado abaixo:

<server>

<!-- ... -->

  <mbean code="org.jboss.varia.property.SystemPropertiesService"

      name="jboss:type=Service,name=SystemProperties">

    <!-- ... -->

    <attribute name="Properties">

        <!-- javax.net.ssl.trustStore=<caminho-truststore> -->

    </attribute>

    <!-- ... -->

  </mbean>

  <!-- ... -->

</server>

Na estrutura “server/default/deploy/jboss-web-deployer”, a partir do diretório de instalação, verificar, comentar o arquivo “server.xml” para o serviço “jboss.web”, conforme mostrado abaixo:

<Server>

  <!-- ... -->

  <Service name="jboss.web">

    <!--

    <Connector port="<porta-ssl>" protocol="HTTP/1.1" SSLEnabled="true"

        maxThreads="150" scheme="https" secure="true"

        keystoreFile="<caminho>/keystore.keystore"

            keystorePass="<senha-keystore>"

        clientAuth="want" sslProtocol="TLS"

        truststoreFile="<caminho>/truststore.truststore"

            truststorePass="<senha-truststore>"/>

-->

  </Service>

</Server>

Na estrutura “/server/default/deploy/jbossws.sar/jbossws.beans/META-INF”, a partir do diretório de instalação, verificar, comentar o arquivo “jboss-beans.xml”, referente a seguranças de portas, conforme mostrado abaixo:

<deployment ... >

  <!-- ... -->

  <bean name="WSServerConfig" class="org.jboss.wsf.stack.jbws.NativeServerConfig">

    <!--

    <property name="webServiceSecurePort"><porta-ssl></property>

    -->

  </bean>

  <!-- ... -->

<deployment>