# Acesso de clientes

> Os certificados dos aplicativos OPC UA que discam para esta estação: cadastrar um cliente, revisar e confiar ou bloquear certificados, os endereços de conexão, a regra do Firewall do Windows, as sessões ao vivo e a relação de confiáveis.

Acesso de clientes é o terceiro cartão do painel do servidor OPC UA no Connector. É a relação dos certificados de aplicativo que o servidor embutido encontrou e o que você decidiu sobre cada um: um certificado desconhecido é recusado na primeira tentativa e guardado aqui para revisão, confiar nele deixa o aplicativo alcançar o servidor, bloqueá-lo o mantém de fora em silêncio. O topo do cartão diz isso: "Um certificado de cliente identifica o aplicativo que pede conexão. Confie apenas em uma impressão digital que você conferiu com quem comissionou aquele cliente." Ver Connector lê o cartão; Configurar Connector decide, e toda decisão é tomada no desktop da própria estação.

Sob o topo fica um princípio: "A confiança no certificado e a entrada são conferências separadas. A confiança permite que este certificado de aplicativo alcance o servidor. A configuração de autenticação de cliente acima ainda decide se ele conecta de forma anônima ou com o usuário e a senha configurados. Os nomes de certificado são declarados pelo cliente; a impressão digital SHA-256 é a identidade a verificar."

## Quem pode decidir {#who-may-decide}

Todo botão do cartão obedece a uma regra, e a dica dele diz que parte recusou: "O acesso de clientes só pode ser mudado no aplicativo instalado na estação." num navegador em outro dispositivo (o cartão também mostra o aviso "Abra o aplicativo da estação para mudar o acesso de clientes": os navegadores remotos podem inspecionar a relação, não mudá-la); um papel sem Configurar Connector não recebe os botões desenhados; "A configuração está travada enquanto uma Unidade está em execução." enquanto uma unidade está em execução; "Outra mudança de acesso de clientes está em andamento." enquanto uma decisão, uma importação ou o comando de firewall roda. Um toque que passe mesmo assim é respondido com a mesma frase na barra de status, onde todo desfecho deste cartão aparece.

## Adicionar cliente {#add-client}

| Comando | O que ele faz | Esmaecido quando (situação) | Não aparece quando (papel) |
| --- | --- | --- | --- |
| Adicionar cliente | Abre uma janela de escuta de cinco minutos: "Janela de adicionar cliente aberta por cinco minutos. Inicie a conexão no cliente OPC UA; se ele pedir antes que você confie nesta estação, confirme por lá e tente de novo." Enquanto ela está aberta, o topo mostra o tempo restante (mm:ss) com uma pulsação. | Pela regra acima. | Desenhado enquanto nenhuma janela está aberta. |
| Cancelar | Fecha a janela: "Janela de adicionar cliente fechada. Os certificados desconhecidos seguem desconectados." | Pela regra acima. | Desenhado enquanto uma janela está aberta. |

A janela explica uma tentativa; ela nunca identifica uma e nunca confia em nada. Enquanto ela está aberta o cartão carrega o aviso de atenção "Esperando um certificado de cliente · mm:ss": "Inicie a conexão no cliente OPC UA agora. Se esse cliente recusar primeiro o certificado do servidor desta estação, confirme que ele é esta estação Ganter Lab, confie nele no cliente e tente de novo. O certificado do cliente aparecerá então em Aguardando aprovação; o Ganter Lab não confia em nada automaticamente." A janela expira sozinha no prazo.

### Este é o cliente que você está adicionando? {#is-this-the-client-you-are-adding}

Um certificado que chega com a janela aberta é mostrado num aviso com esse título: "Um cliente apresentou este certificado enquanto Adicionar cliente estava aberto. Confira com o cliente que você está comissionando antes de esta estação considerá-lo esperado. Até você responder, ele continua sendo um certificado desconhecido na lista abaixo e segue desconectado.", com o Nome, o Emitido para e a Impressão digital dele.

| Comando | O que ele faz |
| --- | --- |
| Este é o cliente | Marca-o como o cliente que você quis dizer e fecha a janela: "`<nome>` está confirmado como o cliente que você está adicionando, e a janela de adicionar cliente foi fechada. Ele segue desconectado até você confiar nele abaixo." Ele ainda tem de ser confiado em Aguardando aprovação. |
| Este não | Deixa-o como um certificado desconhecido comum e continua escutando: "`<nome>` segue sendo um certificado desconhecido aguardando revisão. A janela de adicionar cliente continua escutando." |

Só a sua resposta ou o prazo fecham a janela, então uma tentativa de qualquer outra pessoa não consegue gastá-la nem tomar emprestada a redação dela. Uma janela nova esquece os pedidos não respondidos da anterior.

## Aguardando aprovação {#pending-approval}

O grupo é desenhado enquanto ao menos um certificado espera, encabeçado por "Aplicativos desconhecidos seguem desconectados até você decidir." com a contagem. Cada linha mostra um ponto âmbar, o nome que o certificado declara, "Identidade declarada do aplicativo", a impressão digital SHA-256, "Última tentativa `<data e hora>` · N tentativas de conexão", e um detalhamento **Detalhes do certificado** com Emitido para, Emitido por, Application URI, Nomes de domínio, Válido de, Válido até e Visto primeiro em. A linha a que o Revisar de uma notificação levou é marcada com "Selecionado para revisão" e trazida à vista.

| Comando | O que ele faz | Esmaecido quando (situação) |
| --- | --- | --- |
| Confiar | Move o certificado para os Clientes confiáveis e atualiza o validador ao vivo, então o cliente pode tentar de novo na hora: "`<nome>` passou a ser confiável. O cliente pode tentar a conexão de novo." | Pela regra acima. |
| Bloquear | Move-o para os Clientes bloqueados, desconecta qualquer sessão que o use e continua recusando-o sem mais perguntas: "`<nome>` está bloqueado. As próximas tentativas com este certificado continuarão recusadas." | Pela regra acima. |
| Descartar todos os certificados pendentes (no topo do grupo, na tinta de perigo) | Pergunta "Descartar o certificado que aguarda revisão?" ou "Descartar os N certificados que aguardam revisão?" ("Nada é confiado nem bloqueado com isso: os pedidos são removidos e a lista abre espaço de novo. Um cliente que conectar depois disso aparece aqui como um pedido novo."), com **Descartar** e **Manter a lista**. Depois, "N certificados que aguardavam revisão foram descartados." | Pela regra acima. |

Um certificado continua desconectado até você decidir; as novas tentativas atualizam a contagem de tentativas e a hora da última sem uma segunda notificação.

### A lista de revisão está cheia {#the-review-list-is-full}

A lista guarda no máximo 100 certificados. Enquanto ela está cheia, um certificado desconhecido a mais continua recusado mas não é retido, e o cartão diz isso num aviso de atenção: "A lista de revisão abaixo está cheia. Enquanto estiver, um certificado novo é recusado sem ser acrescentado aqui, então o cliente que você espera pode nunca aparecer. Descarte os certificados que aguardam revisão para abrir espaço.", ou, uma vez que houve descartes, "…e 1 certificado foi rejeitado sem ser acrescentado aqui desde que ela encheu. O cliente que você espera pode ser esse…" ou "…e N certificados foram rejeitados…". Toda recusa dessas também é registrada no diário. O contador zera quando há espaço de novo.

## Endereços de conexão {#connection-addresses}

"Use o endereço que corresponde ao lugar onde o cliente roda." Dois endereços somente leitura: **Este computador**, `opc.tcp://localhost:<port>/UA/GanterLab`, para um cliente na própria estação, e **Rede local**, `opc.tcp://<network name>:<port>/UA/GanterLab`, para um cliente em outro lugar da LAN. O nome e a porta são os da [Configuração](connector-opcua-configuration): o nome escrito em **Nome de rede**, ou o do próprio computador enquanto esse campo estiver vazio.

## Firewall do Windows {#windows-firewall}

Um ponto e uma frase declaram se a regra de entrada de propriedade do aplicativo permite a porta atual, com uma ação quando ela não permite.

| Estado | Texto |
| --- | --- |
| Permitido (verde) | "As conexões OPC UA de entrada estão liberadas na porta N para redes privadas e de domínio." |
| Não configurado (âmbar) | "Os clientes da rede podem estar bloqueados porque nenhuma regra deste aplicativo libera a porta N." O botão **Liberar a rede local** é desenhado. |
| Sem suporte (cinza) | "Esta execução não consegue administrar o Firewall do Windows. Configure o acesso de entrada no sistema operacional se for preciso." Uma abertura de desenvolvimento, portátil ou de demonstração, ou qualquer execução que não seja o aplicativo instalado. |
| Desconhecido (cinza) | "Não foi possível determinar a situação do Firewall do Windows." |

| Comando | O que ele faz | Esmaecido quando (situação) |
| --- | --- | --- |
| Liberar a rede local | Inicia o ajudante do próprio aplicativo com elevação, então o Windows pede aprovação de administrador, e acrescenta a regra para a porta, com escopo nos perfis Particular e de Domínio e na sub-rede local. Diz "Aplicando…" enquanto isso, e depois "O Firewall do Windows agora libera as conexões OPC UA na porta N." ou o texto de estado como erro; um pedido de aprovação cancelado deixa o estado em Não configurado. | Pela regra acima (um navegador em outro dispositivo não consegue pressioná-lo). |

O estado é lido de novo quando a página abre e sempre que a configuração muda; uma mudança de porta portanto mostra Não configurado até você permitir a porta nova. A regra cobre só a porta OPC UA; o dashboard web tem a regra própria dele, aplicada automaticamente pelo [Acesso remoto](remote-access).

## Conectados agora {#connected-now}

"Sessões OPC UA ao vivo aceitas pelo servidor.", com a contagem. Uma tabela lista cada sessão: Estado (um ponto verde, "Ao vivo"), Sessão (o nome que o cliente lhe deu), Cliente declarado (o aplicativo ou o hospedeiro que o cliente relata), Usuário (a identidade com que ele entrou, ou Anônimo) e Conectado (a hora do dia em que ele conectou). Sem nenhuma: "Nenhum cliente OPC UA conectado." A lista é lida de novo a cada segundo e fica vazia enquanto o servidor está parado.

## Clientes confiáveis {#trusted-clients}

"Certificados autorizados a estabelecer conexões seguras daqui em diante.", com a contagem. Cada linha mostra um ponto neutro, o nome declarado, "Identidade declarada do aplicativo · Confiado por `<usuário>` em `<data e hora>`" (ou "nesta estação" quando ninguém estava autenticado), a impressão digital, e um detalhamento com Emitido para, Emitido por, Application URI, Nomes de domínio, Válido até e Visto por último em. Sem nenhum: "Nenhum certificado de cliente confiável."

| Comando | O que ele faz | Esmaecido quando (situação) |
| --- | --- | --- |
| Importar certificado (no topo do grupo) | Abre um seletor de arquivos para o certificado público do cliente (`.der`, `.cer`, `.crt` ou `.pem`, até 64 KB) e confia nele antes da primeira conexão dele: "`<nome>` passou a ser confiável a partir de `<arquivo>`. Confira a impressão digital abaixo com a que o cliente informa." Um arquivo maior é recusado: "`<arquivo>` é maior que um certificado de cliente. Importe o arquivo do certificado público (.der, .cer ou .pem), não um pacote compactado."; um arquivo que não é um certificado: "Não foi possível importar `<arquivo>`: …". | Pela regra acima. |
| Revogar (na linha, tinta de perigo) | Pergunta "Revogar `<nome>`?": "Este certificado deixa de ser confiável e as sessões atuais que o usam serão desconectadas. O cliente precisa passar por revisão de novo antes de poder reconectar.", com **Revogar** e **Manter confiável**. O certificado é então bloqueado, as sessões dele são fechadas e o validador é atualizado: "A confiança em `<nome>` foi revogada. Novas sessões e reconexões estão bloqueadas; o servidor também pediu o encerramento das sessões ativas correspondentes." | Pela regra acima. |

A dica sob o topo diz por que a importação existe: "Já tem o certificado público do cliente? Importe-o aqui para confiar nele antes da primeira conexão, em vez de deixar a conexão falhar uma vez. Confira a impressão digital que ele acrescenta com a que o cliente informa." Importar um certificado que estava bloqueado levanta o bloqueio.

## Clientes bloqueados {#blocked-clients}

Um detalhamento recolhido, "Clientes bloqueados" com a contagem, desenhado só enquanto existe ao menos um. Cada linha mostra um ponto vermelho, o nome declarado, "Identidade declarada do aplicativo · Bloqueado por `<usuário>` em `<data e hora>`", a impressão digital, e o **Desbloquear**, que devolve o certificado ao Esperando aprovação sem confiar nele: "`<nome>` foi desbloqueado e voltou a aguardar revisão." Um certificado bloqueado não levanta perguntas repetidas e fica de fora até você decidir de novo.

## Como você fica sabendo de uma tentativa {#how-you-learn-of-an-attempt}

Uma primeira tentativa de um aplicativo desconhecido levanta um cartão grudado de notificação no shell, "Cliente OPC UA aguardando aprovação" (ou "N clientes OPC UA aguardando aprovação"), nomeando o certificado mais recente e os primeiros caracteres da impressão digital dele, com uma ação **Revisar** que abre esta seção naquela linha. Para uma janela escondida, uma notificação do Windows diz "Tentativa de conexão OPC UA bloqueada", ou "Certificado OPC UA esperando a sua conferência" quando a tentativa chegou durante o Adicionar cliente. O cartão acompanha a lista: ele é substituído conforme certificados chegam e dispensado quando nada está pendente; uma partida com pedidos já à espera restaura um cartão de resumo discreto e nenhuma notificação do Windows. O próprio cliente vê um erro de certificado não confiável até você confiar nele.

## Onde as decisões moram {#where-the-decisions-live}

Os repositórios são repositórios de diretório OPC UA sob `ua\pki` na raiz de dados da estação (`trusted`, `pending`, `blocked`, o repositório de diagnóstico `rejected` do próprio SDK, e `own` para o certificado da estação), com as contagens de tentativa e as decisões em `client-access.json`. Uma decisão é escrita no repositório antes de ser anunciada, então a tela e o validador ao vivo nunca podem discordar; os repositórios são reconciliados a cada partida, e um bloqueio explícito sempre prevalece sobre a confiança, que prevalece sobre um pedido pendente. Eles não fazem parte de um [backup](settings-backups) de configuração.

## O que esta seção não faz {#what-this-section-does-not-do}

Nada é confiado automaticamente, nunca: nenhum repositório vazio habilita a aceitação, e não há integração com servidor de descoberta. O cartão não cria certificados para clientes, não desconecta uma sessão sem revogar o certificado dela, não concede direitos por cliente (um aplicativo confiável tem os direitos que o modo de autenticação dá), e não gerencia os certificados dos equipamentos para os quais a estação disca, que estão no [Acesso de equipamentos](driver-opc-ua#equipment-access).
