$securedAccess() - Campos Seguros
Esta keyword é usada para apresentar, dentro da instância atual, valores que estão guardados numa definição separada e com acesso controlado, sem nunca duplicar esses valores na definição atual. Ao contrário de $restricted(), que esconde um campo da instância atual aos utilizadores fora de um determinado grupo, $securedAccess() mantém os dados sensíveis numa definição própria — com as suas próprias permissões a controlar o acesso direto — e traz esses valores, mascarados, apenas para onde são necessários.
$securedAccess() é aplicada a um campo do tipo grupo. Os campos dentro desse grupo usam $securedInfo() para escolher quais os campos da definição segura que são apresentados.
Utilização:
$securedAccess(definition_name,reference_field)Opções:
definition_name: o nome da definição segura que contém os campos sensíveisreference_field: o nome do campo de referência na definição segura que aponta de volta para a definição atual. O RecordM usa-o para descobrir qual a instância da definição segura que pertence à instância que está a ser apresentada
| Parâmetro | Descrição |
|---|---|
definition_name | A definição segura onde os valores sensíveis estão guardados. As suas próprias keywords de campo ($restricted(), $editForGroup(), …) e permissões continuam a aplicar-se. |
reference_field | O campo de referência declarado na definição segura, a apontar para a definição atual. A instância segura é aquela cujo reference_field corresponde à instância atual. |
WARNING
$securedAccess() tem de ser usada num campo que esteja também declarado como $group. A keyword não tem efeito num campo normal. É habitualmente combinada com $expanded, para que o bloco seguro fique aberto quando a instância é apresentada.
$securedInfo() - Mostrar um campo seguro
Cada campo dentro de um grupo $securedAccess() declara qual o campo da definição segura que apresenta.
$securedInfo(remote_field)Opções:
remote_field: o nome do campo na definição segura cujo valor é apresentado na instância atual
WARNING
$securedInfo() só é válida num campo filho direto de um grupo configurado com $securedAccess(). Não é resolvida em campos colocados fora desse grupo, nem em campos aninhados um nível mais abaixo, dentro de um subgrupo — os valores seguros têm de ser listados imediatamente sob o grupo $securedAccess().
Como os valores são apresentados
Um grupo $securedAccess() é apresentado como um bloco destacado, visualmente separado do resto da instância, com um botão de revelar (o olho riscado) que alterna os valores seguros entre a sua forma mascarada e o valor real.
INFO
Os valores dentro do grupo estão mascarados por omissão — cada um é apresentado como ************ — pelo que abrir ou imprimir uma instância nunca expõe acidentalmente os dados sensíveis. Os valores nunca são guardados na definição atual: são lidos da definição segura sempre que a instância é apresentada.
$securedAccess() é um mecanismo de mascaramento e de auditoria, não uma barreira de acesso na instância que os apresenta. Qualquer utilizador com privilégio para ver a instância que envolve a informação sensível conseguirá revelá-la: o olho riscado existe para que os valores não sejam expostos por acidente quando a instância é aberta, impressa ou partilhada no ecrã, e para que cada revelação fique registada. Restringir quem pode chegar aos valores faz-se da forma habitual, pelas permissões da definição segura, que controlam o acesso direto à mesma, e pelas keywords de campo declaradas no grupo, e não pela $securedAccess() em si.
Exemplos
1. Credenciais de equipamentos fora do inventário
A definição Devices é o inventário de equipamento da operação: toda a gente no suporte a consulta para saber o fabricante, o modelo e o endereço de gestão de um equipamento. As credenciais de acesso a esses equipamentos são necessárias no mesmo sítio — um operador a diagnosticar um equipamento não deve ter de as ir procurar a outro lado —, mas não devem estar à vista no inventário, devem existir num único sítio em vez de serem copiadas para cada registo de equipamento, e cada leitura deve ficar rastreável.
As credenciais são, por isso, guardadas numa definição própria, Device Credentials, que tem um campo de referência Device a apontar para Devices:
Device $ref(Devices)
Admin Password
Enable Password
SNMP CommunityDevices apresenta-as depois através de um grupo seguro:
Name $instanceLabel
Management IP
Credentials $group $expanded $securedAccess(Device Credentials,Device)
Admin Password $securedInfo(Admin Password)
Enable Password $securedInfo(Enable Password)
SNMP Community $securedInfo(SNMP Community)Neste exemplo:
Credentialsé o grupo que suporta o acesso seguro. O$expandedmantém-no aberto quando a instância é apresentada.Device Credentialsé a definição que contém as passwords. É o único sítio onde estas existem e a única cujas permissões precisam de ser revistas quanto ao acesso direto.Deviceé o campo de referência dentro deDevice Credentialsque aponta paraDevices. As credenciais apresentadas são aquelas cujoDeviceé o equipamento que está a ser mostrado.- Cada campo filho apresenta um campo dessa instância segura.
WARNING
Isto mantém as credenciais mascaradas e as suas revelações rastreáveis, mas não impede um utilizador do suporte de as revelar: quem conseguir abrir a instância de Devices consegue clicar no olho. Se as credenciais não puderem sequer estar acessíveis a utilizadores fora da equipa de rede, restrinja o próprio grupo Credentials, para que o bloco só seja apresentado a esse grupo.


A instância passa então a mostrar um bloco Credentials com os três valores mascarados, prontos a serem revelados quando o utilizador clica no ícone do olho:

