Guardar secretos en el código (ejém… no lo hagas… ¡nunca!) o en texto plano… suena rápido, ¿verdad? Pero también suena a problemas futuros: riesgos de seguridad, dolor de cabeza en despliegues y un ciclo ALM que se convierte en pesadilla.

La buena noticia: no tienes que vivir con eso. Existe una forma segura y elegante de hacerlo: Azure Key Vault + variables de entorno de tipo secreto en Dataverse. Este dúo no solo protege tus credenciales, sino que te ayuda a mover soluciones entre entornos sin dramas…

¿Qué son las variables de entorno?

Azure Key Vault es el servicio gestionado de Azure para guardar de forma segura, controlar el acceso, auditar su uso y rotarlos cuando sea necesario.

Nos permitirá:

  • Almacenar el secreto fuera de Dataverse, que reduce la exposición.
  • Controlar el acceso RBAC: la identidad Dataverse debe tener asignados una serie de roles como Key Vault Secrets User.
  • Auditoría y rotación, si necesitamos modificar el secreto, solo tendremos que hacerlo en Key Vault.
  • Aislamiento por entorno, deberíamos usar un recurso de Key Vault por cada entorno. Muy importante, no mezclar secretos entre entornos, por ejemplo: Entorno DEV -> solo secretos de Key Vault DEV.

¿Cómo lo configuramos?

Para comenzar la configuración, abre el portal de Azure y crea un nuevo recurso de Key Vault. Una vez dentro del asistente de creación, selecciona el grupo de recursos en el que quieras crearlo.

La forma moderna de gestionar secretos en Dataverse (y por qué deberías adoptarla ya) Axazure

Cuando el Key Vault esté desplegado, accede a la sección de Secretos y añade uno nuevo con el valor que quieras almacenar. Guarda el secreto para que quede disponible.

La forma moderna de gestionar secretos en Dataverse (y por qué deberías adoptarla ya) Axazure

Después, entra en Configuración de acceso del Key Vault y activa el modo Azure RBAC, que permitirá gestionar los permisos desde Azure. 

La forma moderna de gestionar secretos en Dataverse (y por qué deberías adoptarla ya) Axazure

Con RBAC habilitado, abre la configuración de permisos en la suscripción y registra el proveedor Microsoft.PowerPlatform. Este paso es necesario para que Dataverse pueda acceder al Key Vault. 

La forma moderna de gestionar secretos en Dataverse (y por qué deberías adoptarla ya) Axazure

A continuación, asigna el rol Key Vault Secrets User a la aplicación o identidad administrada que usa Dataverse, de modo que tenga permiso para leer el secreto

La forma moderna de gestionar secretos en Dataverse (y por qué deberías adoptarla ya) Axazure

Ahora puedes ir a Power Apps. Entra en Soluciones y abre la solución donde quieras usar el secreto. Desde ahí, crea una nueva variable de entorno de tipo secreto. 

La forma moderna de gestionar secretos en Dataverse (y por qué deberías adoptarla ya) Axazure

Para finalizar, en el proceso de creación de la variable, enlázala con el secreto que generaste en Azure Key Vault. Deberás seleccionar la suscripción, el Key Vault y el nombre del secreto. 

La forma moderna de gestionar secretos en Dataverse (y por qué deberías adoptarla ya) Axazure

Y ahora ¡ya puedes usar tu variable de entorno de tipo secreto!, pero has de saber una cosa: no se puede acceder a ella igual que al resto de variables, es necesario hacerlo mediante la ejecución de una Custom Api no enlazada proporcionada por Power Platform llamada “RetrieveEnvironmentVariableSecretValue”.

Vamos a verlo con la ejecución de esta Custom Api desde un Power Automate, mediante la acción “Realizar una acción sin enlazar”, seleccionamos la acción mencionada anteriormente y añadimos el nombre de nuestra variable de entorno de tipo secreto.

La forma moderna de gestionar secretos en Dataverse (y por qué deberías adoptarla ya) Axazure

ℹ️

Si el usuario proveedor de servicio no tiene permiso, al menos de lectura, sobre el recurso Azure Key Vault, se mostrará un error en la creacion del secreto en Power Platform.

Las variables de entorno de tipo secreto, que hacen referencia a Azure Key Vault, de momento están limitadas para uso en flujos de Power Automate, agentes de Copilot Studio y conectores personalizados.

About the Author: Andrea Diez

La forma moderna de gestionar secretos en Dataverse (y por qué deberías adoptarla ya) Axazure
D365CE & PP Senior Consultant

¿Quieres compartir?