Escolha uma Página
Esconder informações da execução do seu fluxo no Power Automate

Esconder informações da execução do seu fluxo no Power Automate

Olá pessoal! 👋

Contexto

 

Imagine que você está trabalhando com dados sensíveis dentro do seu fluxo no Power Automate, seja um dado processado, uma chave, ou varíavel que está sendo utilizada, e você precisa garantir que pessoas que tenham acesso a ver as execuções desses fluxos NÃO tenham acesso à esses valores.

No exemplo abaixo, ao olhar uma execução de fluxo, conseguimos ver tanto o valor no Input quanto no Output, então se estivessemos utilizando alguma chave, variável ou dado sensível, ele estaria disponível, assim como o texto “Valor a ser escondido” está aparecendo.

Solução

Para esconder informações, vamos utilizar um recurso que temos nas ações chamado de “Secure Inputs”

Vamos então abrir nosso fluxo no modo de edição (essa opção está disponível tanto no modo clássico como no modo New Designer), e clicar na ação que desejamos garantir segurança:

Clique em Settings e depois marque a opção de Secure Inputs como On, isso vai garantir que as informações utilizadas como entrada para essa ação serão bloquedas para visualização fora do visual de edição do fluxo, como você pdoe ver o cadeado ao lado da ação.

Pronto! você está pronto para executar seu fluxo e ver os resultados escondidos: 

Bem legal, ein!? 

Resumo

Nesse post vimos como podemos garantir um pouco mais de segurança dentro dos nossos fluxos, mas que fique claro que existem várias outras formas mais apropriadas para melhorar a governança e segurança das informações tratadas dentro dos seus fluxos.

Te vejo no próximo post!

 

Como atualizar fotos dos usuários da Power Platform com a foto do Microsoft 365 através do Power Automate

Como atualizar fotos dos usuários da Power Platform com a foto do Microsoft 365 através do Power Automate

Olá pessoal!

Quando utilizamos o Dataverse em qualquer projeto, seja ele utilizando algum produto do Microsoft Dynamics 365 ou um aplicativo Model-driven do Power Apps, temos uma tabela chamada Usuários, que é sincronizado ao Azure Active Directory (ou Microsoft Entra ID como é chamado agora)

Essa tabela, apesar de ser sincronizada ao Microsoft Entra ID, possui um campo específico de foto, que não é integrado e portanto, por padrão para todos usuários vem vazia.

Com isso, os usuários acabam ficando com as iniciais como foto quando utilizados em campos de lookup (em alguns casos o campo consegue identificar a foto vinda do Microsoft 365 automaticamente) ou principalmente quando usamos em um contexto onde a tabela de usuários é utilizada para gerar recursos , como por exemplo quando utilizamos o Universal Resource Scheduling (https://learn.microsoft.com/pt-br/dynamics365/common-scheduler/schedule-anything-with-universal-resource-scheduling?wt.mc_id=DX-MVP-50028505002850).

Na maioria dos casos, ficará assim:

Manualmente, podemos atualizar essa foto clicando no ícone do usuário e fazendo o upload da foto:

Como então podemos automatizar esse processo e garantir que os usuários tenham as fotos sincronizadas com suas fotos do Microsoft 365?

 

Solução

Com o Power Automate é possível atualizarmos essa foto, salvando o Base64 da imagem diretamente nesse campo, que é um campo de imagem escondido ao usuário final, porém disponível no contexto do nosso fluxo. 👌😉

Vamos lá então, nesse exemplo vou criar um fluxo manual que irá rodar apenas uma vez, mas você pode utilizar o mesmo conceito para criar um fluxo automatico que sincronize a foto de tempos em tempos ou de acordo com a necessidade.

Estou também recebendo como parâmetro o e-mail do usuário, para não executar para todos usuários na tabela (sendo que em alguns casos temos todos usuários do Entra ID, que podem ser alguns milhares

Vamos criar um fluxo de gatilho manual então, recebendo o e-mail do usuário que gostaríamos de atualizar:

Agora vamos buscar esse usuário na tabela de Usuários pelo e-mail, podemos fazer isso de diversas formas, mas como esse é um fluxo de demonstração, vou utilizar a ação List Rows do Microsoft Dataverse.

Vamos selecionar a tabela de Usuários, e utilizar o Filter de OData para filtrar o usuário pelo e-mail, utilizando o campo domainname, você pode utilizar o internalemailaddress ou outro campo que encaixe para você:

Agora para pegarmos a foto do usuário do Microsoft 365, vamos utilizar a ação Get user photo (v2) conector do Microsoft 365.

Para buscarmos a foto, vamos precisar passar o e-mail no parâmetro User (UPN), nesse caso estou passando o mesmo e-mail do parâmetro inicial.

Agora para cada item encontrado no nosso List Rows (no caso será apenas um registro), vamos atualizar o item da tabela de Usuários com o campo da foto encontrada no conector do Microsoft 365.

O Apply to each está conectado ao value do List Rows:

Coloquei uma ação Update Row do conector Microsoft Dataverse, que servirá para atualizar o campo de imagem do usuário.

Vamos colocar a tabela Users, e o Row ID vindo do item listado no Apply to each, assim sabemos que estamos atualizando o registro correto.

O campo a ser atualizado se chama Entity Image e existe um truque para atualizarmos esse campo. 🪄🧙‍♂️

Não podemos simplesmente colocar o retorno do conector do Microsoft 365 no campo Entity Image, por que o retorno dessa ação é um objeto que tem o tipo da imagem e o Base64 da imagem.

O truque é utilizar somente o base64 da imagem, para isso você pode utilizar uma fórmula:

body('Get_user_photo_(V2)')?['$content']

    1. Get_user_photo_(V2): Nome da ação do seu conector do Microsoft 365

    1. ?['$content']: Fórmula responsável por pegar o conteúdo base64 da imagem

Pronto! ✅ Agora se executar esse fluxo, e preencher a execução com o e-mail, a foto do usuário será atualizada:

Espero que essa dica seja útil para você, me diz ai nos comentários o que achou 😊❤️

Você pode fazer o download do fluxo de exemplo direto do meu Github:

GITHUB DOUGLAS ROMÃO: Update_PowerPlat_Users_photo_with_M365_photo.zip

Obrigado e até a próxima!