ApplyingAndUsingGAM 01 PT
ApplyingAndUsingGAM 01 PT
ApplyingAndUsingGAM 01 PT
Uma funcionalidade que vemos cada vez mais em aplicações web, é a possibilidade de
autenticar-se apenas uma vez para todas as aplicações que estamos usando.
O Single Sign On (ou autenticação única) é o procedimento pelo qual um usuário autentica-se
em uma aplicação WEB e já está autenticado no restante das aplicações que são executadas
em abas diferentes da mesma janela do navegador.
Isso pode ser feito porque um aplicativo com GAM pode ser um provedor de identidade, assim
como o Facebook ou o Google+ e outros aplicativos com o GAM podem ser autenticados
através dele.
Com o Single Sign On (SSO), se todos essas aplicações forem executadas na mesma instância
do navegador (em diferentes abas), é possível efetuar o login apenas uma vez.
Se eu estiver logado através do Single Sign on, isso significa que no mesmo navegador estou
executando várias aplicações em diferentes abas, tudo na mesma sessão do navegador. Mas,
1
Page
• Client Side Only - Fechamento de uma aplicação e o resto das aplicações ainda
permanecem conectadas ao provedor de identidade. Isso significa que apenas uma
aplicação é que será deslogada.
• Identity Provider & All Clients - Neste caso, a sessão do servidor e também de todos os
clientes é encerrada e, neste caso, as aplicações terão que fazer o login novamente para
entrar.
Enable Integrated Security como False. Vamos ativar isso: vamos colocar True. E vemos
Lembre-se que são objetos GeneXus, que foram desenvolvidos com GeneXus, que serão
integrados no meu KB, e também terei um monte de objetos externos que tratam-se da
API que poderei usar para acessar, via código, as diferentes funções de GAM.
Então, o que vou fazer agora é apertar "Yes" ... Vou deixar o Integrated Security Level com
o valor Authentication, porque só estou interessado em fazer autenticação e vemos que
muitos objetos externos, domínios e outros recursos do GAM estão sendo importados,
que são os objetos da KB do GAM que são incorporados na minha KB.
Se agora abrirmos o KB Explorer, vemos que foram criadas novas pastas, onde podemos
ver que existem diferentes recursos do GAM que foram adicionados na medida em que o
wizard estava importando objetos.
Por exemplo, aqui em Library tem várias bibliotecas do GAM que eu poderei usar,
basicamente objetos externos da API. Também posso ver alguns exemplos e, claro, alguns
3
objetos gerais do GAM que podem ser vistos mais tarde como eles funcionam.
Page
Muito bem. Acabou de importar os objetos e agora o que vamos fazer é dar um Rebuild
All. Então, executamos o Rebuild All, e vejam que ele me avisa que o banco de dados GAM
não foi encontrado e dá a opção de criá-lo.
O GAM criará seu próprio banco de dados, onde todas as informações relacionadas aos
usuários, licenças, etc. serão armazenadas em um banco de dados diferente do banco de
dados de nossa aplicação. Então, apertamos “Yes” para criar o banco de dados.
Bem, como podemos ver, acabamos de fazer o Rebuild All, então agora vou executar a
aplicação ...
Enquanto isso, podemos ver, por exemplo, aqui na propriedade Integrated Security Level,
que ela está setada como Authentication, que foi o que escolhemos antes, isto é, só vamos
controlar a parte de autenticação; não vamos ver autorização.
4
Page
Então, agora vou fazer login, o usuário é administrador e a senha é admin123, é claro que
podemos mudar isso, ou podemos definir nossos próprios usuários.
Digitei o Login, e eu estou executando o objeto GAM home, que é o backend GAM. E veja
que aqui temos várias opções ...
Aqui eu tenho vários dados referentes ao administrador. Observe, inclusive, que posso
executar diferentes operações com o administrador. Mas em vez de fazê-lo com o
administrador, criaremos um usuário nosso, com autenticação local... o usuário será
training, e isso, em princípio, poderia deixar vazio: [email protected]. Nós vamos
colocar uma senha, "training" tudo minúsculo, confirmamos, e vamos colocar somente o
primeiro nome do training...
6
Page
Aqui, em Roles, podemos definir as diferentes roles. Por enquanto, eu defini apenas uma
Page
Por enquanto, estamos testando somente autenticação, então o que estamos verificando
é que me peça um usuário, uma senha e que possa verificar se a pessoa que está entrando
é a pessoa correta.
Lembrem-se que vimos que poderiam ser autenticações do tipo Custom, ou Facebook,
Google ou Twitter, ou seja, eu tenho maneiras diferentes de me autenticar, e aqui eu
preciso que definir que tipo de autenticação vou querer para a mina aplicação.
Bom. Vamos voltar para o GeneXus, e queria mostrar-lhe que o objeto login que apareceu
pode ser visto aqui, é o GAMExampleLogin, criado automaticamente pelo GAM e que foi
definido como padrão, mas eu poderia criar minha própria tela de login e colocá-la na
minha aplicação.
Também tenho uma tela para o caso do Login não for autorizado, e também para SD. No
caso de Smart Devices, tenho a possibilidade de definir também um objeto de login, mas
agora está usando o GAMSDLogin.
9
Page
... e vamos observar que a segurança também será adicionada ao aplicativo para Smart
Devices, ou seja, não poderá entrar diretamente no menu, mas antes vai pedir que eu faça
o login primeiro.
Vejam,aqui eu tenho o emulador e abri uma tela de Login para Smart Devices. Então, eu
vou fazer login, como fiz antes ... admin, admin123 ...
10
Page
Bem, vamos voltar para a tela da web, estávamos aqui em Roles ...
11
... veja que eu estava logado como administrador; O que vou fazer agora é um Logout...
Page
Ele me diz que esse usuário não está autorizado; Esta é outra das telas automáticas que
lhes dizia.
12
Então, o que vamos fazer é associar uma rol ao usuário, por exemplo, a rol de
administrador.
Page
Então, o que eu vou fazer agora é atribuir ao usuário training a rol de administrador.
Vamos editar o usuário ...
13
Page
Muito bem. Agora vou testar otra vez, deslogar y logar com o usuario de training…
14
Page
Vamos, então, no emulador. Ele me pede para fazer login, então eu vou usar o mesmo
usuário ...
... e veja que agora o usuário training tem acesso aos dados na tela.
15
Page
Neste vídeo, vimos os benefícios do GeneXus Access Manager que nos oferece uma
solução de segurança completa para nossa aplicação, de uma maneira muito simples.
Há muito mais informações sobre este tópico. Para saber mais, convidamos você a visitar o
link que é mostrado na tela.
16
Page