Autorização utilizando Certificados de Cliente SSL

Os dados de autenticação de cliente para certificados SSL X509 podem ser propagadas para o ambiente local e usados para autorização.

Ao implementar um fluxo de mensagens para usar autenticação SSL, é possível verificar certificados de cliente autenticados para autorização. Quando um perfil de segurança é configurado para autorização e configurado no nó de entrada, os dados são passados para um gerenciador de segurança. Um gerenciador de segurança do nó de integração recebe partes relevantes do certificado para autorização e o envia ao analisador de propriedades. Durante a autenticação, os dados da identidade ou do token de segurança que são fornecidos substituem os valores nos campos de identidade da árvore de propriedades. Estes dados podem ser de um cabeçalho de transporte Basic-Auth ou um token WS-Security, por exemplo. Os dados do parâmetro no certificado substituem os campos na árvore de propriedades. Os campos a seguir são reconfigurados com novos dados:
  • O IdentitySourceType é configurado como nome de usuário.
  • O IdentitySourceToken é configurado para o nome do assunto do certificado do cliente.
  • O IdentitySourceIssuedBy é configurado para o nome do emissor do certificado de cliente.

Quando você usa os nós SOAPInput, HTTPInput, SCAInputou TCPIPServerInput , os campos árvore de propriedades contêm as informações do certificado do cliente. A propagação não é ativada automaticamente, mas quando é ativada, um certificado é processado em todo o fluxo de mensagens e propagado para os nós de saída ou de solicitação. Preenchendo o ambiente local, os dados do certificado são disponibilizados para o restante do fluxo de mensagens.

Um nível mais alto de autenticação (como Basic-Auth ou WS-Security) pode sobrescrever a árvore de propriedades. Em razão dos dados da árvore de propriedades ausentes, você não consegue autorizar o cliente no nó de entrada. No entanto, você pode usar um nó SecurityPEP para localizar os campos de autenticação (ou outros certificados) no ambiente local para fazer a autorização. É possível localizar certificados de cliente usando a variável local LocalEnvironment.input_node_name.Input.TransportSecurity.ClientAuth.Certificate, em que input_node_name é SOAP, HTTP ou TCPIP.

Nós diferentes acessam o certificado de cliente de maneiras diferentes:
  • Use um nó SecurityPEP para autorização do campo subject em um certificado cliente que é recebido por um nó SOAPInput . Especifique o XPath a seguir na propriedade location token location em um nó SecurityPEP :
    $LocalEnvironment/SOAP/Input/TransportSecurity/ClientAuth/Certificate/Subject 
    Para obter mais informações sobre o nó SecurityPEP , consulte SecurityPEP
  • Use um nó JavaCompute para recuperar o campo issuer em um certificado cliente que é recebido por um nó HTTPInput .
    String clientCertSubject = localEnv.getFirstElementByPath("HTTP/Input/TransportSecurity/ClientAuth/Certificate/Issuer").getValueAsString(); 
    Para obter mais informações sobre o nó JavaCompute , consulte nóJavaCompute
  • Use um nó Compute para configurar o campo subject de um certificado que é recebido por um nó TCPIPServerInput .
    SET LocalEnvironment.TCPIP.Input.TransportSecurity.ClientAuth.Certificate.Subject = 'BROKERUSER'; 
    Para obter informações adicionais sobre o nó Compute , consulte Nó Compute.