No Suricato podemos efetuar a autenticação do usuário utilizando o SAML. Para isso devemos realizar a sua configuração na aba: CONFIGURAÇÕES | CONFIGURAÇÕES GERAIS | SAML.
Na arquitetura Suricato, SP (Service Provider) é o sistema Suricato e IdP (Identity Provider) é o software terceiro ao qual o Suricato fará a identificação e autenticação do usuário. A implementação do SAML no Suricato proporciona o recurso Web Browser Single-Sign-On (SSO)
Uma ver autenticado no IdP(Provedor de Identidade), na sessão do browser não é mais requerida a autenticação. Mesmo que o usuário tenha logado em outro sistema com SAML.
Abaixo temos um Fluxograma do funcionamento do SAML integrado ao Suricato
Exemplo - Fluxograma: Usuário não autenticado
Exemplo - Fluxograma: Usuário autenticado
Disponível agora uma tela de login como ADMIN. Acessar: "https://IP_SERVIDOR/scriptcase/app/suricato/ctrloginadmin/ctrloginadmin.php" Autenticar com a senha do ADMIN
Exemplo - Tela Suricato
Legenda:
Confirma Dados
Configurar o método de autenticação para SAML em: Configurações | Configurações Gerais | Configurações Gerais do Sistema
Exemplo - Seleção de Método de Autenticação
Na ABA Configuração é parametrizado o Suricato como Service Provider (SP). Copiar do servidor e importar o certificado e a chave privada configurado no Suricato SURICATO_HOME\apache\certif
O botão Metadata realiza download do arquivo suricato_serviceprovider.xml. Este arquivo é o metadata do Suricato como SP (Service Provider). E deve ser fornecido para o software IdP.
É possível configurar manualmente Certificado e Chave Privada copiando e colando no espaço em branco o Certificado e a Chave Privada:
Exemplo - Configuração SAML
Legenda:
Na ABA IDP é parametrizado o software ao qual o Suricato será integrado. A configuração pode ser manual, ou por meio da importação do arquivo Metadata fornecido pelo IdP.
No bloco Metada é configuração para salvar, e no bloco IDP é o que está configurado. Se ocorrer falha no Upload, é possível configurar manualmente.
No processo de autenticação, no response SAML, é esperado que o login do usuário seja retornado na tag: saml:sp:NameID. Caso contrário, é possível ajustar o arquivo logon_apl.php, no método autenticarSAML: $loginusuario = $as->getAuthData('saml:sp:NameID')->getValue();
Para auxiliar, é possível instalar o SAML Chrome Panel e ver o tráfego de request e response SAML .
Exemplo - Configuração IDP (Provedor de Identidade)
Legenda:
Botão Upload de IDP (Provedor de identidade)
Botão Salvar IDP (Provedor de identidade)
Na ABA Testar é possível testar a comunicação com o software IdP.
Exemplo - Configuração Testar
Legenda:
Botão Teste de Acesso
Ao clicar no botão Upload, o módulo SAML redireciona a requisição para o IdP (na figura a seguir foi utilizado o software Keycloak como IdP)
Exemplo - KeyCloak
Depois de digitar username e password corretamente, a requisição é redirecionada para a página de teste com sucesso SAML.
Exemplo - Autenticação
Concluído o processo de configuração, acessar normalmente o sistema Suricato pela URL: https://IP_SERVIDOR/telematica/suricato.exe
Na autenticação SAML, a tela de login padrão não é visualizada, sempre será mostrado a tela de login do IdP, ou quando já autenticado, o menu principal do Suricato