Como poderia enviar aquela lista de aplicações que o usuário tem acesso? Aquele que após validar os dados de acesso é gerado um array através do método sc_validate_success no app_Login.
Queria envia essa relação de aplicações para um outro menu de outro sistema, assim carregando as permissões de acesso naquele outro sistema também.
Dump da tabela de aplicações e importe no banco do outro sistema
Apesar que na segurança você tem a opção de sincronismo, onde a app lê o diretório de apps e gera o registro na tabela de aplicações
Haroldo, foi mal, acho que não fui claro.
Eu tenho uma aplicação principal que tem login, após o login ser validado o usuário cai numa grid que vai ter o atalho para diversos sistemas conforme sua permissão de acesso, os sistema estão hospedados em servidores diferentes então chamo eles pelo link do sistema, sendo que nós outros sistemas não tem tela de login o app inicial é o menu, a segurança é habilitado em todos os sistema então o usuário só pode acessar o sistema e os apps que tem acesso, daí queria saber como posso enviar dinmicamente a lista de todos os apps que o usuário tem acesso para esses outros sistemas, ou seja quando o menu dos outros sistemas fosse carrega ele verificaria pelo nome os apps daquele sistema que o usuário tem acesso e iria exibir ou não
As permissões estariam em sessão então, mas ao acessar domínios diferentes a sessão mudaria.
Você teria Que chamar uma blank que atribuiria as permissões a todas apps do sistema conforme o usuário.
Cada domínio teria que ter suas tabelas de segurança e apps deste módulo. Aa execução dessa blank tem que ser através de um método seguro tipo JWT com passagem de parâmetros via get tipo empresa(se sistema for multempresa) usuário.
Mas eu me pergunto: Por que criar um sistema onde módulos distintos estão em servidores/domínios totalmente diferentes?
Me pergunto também como seria a distribuição do banco de dados para cada módulo?
Na verdade a idéia seria fazer algo parecido com um SSO, o usuário faz login uma vez e já fica na sessão todos os sistemas e apps daquele sistema q ele tem acesso, só que o problema é justamente quando mudo o domínio, daí eu perco os dados da sessão e recebo a mensagem de usuário não autorizado
Na mesma sessão tudo funciona como eu planejei, o problema é quando mudo o domínio e a sessão.
Sobre o módulo de segurança,só existe um, no sistema que tem a tela de login, nós outros sistemas são apenas as aplicações
Em resumo seria compartilhar os dados da sessão entre domínios diferentes
Seria mais ou menos assim:
sistema.com/auth
sistema.com/RH
sistema.com/compras
Sendo que o /auth é o que conterá as credenciais, sendo sempre obrigatório acessar primeiro o /auth para depois de autenticado poderá selecionar o /RH ou /compras.
No ambiente de desenvolvimento tudo funcionou legal, o problema é que não me atentei que estava tudo na mesma sessão, aí quando publiquei nós domínios dá erro de permissão
Mas aí meu
Amigo está tudo no mesmo domínio
Isso mesmo, estão no mesmo domínio, na verdade são subdomínio né, desculpe aí me expressei errado.
São subdomínio em servidores diferentes, daí eu não tô conseguindo acessar, depois de logar no /auth o usuário cai numa grid que vai lista ou o /RH ou o /compras conforme as permissões do usuário que estão cadastradas no /auth. Daí o usuário clica no link que gerei com o sc_link para estes subdomínio aí, o correto seria cair direto no menu já com as permissão herdadas do /auth porem não consigo enviar nenhum parâmetro ou variável do /auth para os outros subdominios e sempre recebo erro de falta de permissão
Assim é um diretório no domínio:
sistema.com/auth
sistema.com/RH
sistema.com/compras
Assim são subdomínios:
Vlw Alexandre, mais um aprendizado, iniciante não fala as coisas com propriedade
Estava pensando em passar o id do usuário como parâmetro no sc_link para o outro diretório do domínio, daí carregaria uma blank que teria a mesma lógica usada no meto sc_validate_success no app_Login que iria buscar todas as apps q o usuário tem permissão e depois da um redir para o menu principal, será q funcionária?
ai vem um carinha com algum conhecimento em ti, e acessa a blank direto via url sem passar pela autenticação do login?
Não acha isso perigoso demais?
Entendi, obrigado pelos esclarecimentos.
E se no login após validar tudo eu criar uma variável que recebe teu aí no sc_link eu enviar ela e lá na blank fazer primeiro a validação dessa variável, qual sua opinião?
Outra coisa eu tbm habilitaria a segurança na blank
como vc vai habilitar a segurança na aplicação que libera a segurança?
o sc_link vai passar os parâmetros via GET, o que quelquer pessoa consegue capturar o valor desses parâmetros, inspecionando a pagina e indo na opção network (rede)
vc tem que enviar os dados (pode ser via sc_link) usando metodologia JWT,
do lado da blank vc vai traduzir o JWT para valores reais.
Deixa ver se entendi, usando JWT vou encodificar por exemplo as variáveis do usuário e apps q ele tem acesso e mando via sc_link para o outro sistema, do outro lado em uma blank eu decodifico e em seguida faço um redir para o menu que ele já irá reconhecer as variáveis da sessão, seria isso?
Isso mesmo……………………………
Retornando aqui para da o tópico com.o resolvido e agradecer ao Haroldo pela sugestão de como resolver de uma maneira segura e correta, muito obrigado Haroldo por compartilhar seus conhecimentos.