$securedAccess() - Campos Seguros
Esta keyword se usa para mostrar, dentro de la instancia actual, valores que están guardados en una definición separada y con acceso controlado, sin duplicar nunca esos valores en la definición actual. A diferencia de $restricted(), que oculta un campo de la instancia actual a los usuarios fuera de un determinado grupo, $securedAccess() mantiene los datos sensibles en una definición propia — con sus propios permisos controlando el acceso directo — y los trae, enmascarados, solo allí donde son necesarios.
$securedAccess() se aplica a un campo de tipo grupo. Los campos dentro de ese grupo usan $securedInfo() para elegir qué campos de la definición segura se muestran.
Uso:
$securedAccess(definition_name,reference_field)Opciones:
definition_name: el nombre de la definición segura que contiene los campos sensiblesreference_field: el nombre del campo de referencia en la definición segura que apunta de vuelta a la definición actual. RecordM lo usa para averiguar qué instancia de la definición segura pertenece a la instancia que se está mostrando
| Parámetro | Descripción |
|---|---|
definition_name | La definición segura donde se guardan los valores sensibles. Sus propias keywords de campo ($restricted(), $editForGroup(), …) y permisos siguen aplicándose. |
reference_field | El campo de referencia declarado en la definición segura, apuntando a la definición actual. La instancia segura es aquella cuyo reference_field coincide con la instancia actual. |
WARNING
$securedAccess() debe usarse en un campo que esté también declarado como $group. La keyword no tiene efecto en un campo normal. Se combina habitualmente con $expanded, para que el bloque seguro quede abierto cuando se muestra la instancia.
$securedInfo() - Mostrar un campo seguro
Cada campo dentro de un grupo $securedAccess() declara qué campo de la definición segura muestra.
$securedInfo(remote_field)Opciones:
remote_field: el nombre del campo en la definición segura cuyo valor se muestra en la instancia actual
WARNING
$securedInfo() solo es válida en un campo hijo directo de un grupo configurado con $securedAccess(). No se resuelve en campos colocados fuera de ese grupo, ni en campos anidados un nivel más abajo, dentro de un subgrupo — los valores seguros deben listarse inmediatamente bajo el grupo $securedAccess().
Cómo se muestran los valores
Un grupo $securedAccess() se muestra como un bloque destacado, visualmente separado del resto de la instancia, con un botón de revelar (el ojo tachado) que alterna los valores seguros entre su forma enmascarada y su valor real.
INFO
Los valores dentro del grupo están enmascarados por defecto — cada uno se muestra como ************ — de modo que abrir o imprimir una instancia nunca expone accidentalmente los datos sensibles. Los valores nunca se guardan en la definición actual: se leen de la definición segura cada vez que se muestra la instancia.
$securedAccess() es un mecanismo de enmascaramiento y de auditoría, no una barrera de acceso en la instancia que los muestra. Cualquier usuario con privilegio para ver la instancia que envuelve la información sensible podrá revelarla: el ojo tachado existe para que los valores no queden expuestos por accidente cuando la instancia se abre, se imprime o se comparte en pantalla, y para que cada revelación quede registrada. Restringir quién puede llegar a los valores se hace de la forma habitual, mediante los permisos de la definición segura, que controlan el acceso directo a la misma, y mediante las keywords de campo declaradas en el grupo, y no mediante $securedAccess() en sí.
Ejemplos
1. Credenciales de equipos fuera del inventario
La definición Devices es el inventario de equipos de la operación: todo el mundo en soporte la consulta para saber el fabricante, el modelo y la dirección de gestión de un equipo. Las credenciales de acceso a esos equipos son necesarias en el mismo sitio — un operador que está diagnosticando un equipo no debería tener que buscarlas en otro lado —, pero no deben estar a la vista en el inventario, deben existir en un único sitio en lugar de copiarse en cada registro de equipo, y cada lectura debe quedar trazable.
Las credenciales se guardan, por tanto, en una definición propia, Device Credentials, que tiene un campo de referencia Device apuntando a Devices:
Device $ref(Devices)
Admin Password
Enable Password
SNMP CommunityDevices las muestra después a través de un 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)En este ejemplo:
Credentialses el grupo que soporta el acceso seguro. El$expandedlo mantiene abierto cuando se muestra la instancia.Device Credentialses la definición que contiene las contraseñas. Es el único sitio donde estas existen y la única cuyos permisos hay que revisar en cuanto al acceso directo.Devicees el campo de referencia dentro deDevice Credentialsque apunta aDevices. Las credenciales mostradas son aquellas cuyoDevicees el equipo que se está mostrando.- Cada campo hijo muestra un campo de esa instancia segura.
WARNING
Esto mantiene las credenciales enmascaradas y sus revelaciones trazables, pero no impide que un usuario de soporte las revele: quien pueda abrir la instancia de Devices puede hacer clic en el ojo. Si las credenciales no deben ser accesibles en absoluto para usuarios fuera del equipo de redes, restrinja el propio grupo Credentials, para que el bloque solo se muestre a ese grupo.


La instancia pasa entonces a mostrar un bloque Credentials con los tres valores enmascarados, listos para ser revelados cuando el usuario hace clic en el icono del ojo:

