Para que a administração de usuários e permissões do sistema seja implementada, precisamos permitir que os usuários de administração tenham acesso às interfaces onde poderão efetivamente editar, criar ou excluir os membros do sistema. Depois de seguir os passos descritos na Parte 01 deste tutorial, já devemos ter os usuários configurados com as permissões de acesso definidas.
O próximo passo é trazer este sistema de segurança para a aplicação desenvolvida. Para isso, precisamos basicamente de quatro passos:
- Definir as permissões em cada objeto que seja interativo nas telas;
- Criar uma interface que permita aos usuários fazer o login e logout;
- Criar uma interface que permita os administradores configurarem os usuários;
- Usando as interfaces para gerenciamento de usuários.
Abaixo vou descrever como implementei os itens desta lista em minha aplicação. Para esclarecimento, estou usando o TIA Portal v18.
1. Definir as permissões em cada objeto que seja interativo nas telas
Esta etapa é de fato bem simples, anteriormente criamos o User Role chamado “HMI Role” como exemplo então vou usá-lo aqui para evitar desentendimentos, mas entenda que as permissões que aparecem disponíveis aqui são as que são configuradas naquela tela.
Nas propriedades de cada objeto de tela, você deve encontrar a categoria “Security”, e é no campo “Authorization” onde vamos definir a permissão mínima do usuário para interagir com aquele objeto. Veja a imagem abaixo.

2. Criar uma interface que permita aos usuários fazer o login e logout
O WinCC Unified não disponibiliza a opção de exibir diretamente o popup de login dos usuários, para chegarmos neste resultado precisamos criar um botão com determinadas configurações que nos entregam algo parecido.
O primeiro passo é colocar o botão e definir a permissão de segurança com a menor possível, dessa forma o botão vai mostrar o popup de login sempre que o usuário não tiver a menor permissão disponível dentro do runtime. No meu caso, essa seria a autorização “Monitor”.
Para indicar que há ou não um usuário logado, criei um script na dinamização do texto do botão que troca o texto em função do nome do usuário atual.

var value;
let tag1 = Tags("@UserName");
let tagValue1 = tag1.Read();
if (tagValue1 != ""){
value = "LOGOUT";
} else {
value = "LOGIN";
}
return value;
3. Criar uma interface que permita os administradores configurarem os usuários
Sem a opção de usar o bloco de administração de usuários da siemens, na versão Unified precisamos encontrar maneiras mais criativas de permitir este tipo de acesso dentro do runtime.
Desenvolvendo este projeto e pesquisando sobre o assunto, encontrei duas possibilidades de se fazer a administração de usuários. Sendo uma delas sem sair efetivamente do runtime do sistema, e a outra usa a interface do sistema operacional da IHM e precisa minimizar o runtime.
Alternativa 1:
Para o funcionamento desta alternativa precisamos habilitar o webserver nas configurações da IHM, para isso habilite a função nas configurações de runtime na árvore do projeto:

Feito isso, configuramos o acesso do webserver da IHM dentro do próprio projeto, através do bloco “WebView”. Para evitar que o usuário desconfigure o browser, eu habilitei a função “read-only” da barra de navegação e defini a url da administração de usuários locais como padrão do objeto:

É importante notar que este processo exige que o Administrador faça o login novamente dentro do ambiente web.
Alternativa 2:
A segunda alternativa é enviar o usuário para a página de administração de usuários do sistema operacional da IHM, é relativamente mais simples pois você vai simplesmente configurar o botão para minimizar o runtime e exibir a tela.
O ponto negativo deste método é que você abre ao usuário algumas configurações que podem comprometer a integridade do sistema, como configurações de IP das portas ou mesmo a reinicialização de fábrica do hardware.

4. Usando as interfaces para gerenciamento de usuários
O uso do sistema de gerenciamento de usuários é bem simples, e lembra bastante sistemas de banco de dados CRUD (Create, Read, Update e Delete).
A tela para a alternativa 1 mostra uma tabela com os usuários ja criados e permite editar, deletar e atualizar os cadastros usando os botões na coluna mais à direita. Na parte superior esquerda da tabela esta a opção de cadastro de usuários, que adiciona um novo registro à tabela e “Details” que permite configurações como “User Role”, “Status” e “Password”.
Para a alternativa 2 o principio é parecido porém quando executamos alguma alteração no usuário, é apresentado um formulário que nos permite executar as alterações na tabela.


Conclusão
Com este último tutorial da série, concluímos a implementação de um sistema de administração de usuários para o seu projeto no TIA Portal utilizando o WinCC Unified. As duas partes deste artigo nos permitiram explorar desde a definição de permissões de acesso até a criação de interfaces para login, logout, e administração de usuários.
A implementação cuidadosa dessas funcionalidades não apenas melhora a segurança do sistema, mas também proporciona uma experiência de usuário mais controlada e personalizada, assegurando que cada usuário tenha acesso somente ao que é necessário para suas funções específicas.
Ao considerar as alternativas para a administração de usuários, tanto dentro do runtime quanto utilizando a interface do sistema operacional, fornecemos opções flexíveis para diferentes necessidades de projeto. A escolha da solução mais adequada dependerá do equilíbrio entre a facilidade de uso e as considerações de segurança para o seu ambiente específico.
Obrigado por acompanhar esta série de tutoriais, e espero que as informações fornecidas tenham sido valiosas para o desenvolvimento do seu projeto.