Redução via Publisher Server

De Qknow
Ir para: navegação, pesquisa

Introdução

Como visto no artigo sobre como limitar o acesso dos usuários aos dados através do SECTION ACCESS, o termo redução de dados significa permitir que apenas parte das informações carregadas no painel sejam exibidas ao usuário autenticado de acordo com as permissões atribuídas, por isso reduzindo os dados que serão vistos pelo login que foi utilizado para autenticação. No mencionado artigo, a redução lógica faz uso dos recursos de seção de acesso com usuários cadastrados em nível de painel ou a partir de logins do sistema operacional. Porém, em ambos os casos, a lista dos usuários que terão permissão de acesso a parcela dos dados para os quais forem lhe dadas permissões, é fruto de um registro manual dentro de um script oculto. Sempre que novos usuários precisarem de permissões para acesso ao painel, o arquivo .QVW deverá ser editado. O mesmo ocorre para limitar o acesso a usuários previamente cadastrados que por algum motivo não possam mais acessar a parcela dos dados que antes lhe fora concedida. Ou seja, sempre que modificações de permissões sobre os dados ocorrer, o arquivo deverá ser editado.

Nota:  Para melhor entendimento dos conceitos e configurações aqui apresentadas, é fundamental a
       leitura dos artigos sobre Redução Lógica e Redução Física de dados.

É importante lembrar que a segurança de acesso no QlikView são uma combinação de recursos em nível de documento .QVW e recursos de servidor. Este artigo assume que o leitor tem conhecimento a respeito da seção de acesso por meio do SECTION ACCESS, caso contrário é fundamental a leitura do artigo sobre redução lógica de dados com base na seção de acesso.

Toda redução de dados envolve a criação de um script oculto em nível de painel contendo duas seções, sendo uma para a seção de acesso e outra de aplicação. Tipicamente uma tabela de acessos é cadastrada ou lida de alguma fonte de dados, resultando em uma lista de usuários com permissões de leitura dos registros para os quais foram designados acessos. O exemplo a seguir é um fragmento da seção de acesso definida no artigo sobre redução lógica de dados.

Section Access;
LOAD * INLINE [
    ACCESS, USERID, PASSWORD
    ADMIN, Franco, senha
    USER, Geilson, senha1
    USER, Nilton, senha2
    USER, Bruno, senha3
];
Section Application;

Obviamente a inclusão ou retirada de acessos dos usuários envolve a edição manual do arquivo .QVW, algo não muito prático em organizações (companhias) maiores. Alternativamente, os dados da seção de acesso podem ser obtidos a partir de usuários do domínio (LDAP ou Active Directory) cadastrados na organização. Já em organizações que possuem o QlikView Publisher Server o modelo de redução de dados conforme usuário autenticado pode ser integrado ao Publisher de maneira que a administração dos acessos seja centralizada no QMC (QlikView Management Console), evitando assim que o script do painel precise de modificações quando alterações de permissões e redução forem necessárias.

Este artigo aborda o uso do QlikView Publisher Server para redução de dados conforme usuário autenticado, com configurações centralizadas no QMC. Para maiores informações sobre o Publisher Server, recomenda-se a leitura sobre as edições e versões da plataforma Qlik.

Nota:  Veja o artigo sobre redução física dos dados utilizando o Publisher Server para maiores
       sobre o funcionamento deste servidor.


Seção de Acesso via Publisher Server

É fundamental lembrar que a segurança de dados no QlikView é fruto de uma abordagem em nível de servidor e de painel. Conforme apresentado nos artigos sobre redução lógica e redução física de dados, a segurança do painel com limites de acesso aos dados vistos pelos usuários é realizado por meio de um script oculto contendo uma tabela de usuários com suas respectivas permissões. Porém, um mecanismo mais robusto e inteligente de redução de dados se dá pela centralização dos acessos a partir do Publisher Server ao invés de cadastrar individualmente cada usuário em painéis que façam uso desta função. Por isso, o Publisher Server pode ser utilizado para fornecer aos painéis com redução de dados a tabela de acesso que deve ser incorporada ao painel.

Trata-se, na verdade, da redução lógica via tabela fornecida pelo Publisher de maneira centralizada, facilitando a administração. Para utilização deste recurso é preciso que o Publisher tenha sido contratado e licenciado no ambiente em que for utilizado. Para conferir se o servidor está disponível no ambiente consulte o artigo sobre serviços do Publisher Server. Assumindo que o serviço de publicação está disponível no ambiente, é preciso acessar o QMC (QlikView Management Console) com um usuário que faça parte do grupo do Windows QlikView Administrators. Ainda que o usuário autenticado no sistema operacional faça parte do grupo de administradores da máquina, se não for parte do grupo mencionado não terá acesso ao console do QlikView. Ao acessar o QMC, se a mensagem abaixo for exibida significa que a conta utilizada não faz parte do grupo QlikView Admininstrators.

Access Denied

Membership of local security groups is missing.

Please refer to the manual for more information.
SectionAccessWithPublisher1.PNG


Uma vez que o acesso ao QMC tenha sido realizado com sucesso, basta navegar pela sequencia de links a seguir para ter acesso as configurações da tabela que será utilizada no SECTION ACCESS: UsersSection Access Management. Para criar uma tabela de acesso via Publisher basta clicar no item Section Access Tables para atualizar o lado direito da interface do QMC. No canto superior direito da janela um botão com sinal de mais (+) permitirá adicionar uma nova tabela de seção de acesso que poderá listar os usuários, senhas e/ou contas do serviço de diretórios.

SectionAccessWithPublisher2.PNG

SectionAccessWithPublisher3.PNG

Quando uma nova linha for adicionada à lista de tabelas de seção disponíveis, basta digitar um nome que a identifique posteriormente. No exemplo acima, o texto NewTableSectionAccess foi utilizado como identificador da tabela. Para confirmar a operação basta um clique no botão Apply no canto inferior direito da janela. Neste momento, a lista existente em Section Access Tables (lado esquerdo da janela do QMC) é atualizada contendo a mais recente tabela criada. Um clique sobre o nome da mais recente tabela de seção criada permite exibir as configurações na parte da direita da janela do QMC. Como a criação da tabela envolve a definição de quais colunas serão utilizadas, é necessário um clique no botão Edit Column para que seja exibida a janela de configuração das colunas conforme figura a seguir.

SectionAccessWithPublisher4.PNG


As seguintes colunas são tipicamente utilizadas em um cenário de redução lógica de dados com tabela fornecida pelo Publisher Server:

  • ACCESS: Deve ser preenchido com os valores ADMIN ou USER, dependendo das permissões que o usuário terá.
  • USERID: Utilizado para cadastrar no QMC um login manual de usuário que será utilizado para acesso ao painel.
  • PASSWORD: Senha manual em texto limpo (clear text) destinada ao USERID. Neste caso, não será utilizado um usuário do domínio.
  • NTNAME: Nome do login do usuário na rede, quando houver integração das contas de acesso a um domínio com LDAP ou Active Directory (AD).
  • NTDOMAINSID: Identificador do domínio, geralmente utilizado para integração de contas de usuário a partir de um serviço de diretórios como LDAP ou AD.


Didaticamente, o artigo sobre redução lógica de dados separou em duas seções o uso das colunas acima. Mas nada impede que os dois conjuntos de colunas sejam utilizadas na identificação de usuários sendo definidas ao mesmo tempo. Neste artigo as colunas acima serão utilizadas em uma única tabela. Portanto, basta selecionar as colunas acima clicando no botão Add Column. Adicionalmente, as seções de acesso geralmente possuem um campo que faz a ligação com o modelo de dados para fins de redução. Por isso é possível digitar o nome da coluna, tal como LINK no espaço Type Column seguido do botão Add Column. O resultado será algo semelhante a figura apresentada a seguir.

SectionAccessWithPublisher5.PNG

Para adicionar a lista de usuários com respectiva permissão de acesso é preciso um clique no botão com uma figura de um sinal de mais (+) (exibida acima). Cada vez que o botão é acionado uma linha é adicionada a tabela. Apesar de não parecer, os campos são editáveis e podem ser digitados diretamente na tabela. Para repetir este exemplo, crie alguns usuários conforme figura a seguir. Atente para o fato de que usuários que são definidos diretamente no QMC são aqueles que utilizam as colunas USERID e PASSWORD. Já os usuários de domínio (LDAP ou AD) são selecionados a partir do ícone presente na coluna NTNAME.

SectionAccessWithPublisher6.PNG

Considerações importantes sobre a configuração da tabela de acessos:

  • Se o usuário autenticado no sistema operacional estiver presente na tabela de acessos, esta conta será utilizada e nenhuma credencial solicitada ao abrir o painel.
  • Se o usuário do sistema operacional não estiver na tabela de acessos, o QlikView solicitará um usuário seguido de uma senha quando o painel for aberto.
  • Quando as colunas USERID e PASSWORD forem preenchidas, as colunas NTNAME e NTDOMAINSID devem ser preenchidas com asterísco.
  • Quando a coluna NTNAME for preenchida, as colunas USERID e PASSWORD devem conter um asterísco.
  • A coluna LINK pode ter qualquer nome, não necessariamente o definido neste artigo.
  • O conteúdo da coluna LINK fará a ligação entre a seção de acesso e a de aplicação.
  • Quando um asterísco é utilizado na coluna de ligação (LINK) significa que o usuário terá acesso aos dados de todos os outros usuários.
  • Quando a coluna de ligação é deixada vazia significa que o usuário ADMIN terá acesso a todos os registros, inclusive os que não estiverem definidos na seção.

Quando as configurações da tabela foram concluídas basta clicar no botão Apply presente na parte inferior direita da janela do QMC. Para finalizar o processo é preciso publicar a tabela que poderá ser utilizada por desenvolvedores em QlikView dentro da organização (companhia). Para tanto, basta acionar o botão Add Users localizado na parte superior esquerda da tabela de usuários. Uma janela de seleção de usuários do domínio será exibida para que possam ser escolhidos aqueles que poderão incorporar em painéis os dados disponíveis pelo Publisher Server. Note na imagem a seguir que apenas aqueles presentes no grupo QlikView Administrators estão configurados.

SectionAccessWithPublisher7.PNG.

Publicação da Tabela de Acessos

Uma vez que a tabela de acessos tenha sido preenchida no QMC contando com uma instalação do Publisher Server disponível, é possível testar o acesso dos desenvolvedores para garantir que os dados poderão ser obtidos por uma conexão do arquivo .QVW. Por isso, ainda dentro do QMC basta um clique sobre o item Section Access Table do lado esquerdo da janela para que sejam exibidas as configurações gerais do lado direito.

SectionAccessWithPublisher8.PNG

Quando o atalho indicado na figura acima é acionado o QlikView Server faz acesso a uma página Web contendo as tabelas defindas conforme seção anterior. Este será o endereço que o desenvolvedor do painel interessado em usar credencias definidas no Publisher utilizará no script oculto quando estiver configurando a SECTION ACCESS.

http://server_name:4780/QMS/AuthTable

Ao acessar o endereço a tabela configurada é exibida no navegador de semelhante a estrutura abaixo:

Table:

                                        NewTableSectionAccess

ACCESS          USERID             PASSWORD       NTNAME                         NTDOMAINSID      LINK 
ADMIN           fernando.tonial    senha1         *                              *                * 
USER            nilton.barcelos    senha2         *                              *                1 
USER            bruno.costa        senha3         *                              *                2 
USER            geilson.junior     senha4         *                              *                3 
ADMIN           *                  *              WIN-S6IG6DG6EIN\Franco.Galati

Para acessar a referida tabela o usuário desenvolvendo um painel deve ter as permissões adequadas, definidas no momento em que a tabela foi construída, o que pode ser configurado conforme passos da seção anterior. No QlikView Publisher Server estas são as configurações necessárias para desenvolvimento da seção de acesso por meio do publicador. A próxima seção apresenta como utilizar a tabela a partir do QlikView Desktop.

Utilizando a Tabela de Acesso

O objetivo da tabela de acesso é permitir que o script de carga possa definir quem são os usuários com permissões para acessar o dashboard e quais são os níveis de acesso que cada um deverá ter. Dentro deste conceito é que aplica-se a redução lógica de dados, que significa que um usuário poderá ter acesso somente a parte dos dados que lhe são de interesse e para as quais lhe foram concedidas permissões de acesso. Um caso típico de uso de redução lógica é um gestor regional ter acesso aos dados de seu região enquanto o diretor nacional poderá visualizar todos os dados de todos os gestores. Isso pode ser feito sem que se tenha que construir diversos painéis, apenas configurando quem pode ver o quê.

No QlikView, o termo redução significa que somente parte dos dados estarão visíveis ao usuário, recurso implementado com a seção de acesso (SECTION ACCESS). Para testar a integração do Publisher com a SECTION ACCESS de um painel, utiliza-se os seguintes passos no QlikView Desktop:

1. Com o painel aberto, no editor de scripts insira a seção de acesso por meio da sequencia de comandos abaixo:

Inserir ► Seção de Acesso ► Autorização do Publishher

2. Quando o assistente de fonte de dados for exibido, marque a opção Arquivo da Internet. Entre com o endereço da tabela do servidor de publicação.

http://server_name:4780/QMS/AuthTable
SectionAccessWithPublisher9.PNG

3. Ao avançar para a janela seguinte, selecione na lista a tabela de seção de acesso desejada.

O acesso a tabela depende das permissões que foram concedidas pelo administrador no QMC. Ou seja, não é o fato da tabela ser exibida que garante o acesso pelo usuário que estiver desenvolvendo o painel. Problemas de acesso podem ocorrer caso o servidor Publisher esteja em uma rede com domínio diferente daquela em que o usuário está utilizando a versão Desktop para elaboração da seção de acesso.
Quando a tabela correta é selecionada, o assistente apresenta o conteúdo a título de exemplo, permitindo que o desenvolvedor do painel possa averiguar se é de fato a tabela desejada para a seção de acesso.

4. Ao clicar no botão Terminar as seções de acesso e aplicação são incluídas no script semelhante ao código a seguir.

Section Access;
LOAD ACCESS, 
     USERID, 
     PASSWORD, 
     NTNAME, 
     NTDOMAINSID, 
     LINK
FROM [http://your_server_name:4780/QMS/AuthTable] (html, utf8, embedded labels, table is NewTableSectionAccess);

Section Application;

A partir deste ponto do script a tabela de acesso será fornecida pelo QlikView Publisher Server. Ou seja, sempre que usuários forem adicionados ou removidos do acesso ao referido painel bastará ao administrador incluir ou excluir o usuário da tabela no QMC. Adicionalmente, o campo LINK conectará a seção de acesso à seção de aplicação, garantindo o recurso de redução de dados. Para testar a redução em funcionamento é possível adicionar o fragmento de código a seguir na linha imediatamente abaixo do comando Section Application.

LOAD * Inline [
LINK, Country
1, Brazil
2, France
3, Ireland ];

Observe que a tabela acima liga a seção de acesso com a seção de aplicação pelo campo LINK. Assim, quando o usuário acessar o painel suas credenciais serão obtidas, seja pela digitação manual ou pela integração com o serviço de diretórios. Ao ser identificado, a seção de acesso imediatamente associa o valor do campo LINK à conta do usuário. Por sua vez, o campo está presente também na seção de aplicação que faz o mapeamento para o campo Country (País). Logo, o usuário de LINK = 1 só poderá visualizar os registros de todo o modelo de dados onde o campo Country for Brazil. O fragmento adicional abaixo pode ser inserido na aplicação para fins de teste do funcionamento do modelo.

DataSample:
LOAD * INLINE [
Pais, Cidade, Empresa,
Argentina, Buenos Aires, Los Espandrilos Fantasticos
Austria, Graz, Ski Store
Belgium, Bruxelles, De la Vita
Brazil, Campinas, Paintho da Gama
Brazil, Rio de Janeiro, Da Bikini Expertu
Brazil, São Paulo, Roba di Piel
Brazil, São Paulo, Tendha do Flamengo
Canada, Tsawassen, Big Foot Shoes
France, Nantes, Le Sais de Rión
France, Paris, Chateau de Ville
Germany, Stuttgart, Autokleider
Ireland, Cork, Boleros
Mexico, México D.F., Don Balón
Mexico, México D.F., Los Sombreros Gigantes
Portugal, Lisboa, El Traige do Benfica
Portugal, Lisboa, La Roba do Santho
Spain, Barcelona, El Chandal del Barca
Spain, Madrid, Las Corbatas
Spain, Sevilla, Los Trajes de Matador
Sweden, Stockholm, Stephanies ];

Testando a Redução com Publisher Server

SectionAccessWithPublisher10.PNG

Após o script ter sido executado e o arquivo salvo, é hora de alterar as propriedades em nível de documento para que a redução de dados ocorra quando o usuário for autenticado no documento .QVW. A partir do QlikView Desktop, no menu Configurações escolha Propriedades do Documento e, em seguida, acesse a guia (tab) Segurança. As configurações apresentadas nesta guia determinam a capacidade do usuário comum de interagir com o painel após ter fornecido as credenciais de acesso (usuário/senha).

Na figura ao lado é possível confirmar que apenas o administrador terá permissões sobre o arquivo .QVW já que a opção Admin Sobrepõe Regras de Segurança está marcada. As demais configurações são destinadas ao usuário comum, entre elas é possível destacar:

  • Reduzir Dados: Habilidade do usuário não administrador de executar o script que existe no painel com implementação de redução de dados. Uma vez desmarcado, o usuário não será capaz de executar o script mesmo ao abrir o arquivo via QlikView Desktop.
  • Incluir Pastas: Permite ou nega ao usuário comum (não administrador) incluir uma pasta (nova guia) no documento .QVW, tanto utilizando o QlikView Desktop quanto via acesso AJAX (acesso Web). Na figura ao lado o usuário não terá este privilégio.
  • Editar Script: Habilita o acesso ao editor de scripts a partir do login de um usuário comum. Ou seja, se um usuário não administrador abrir o painel poderá utilizar as teclas CTRL + E para editar o script. No exemplo, estará desabilitada.
  • Salvar Documento: Aceita ou rejeita gravar o documento .QVW quando aberto pelo QlikView Desktop. Na figura ao lado esta configuração está desmarcada, o que significa que um usuário comum não poderá salvar o arquivo com ou sem modificações.

A lista completa das descrições dos parâmetros pode ser encontrado na ajuda do QlikView Desktopo. Assumindo a figura ao lado como a configuração do documento, basta salvar o projeto e encerrar o QlikView (fechar o aplicativo Desktop). O QlikView Desktop deve ser encerrado pois por padrão mantém as credenciais do último usuário que executou o programa.

SectionAccessWithPublisher11.PNG

Ao executar o QlikView novamente e abrir o arquivo (tanto pelo Desktop quanto pelo Acccess Point), uma janela de autenticação solicitará o usuário caso este não seja do domínio e não esteja cadastrado na tabela de acessos. Em seguida, a senha deve ser fornecida. Neste exemplo, a partir da tabela de seção de acesso cadastrada no Publisher Server o usuário fernando.tonial foi informado no login seguido da senha definida no servidor. O resultado é exibido na figura abaixo contendo os valores de todos os demais usuários, já que o campo LINK foi definido com um asterísco.

SectionAccessWithPublisher12.PNG

Na figura acima é possível observar que nem todos os registros carregados na tabela DataSample são exibidos ao usuário autenticado. Por exemplo, os países Portugal e Mexico não estão disponíveis. Isso porque o asterísco significa que o usuário terá acesso a todos os dados dos demais presentes na seção de acesso, independente de ser um ADMIN ou USER. Porém, não significa ter acesso a todos os dados, uma vez que nem todos os registros estão configurados para acesso dos demais usuários. Veja, por exemplo, quando o acesso é realizado pelo usuário nilton.barcelos. O resultado do usuário autenticado é visualizar apenas os registros correspondentes ao país Brazil. Isso se dá pelo fato do LINK ser igual a 1.

SectionAccessWithPublisher13.PNG

Por último, assuma que o usuário autenticado seja aquele definido na tabela de seção de acesso onde o campo LINK foi deixado em branco. No exemplo da tabela criada neste artigo, o usuário é WIN-S6IG6DG6EIN\Franco.Galati, uma conta oriunda do sistema operacional que não teve valor atribuído ao campo de ligação. Neste caso, todos os registros serão apresentados, independente das restrições de acesso imposta aos demais usuários via seção de acesso.

SectionAccessWithPublisher14.PNG





Assuntos Relacionados

  • Limitar o acesso aos dados utilizando os recursos de SECTION ACCESS onde os usuários podem interagir apenas com a parcela de dados autorizados.




Envelope01.jpg
Procurando Algo? Fale Conosco!

Voltar | Página Principal