MicroStrategy ONE
Integração de armazenamento de certificados com MicroStrategy Library
O Certificate Store serve principalmente como uma fonte de dados exposta por meio de uma API REST. Esta fonte de dados fornece os dados para exibição na seção Certificados da janela Estação de Trabalho.
Integração com MicroStrategy Library
Para integrar o Armazenamento de Certificados com MicroStrategy Library, você pode selecionar Armazenamento de Certificados ao instalar Library. Isso garantirá que a API REST do Armazenamento de Certificados pareça fazer parte de todo o MicroStrategy Conjunto de API REST.
Portanto, embora pareça que a API REST do armazenamento de certificados (/api/serviceCertificados) é servido a partir do mesmo endpoint da web que as outras APIs; na realidade, solicitações feitas ao /api/serviceCertificados endpoint são realmente redirecionados para o servidor de armazenamento de certificados. Esse redirecionamento é realizado por um servlet proxy configurado no Library arquivo web.xml.
O servlet é configurado pelo instalador e pega todas as URLs que correspondem à propriedade url-pattern e as redireciona para a URL especificada no arquivo alvoUri propriedade. Se você estiver alterando essas configurações para adicionar ou remover suporte SSL, deverá atualizar o alvoUri propriedade para que especifique "http" ou "https".
Se certificados autoassinados forem usados, as propriedades trustAllCertificates e disableHostnameVerification deverão ser configuradas como verdadeiro. Se um usuário mudar de certificados autoassinados para certificados atribuídos por CA, ele deverá definir ambos os certificados como falso para receber os benefícios do certificado atribuído pela CA.
<servlet>
<servlet-name>CertificateManagerService</servlet-name>
<servlet-class>org.mitre.dsmiley.httpproxy.ProxyServlet</servlet-class>
<init-param>
<param-name>targetUri</param-name>
<param-value>http://localhost:5050/api/serviceCertificates</param-value>
</init-param>
<init-param>
<param-name>log</param-name>
<param-value>true</param-value>
</init-param>
<!-- SSL SUPPORT START - The following group of parameters are only relevant when the targetUri above uses the "https" protocol. -->
<init-param>
<param-name>truststorePath</param-name>
<param-value>{PATH_TO_TRUSTSTORE}</param-value>
</init-param>
<init-param>
<param-name>truststoreType</param-name>
<param-value>PKCS12</param-value>
</init-param>
<init-param>
<param-name>truststorePassword</param-name>
<param-value>{TRUSTSTORE_PASSWORD_OR_BLANK_IF_NONE}</param-value>
</init-param>
<init-param>
<param-name>keyPassword</param-name>
<param-value>{KEY_PASSWORD_OR_BLANK_IF_NONE}</param-value>
</init-param>
<!-- DEVELOPMENT - START - The following parameters are for development/debugging use only and should not be set to TRUE in production systems. -->
<init-param>
<param-name>trustAllCertificates</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>disableHostnameVerification</param-name>
<param-value>false</param-value>
</init-param>
<!-- DEVELOPMENT END -->
<!-- SSL SUPPORT END -->
</servlet>
<servlet-mapping>
<servlet-name>CertificateManagerService</servlet-name>
<url-pattern>/api/serviceCertificates/*</url-pattern>
</servlet-mapping>
Onde:
- caminho do armazenamento confiável é usado para carregar o armazenamento confiável que é tratado por ServletContext.getResourceAsStream().
As regras de caminho para este método podem ser encontradas no Documentação Oracle. O caminho deve começar com uma barra (/) e é interpretado como relativo à raiz de contexto atual ou relativo ao /META-INF/recursos diretório de um arquivo JAR dentro do arquivo /WEB-INF/lib diretório. O separador de caminho é uma barra (/) no Unix e no Windows.
- tipo de armazenamento confiável aceita uma variedade de tipos de keystore/truststore. Para obter uma lista completa, consulte o Documentação Java SE. MicroStrategy suporta JKS e PKCS12.
Propriedades de configuração do armazenamento de certificados
As configurações do armazenamento de certificados podem ser alteradas editando o arquivo aplicação.propriedades arquivo. Todos os parâmetros diferenciam maiúsculas de minúsculas e devem ser inseridos corretamente para que as alterações tenham efeito.
O aplicação.propriedades pode ser encontrado em:
- Windows: <INSTALL_PATH>\MicroStrategy\Gerenciador de Certificados
- Linux: <INSTALL_PATH>/Gerenciador de Certificados
Este arquivo inclui as seguintes propriedades:
Propriedade | Detalhes | Observações |
---|---|---|
endereço do servidor |
Endereço IP que o Certificate Store usará para escutar solicitações de API REST recebidas. Por padrão, é definido como 127.0.0.1 para restringir o acesso a processos na mesma máquina. Para escutar todos os endereços IP, especifique 0.0.0.0 como endereço. |
Se você modificar qualquer uma dessas três configurações, certifique-se de fazer a alteração correspondente no alvoUri propriedade do servlet proxy descrito acima.
|
porta do servidor |
A porta IP que o Certificate Store usará para escutar solicitações de API REST recebidas. |
|
server.servlet.context-path |
Caminho para o ponto final do Armazenamento de Certificados. |
|
servidor.ssl.key-store |
O caminho para o arquivo de armazenamento de chaves PKCS12 ou PFX, por exemplo caminho de classe:/opt/mstr/MicroStrategy/instalar/ seu-cert.crt |
Essas configurações serão relevantes somente se a API REST do Certificate Store estiver em execução por HTTPS.
|
servidor.ssl.key-store-senha |
Senha para o arquivo de armazenamento de chaves |
|
servidor.ssl.key-senha |
Senha da chave contida no keystore |
|
servidor.ssl.keyStoreType |
Tipo de keystore, o padrão é PKCS12 |
|
servidor.ssl.key-alias |
Alias da chave no keystore, usado se o keystore contiver múltiplas chaves |
|
máx.certificado.recuperação.tempo.segundos |
Quantidade máxima de tempo para permitir a recuperação de todos os certificados de serviços definidos. O padrão é 30 segundos, o que deve ser tempo mais que suficiente para os serviços definidos em 11.1. |
|
cônsul.host |
Endereço IP do agente Consul |
Estas configurações controlam qual agente Consul é contatado para a lista de serviços definidos e com que frequência o agente é contatado para atualizar essa lista. As configurações padrão devem ser suficientes para a maioria das instalações e os usuários não devem precisar alterá-las. |
cônsul do porto |
Porta IP do agente Consul |
|
cônsul.initialDelay.milliseconds |
Atraso (em milissegundos) antes da conexão inicial com o Consul |
|
cônsul.fixedRate.milliseconds |
Intervalo (em milissegundos) entre cada conexão com a Cosul |
|
wss.servidor.host |
Endereço IP do Socket.io |
Estas duas configurações controlam o Soquete.io endpoint ao qual as GUIs podem se conectar para receber assíncrono. atualizações sobre os serviços existentes e o estado de seus certificados. Observe que o firewall deve permitir acesso WebSocket a este endpoint (semelhante ao Soquete.io conexão no Collaboration Server) |
wss.server.port |
Porta IP Socket.io |
|
primavera.mail.host |
Endereço IP do servidor de correio |
Essas configurações configuram como o Armazenamento de Certificados se comunica com um host de email. O padrão é usar SMTP, mas o usuário deve fornecer o endereço IP, etc. Por padrão, isso não é configurado pelo instalador e deve ser habilitado manualmente pelo usuário. |
primavera.mail.port |
Porta IP do servidor de correio |
|
spring.mail.protocolo |
Protocolo de servidor de correio (SMTP) |
|
spring.mail.properties.mail.smtp.connectiontimeout |
Tempo limite para conexão com o host de e-mail |
|
spring.mail.properties.mail.smtp.timeout |
|
|
spring.mail.properties.mail.smtp.writetimeout |
Tempo limite de envio de dados para o host de email |
|
spring.mail.default-encoding |
Codificação usada para enviar dados ao host de email |
|
expiração.notificação.dias |
|
O Certificate Store verifica periodicamente os certificados encontrados para procurar aqueles que expiraram ou irão expirar no próximo {expiração.notificação.dias} dias. Essas configurações controlam esse processo de digitalização de certificados e definem qual endereço de e-mail receberá as notificações. Vários endereços de e-mail podem ser especificados por uma lista separada por vírgulas, por ex. expiração.notificação.email=usuário1@domínio.net,usuário2@domínio.net Nenhuma notificação será enviada se expiry.notification.email estiver vazio. expiry.notification.email.from deve ser especificado para que os e-mails sejam enviados com sucesso. |
expiração.check.initialDelay.milliseconds |
Atraso (em milissegundos) antes que os certificados sejam verificados em busca de certificados expirados. |
|
expiração.check.fixedRate.milliseconds |
Intervalo entre cada verificação de certificados expirados/expirados. |
|
expiração.notificação.e-mail |
|
|
expiração.notificação.email.de |
|
|
nome do perfil |
Uma configuração da estrutura Spring usada para selecionar um perfil no aplicativo. |
Um perfil coleta diferentes propriedades de configuração em um arquivo para que possam ser aplicadas juntas. Não é recomendado alterar o perfil para algo diferente de cutucar. |
Considerações em ambientes clusterizados
O processo de armazenamento de certificados normalmente escuta solicitações de API REST em localhost:5050. O servidor está vinculado à interface de loopback para que apenas processos na mesma máquina possam fazer solicitações de API.
Em um ambiente clusterizado, há um processo de Armazenamento de Certificados em cada nó. Como o Certificate Store cria seus dados a partir dos serviços registrados no Consul, e o Consul contém entradas para todos os nós, o Certificate Store conterá entradas para todos os serviços no cluster e não para os serviços no nó atual. No entanto, como alguns serviços estão vinculados ao endereço de loopback, alguns certificados não poderão ser recuperados de outros nós do cluster.
Outro Library Considerações
Se seu Library instalação não possui armazenamento de certificados, o servlet proxy ainda pode estar configurado, no entanto, o alvoUri não apontará para um endpoint válido. Os usuários com esta configuração receberão um erro 502 Bad Gateway (ou outros erros HTTP de nível 5xx). Para resolver esses erros, você pode instalar o Certificate Store ou remover a configuração do servlet proxy do Library arquivo web.xml.