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 Googleno 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!

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

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.
- Acesse o Database Builder em "Database → Database builder":
- Procure pela opção "Comando SQL":
3. Realize o comando SQL "CREATE TABLE" com os campos "login", "resource" e "resource_id":

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.
- CREATE TABLE
sec\_users\_social( loginVARCHAR(255) NOT NULL,resourceVARCHAR(255) NOT NULL,resource\_idVARCHAR(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:
- Acesse Módulos → Segurança:
2. Clique em “Criar Módulo de Segurança”:
- 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".
- 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
- Em "Geral", escolha o prefixo das aplicações do novo módulo:
8. Preencha a aba “Configurações de e-mail”:
- 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:
- 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.

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.
-
CREATE TABLE
sec\_users\_social( -
loginVARCHAR(255) NOT NULL, -
resourceVARCHAR(255) NOT NULL, -
resource\_idVARCHAR(255) NOT NULL, -
PRIMARY KEY (
login,resource,resource\_id) -
);
-
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', '');
-
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"
- Vá até a aba "Autenticação via redes sociais", habilite a opção "Google" e preencha os campos "Client ID" e "Secret":
- 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 adocumentação oficial da opção.
Abraços e até mais!