Autenticação vs. Autorização
Antes de começarmos as discussões, é importante termos em mente a diferença entre Autenticação e Autorização, apesar de estarem interligados, são conceitos diferentes:
- Autenticação: é um processo de segurança para verificar a veracidade e autenticidade de uma pessoa ou objeto.
- Autorização: é um passo posterior à autenticação, uma vez tendo uma pessoa ou objeto autenticado é possível identificar as permissões que essa pessoa (ou objeto) possuem dentro do sistema.
O WES utiliza esses dois conceitos em sua plenitude.
Autenticação de APIs
As APIs possibilitam a exposição/comunicação de funcionalidades do sistema, possibilitando que recursos da aplicação sejam consumidas por terceiros ou até mesmo integrados com seus sistemas. Um exemplo de API é a consulta ao CEP dos Correios.
A Benner oferece um catálogo de APIs publicadas no Swagger, já embarcado no WES, o que possibilita visualizar e testar as APIs expostas pelos sistemas.
Protocolos de Autenticação
Para a junção das APIs com autenticação é importante usarmos um protocolo. Podemos dividir em dois grupos, um que define o fluxo de autenticação e outra que autentica.
Definindo o Fluxo de Autenticação
Para a definição do fluxo de autenticação a Benner utiliza o protocolo OAuth 2.0, que resumidamente funciona através de tokens criados a partir de um usuário/senha válidos no sistema. No WES a rota padrão para obtenção do token é: /app_services/auth.oauth2.svc/token.
É possível também revogar ou renovar o token através de APIs que são disponibilizadas pela tecnologia, ou utilizar a interface do WES que neste caso, possui várias outras opções de customização.
Importante salientar que podem existir APIs sem necessidade de autenticação, que devem ser consumidas diretamente sem necessidade de parâmetros de token ou similar.
Definindo a Autenticação
A Benner oferece uma forma nativa de autenticação, para isso utiliza o Z_GRUPOUSUARIOS, que armazena os logins dos usuários do sistema e é consultada pelo BServer.
Caso necessário, é possível terceirizar a autenticação, para isso a Benner suporta os seguintes protocolos:
- LDAP: protocolo de mercado mais antigo, armazena e recupera informações de diretório, como autenticação de usuários, pesquisa de informações de contato e gerenciamento de grupos. Está presente em serviços de terceiros como Microsoft AD e Open LDAP.
- OIDC: protocolo de autenticação e autorização mais recente, baseado em token, utilizado para autenticar usuários em aplicativos web e fornecer informações sobre a identidade do usuário. Suportado por uma série de serviços de identidade como Azure AD, Red Hat SSO, Keycloak e NetIQ Access Manager (NAM).
Se existir algum destes protocolos configurados, o WES se exime da responsabilidade de realizar a autenticação, terceirizando todo o processo para o responsável.
Essas configurações são feitas no arquivo web.config, contudo, qualquer alteração neste arquivo requer reinicio do servidor WEB. Para evitar isso, podemos usar uma configuração centralizada, configurando dentro do WES, desta forma, as configurações ficam centralizadas no banco de dados. Salientamos que ao optar pela configuração centralizada, todas as aplicações (tanto WES quanto Runner) que apontem para a mesma base, serão autenticados de forma parametrizada.
SSO – Single Sign On
O SSO é um método de autenticação e autorização que permite que usuários acessem múltiplas aplicações com apenas um único login. Está diretamente ligado a terceirização da autenticação.
É necessário que todas as aplicações que façam login único, devem apontar para o mesmo servidor de identidade, pois ele quem vai gerenciar a autenticação e sessão dos usuários das aplicações.
Autenticação com dois fatores (2FA)
É uma camada extra de segurança, para verificar a identidade digital de uma pessoa, confirmando se ela realmente é quem diz ser. Atualmente a Benner suporta dois métodos de autenticação com dos fatores:
- Token por e-mail: é realizado de forma síncrona, ou seja, é processado pelo agendamento de envio de e-mail, dependendo da configuração e execução do agendamento de e-mails. É muito importante que isso seja levado em conta no momento de configuração do serviço de envio de e-mails, pois pode causar muita espera do usuário ao tentar receber o código de autenticação.
- SMS: com dois parceiros homologados (Zenvia e Twilio), a contratação dos planos destes parceiros precisa ser feita diretamente pelo cliente.
Importante destacar algumas observações quanto ao uso do 2FA. Para contingência, no caso de algum problema no celular que impossibilite a recepção do código, a Benner permite que o gestor efetue a liberação temporária do usuário sem necessidade do 2FA. O tempo padrão de validade do token é 30 minutos, contudo pode ser configurado através do parâmetro TOKEN2FA.TIMEOUT no Server Manager.
reCAPTCHA
Tem a função de proteger contra bots que usam dicionários de palavras ou outros métodos de ataque que visam comprometer a segurança da aplicação. Está disponível nas telas “de Login”, “Esqueceu sua senha” e “Duplo fator de autenticação”, sendo que no login só mostra a partir da segunda tentativa.
Para habilitar o reCAPTCHA basta habilitar as chaves googleRecaptcha e googleRecaptchaDataSiteKey do web.config. Já a contingência do reCAPTCHA pode ser habilitada através do parâmetro RECAPTCHA.BLOCK no Server Manager.
O 2FA e o reCAPTCHA são funcionalidades distintas e podem ser usadas separadamente, já que não são dependentes, mas sim, complementares.
Para saber mais
Temos uma série de documentos na Wiki:
- Autenticação de APIs com Tokens
- Autenticação Centralizada
- Autenticação de dois fatores (2FA)
- ReCAPTCHA
- Single sign-on
Além disso, temos um BE.TECH gravado pelo Diuari Daniel Molinari e pelo Gerhard Roger Nack, para assistir acesse:
Nesse BE.TECH 2 perguntas ficaram sem respostas
- Em caso de um FARM de servidores web, a autenticação via OIDC identifica que existe mais de um servidor e para qual está caindo?
- Sim. Mas vale lembrar que nesse caso, é necessário equalizar a configuração de MachineKey entre todos os servidores Web dentro do farm. Mais detalhes aqui.
- O ReCaptcha da Benner já está preparado para deficientes visuais? Alterando a exibição da imagem para um áudio a ser transcrito?
- Atualmente o Benner oferece suporte ao reCaptcha v2 que não tem o recurso de acessibilidade por áudio.
Gostou deste post? Deixa seu comentário, te vejo na próxima publicação, um abraço,
Danton C. Franco Junior
#TimeTec