Atualizando o Módulo de Segurança para Suporte ao Login com Google

Atualizando o Módulo de Segurança para Suporte ao Login com Google

Com a substituição do protocolo NCP pelo protocolo TCP/IP da ARPANET, a internet ganhou espaço para evoluir constantemente. A medida que mais pessoas aderiam a internet, mais rápido as coisas precisavam acontecer, tornando o processo de evolução quase exponencial: quanto mais rápido um serviço, mais rápido queríamos que ele ficasse. Hoje em dia, tal rapidez pode, em muitas ocasiões, ser traduzida como automatizar partes monótonas.

Com a nova funcionalidade de login via conta Google no módulo de segurança, é possível aproveitar todas as camadas de segurança do ecossistema Google, enquanto mantemos um alto nível de agilidade. Neste artigo, aprenderemos como atualizar o módulo de segurança para que tenhamos esse recurso poderoso em nosso sistema.
Info
Atente-se que será necessário ter as credenciais "ClientID" e "Secret" da biblioteca Google Identity Service previamente configurada para utilizar essa funcionalidade. Se você possui dúvidas ou não sabe como criar e configurar a biblioteca, leia o tutorial de como configurar o Google Identity Service!
Info
Se você estiver utilizando o módulo de segurança antigo, será necessário realizar uma migração para o novo. Se você possui dúvidas ou não sabe como migrar, leia o tutorial de migração de módulo!
Warning
Sempre realize um backup de segurança antes de qualquer alteração!

Se eu não utilizava a opção de redes sociais

Caso seu módulo de segurança não utilize a opção de login com redes sociais, será necessário prepará-lo para receber está nova função. Para isso, criaremos uma nova tabela no banco de dados chamada "sec_users_social": 

Notes
Se o seu módulo de segurança já utiliza a opção de redes sociais com Twitter e/ou Facebook, pule para a próxima seção.
Warning
O Database builder não está disponível para todos os SGBDs. É possível realizar as mesmas alterações utilizando qualquer ferramenta que permita gerenciar bancos de dados — como o Dbeaver, por exemplo.

1. Acesse o Database Builder em "Database → Database builder": 


2. Procure pela opção "Comando SQL": 

3. Realize o comando SQL "CREATE TABLE" com os campos "login", "resource" e "resource_id":
Alert
Note que os campos são do tipo VARCHAR(255), pois estamos utilizando MySQL para exemplificar. É preciso selecionar o tipo correspondente de acordo com seu SGBD.
  1. CREATE TABLE `sec_users_social` (
  2.   `login` VARCHAR(255) NOT NULL,
  3.   `resource` VARCHAR(255) NOT NULL,
  4.   `resource_id` VARCHAR(255) NOT NULL,
  5.   PRIMARY KEY (`login`, `resource`, `resource_id`)
  6. );

Atualizando o módulo com a nova opção

Com tudo configurado corretamente, basta atualizar o módulo de segurança:

1. Acesse Módulos → Segurança:

2. Clique em “Criar Módulo de Segurança”:

3. Selecione o tipo de segurança que será utilizada:
Notes
A opção só está disponível para os tipos "Grupo", "Aplicação" e "Usuário".
4. Selecione a conexão que possui as tabelas do seu módulo de segurança, escolha a opção "Usar tabelas existentes" e marque "Usar redes sociais":


5. Clique no botão recarregar “↻” para que o Scriptcase possa ver as alterações na tabela e clique em “Prosseguir”:


6. Associe os campos às colunas correspondentes e clique em “Prosseguir”:

USUÁRIO

  • Tabela→ sec_users
  • Login → login
  • Senha → pswd
  • Nome→ name
  • Telefone → phone
  • Cargo → role
  • E-mail → email
  • Ativo→ active
  • O código de ativação → activation_code
  • Privilégio de administrador → priv_admin
  • Autenticação de dois fatores (2FA) → mfa
  • Foto → picture
  • Última alteração de senha → pswd_last_updated
  • Tempo de revalidação→ mfa_last_updated

GRUPO:

  1. Tabela → sec_groups
  2. ID → group_id
  3. Descrição → description


APLICAÇÃO

  • Tabela → sec_apps
  • Nome da Aplicação → app_name
  • Descrição → description
  • Tipo de Aplicação → app_type


USUÁRIO/GRUPO:

  • Tabela → sec_users_groups
  • Login → login
  • Código do Grupo → group_id



GRUPO/APLICAÇÃO:

  • Tabela → sec_groups_apps
  • Código do Grupo → group_id
  • Nome da Aplicação → app_name
  • Privilégio de Acesso → priv_access
  • Privilégio de Inserção → priv_insert
  • Privilégio de exclusão → priv_delete
  • Privilégio de atualização → priv_update
  • Privilégio de exportação → priv_export
  • Privilégio de Imprimir → priv_print

REDES SOCIAIS:

  • Tabela → "sec_users_social"
  • Login → "login"
  • Tipo de rede social → "resource"
  • ID da rede social → "resource_id"

CONFIGURAÇÕES:

  • Tabela → sec_settings
  • Nome → set_name
  • Valor → set_value

7. Em "Geral", escolha o prefixo das aplicações do novo módulo:

8. Preencha a aba “Configurações de e-mail”:


9. Em "Rede social", selecione "Google" e preencha os campos "ClientID" e "Secret". Após isso, clique em "Gerar segurança":

10. A aba Salvar Perfil é opcional — é possível ler mais sobre ela na documentação do novo módulo de segurança. Clique em “OK”: 

Configurando no ambiente de produção

Ao publicar o projeto, é possível que a opção de login com Google ainda não esteja funcionando corretamente. Isso acontece porque é preciso configurar "ClientID" e "Secret" também no ambiente de produção. Para isso, precisamos preparar o banco de dados do ambiente de produção e depois inserir as variáveis na aba de configurações do módulo de segurança:

1. Realize o comando SQL "CREATE TABLE" no banco de dados em produção:
Notes
Se você já utilizava a opção de redes sociais com Twitter e/ou Facebook em produção, não é necessário realizar o CREATE TABLE.
Alert
Note que os campos são do tipo VARCHAR(255), pois estamos utilizando MySQL para exemplificar. É preciso selecionar o tipo correspondente de acordo com seu SGBD.
  1. CREATE TABLE `sec_users_social` (
  2.   `login` VARCHAR(255) NOT NULL,
  3.   `resource` VARCHAR(255) NOT NULL,
  4.   `resource_id` VARCHAR(255) NOT NULL,
  5.   PRIMARY KEY (`login`, `resource`, `resource_id`)
  6. );

2. Realize o comando SQL "INSERT" na tabela sec_settings do banco de dados em produção:
  1. INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_position', 'below');
  2. INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_fb', 'N');
  3. INSERT INTO sec_settings(set_name, set_value)  VALUES ('auth_sn_fb_app_id', '');
  4. INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_fb_secret', '');
  5. INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_x', 'N');
  6. INSERT INTO sec_settings(set_name, set_value)  VALUES ('auth_sn_x_key', '');
  7. INSERT INTO sec_settings(set_name, set_value)  VALUES ('auth_sn_x_secret', '');
  8. INSERT INTO sec_settings(set_name, set_value)  VALUES ('auth_sn_google', 'N');
  9. INSERT INTO sec_settings(set_name, set_value)  VALUES ('auth_sn_google_client_id', '');
  10. INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_google_secret', '');

3. No menu do módulo de segurança, acesse a aplicação app_settings:
Info
Por padrão, ela está vinculada ao atalho de nome  "Configurações"


4. Vá até a aba "Autenticação via redes sociais", habilite a opção "Google" e preencha os campos "Client ID" e "Secret":


5. Clique em "Ok" para salvar as alterações.

Conclusão

Neste artigo, aprendemos sobre o Google Authentication e como implementá-lo no módulo de segurança do Scriptcase.
Para dúvidas relacionadas ao módulo de segurança, acesse a documentação oficial do módulo de segurança.
Para dúvidas relacionadas à opção de rede social, acesse a documentação oficial da opção

Abraços e até mais!
    • Related Articles

    • Atualizando o Módulo de Segurança para Suporte ao Novo LDAP

      LDAP é um protocolo amplamente utilizado para gerenciamento e autenticação de usuários em redes corporativas. Ele permite que aplicações se conectem a um diretório centralizado com o ACtive Directory, para validar as credenciais e obter informações ...
    • Criando a chave de Api do Google Maps

      Neste artigo veja como habilitar e obter a chave para utilização do Google Maps nas aplicações do Scriptcase. Acessando a Plataforma do google Maps 1. Acesse o link https://mapsplatform.google.com/ para criar sua chave. Será necessário realizar login ...
    • Atualizando o Módulo de Segurança: como migrar do antigo para o novo

      Os ataque às aplicações web estão sempre evoluindo. Com o dado sendo uma moeda tão valiosa, é de extrema importância manter a segurança de um sistema atualizada para evitar perdas. O novo módulo de segurança, além de ser extremamente flexível e ...
    • Autenticação de dois Fatores do Módulo de Segurança - Google Authenticator

      O Google Authenticator gera códigos da verificação em duas etapas no seu smartphone . A verificação em duas etapas oferece maior segurança para sua conta pois dessa forma exige uma segunda etapa de verificação no login além da senha. Configuração da ...
    • Atualização da aplicação de sincronizar do módulo de segurança

      Visando aprimorar a segurança em nossos projetos, realizamos várias mudanças nos arquivos das aplicações. Uma dessas alterações afetou um arquivo crucial, que informa o tipo das aplicações ao realizar a sincronização no módulo de segurança. Para ...