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.

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!

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!
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":

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.

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":
- CREATE TABLE `sec_users_social` (
- `login` VARCHAR(255) NOT NULL,
- `resource` VARCHAR(255) NOT NULL,
- `resource_id` VARCHAR(255) NOT NULL,
- PRIMARY KEY (`login`, `resource`, `resource_id`)
- );
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:

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:
- Tabela → sec_groups
- ID → group_id
- 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":
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:

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.
- CREATE TABLE `sec_users_social` (
- `login` VARCHAR(255) NOT NULL,
- `resource` VARCHAR(255) NOT NULL,
- `resource_id` VARCHAR(255) NOT NULL,
- PRIMARY KEY (`login`, `resource`, `resource_id`)
- );
2. Realize o comando SQL "INSERT" na tabela sec_settings do banco de dados em produção:
- INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_position', 'below');
- INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_fb', 'N');
- INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_fb_app_id', '');
- INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_fb_secret', '');
- INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_x', 'N');
- INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_x_key', '');
- INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_x_secret', '');
- INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_google', 'N');
- INSERT INTO sec_settings(set_name, set_value) VALUES ('auth_sn_google_client_id', '');
- 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:

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.
Abraços e até mais!