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 o que chamo de "centralizar e automatizar": centralize os serviços num sistema e torne-o fácil de ser acessado, retirando os passos monótonos.
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, resultando numa experiência extremamente satisfatória ao usuário final.
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 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":

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` (
- `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, basta acessarmos a aba de configurações do módulo de segurança:
1. 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"
2. Vá até a aba "Autenticação via redes sociais", habilite a opção "Google" e preencha os campos "Client ID" e "Secret":
3. 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!