Monitoramento Automatizado de Expiração de Secrets no Azure App Registration

 Este artigo apresenta um guia prático para implementar um monitoramento automatizado utilizando Azure Logic Apps, garantindo que sua equipe seja alertada via e-mail sobre secrets próximos do vencimento.

Passo a Passo para Configuração

  - Criar um App Registration Dedicado

  1. No Azure Portal, procure por App Registration e clique em + New registration.

  2. Dê um nome descritivo.

  3. Selecione Single Tenant.

  4. Clique em Register.

- Criar um Secret para o App Registration

  1. Acesse o App Registration criado e vá para Certificates & Secrets.

  2. Clique em + New client secret.

  3. Defina um tempo de expiração.

  4. Copie e armazene o valor do secret.

 - Configurar Permissões na API do Microsoft Graph

  1. Acesse API permissions e adicione as permissões abaixo:

    • Application.Read.All

    • Application.ReadWrite.OwnedBy

    • Application.ReadWrite.All

    • Directory.Read.All

  2. Conceda consentimento administrativo (Grant admin consent).

- Criar a Azure Logic App

  1. No Azure Portal, busque por Logic Apps.

  2. Crie um novo Logic App (Consumption).

  3. No Designer, configure um gatilho de recorrência para rodar diariamente.

- Implementar a Lógica de Monitoramento

Criar variáveis:

    • appID (string)

    • displayName (string)

    • passwordCredential (array)

  1. Chamar a API do Microsoft Graph para listar secrets:

    • Método: GET

    • URI: https://graph.microsoft.com/v1.0/applications?$select=id,appId,displayName,passwordCredentials,endDateTime

    • Autenticação: OAuth 2.0 (com App Registration criado


- Analisar JSON

Para continuar criando o aplicativo lógico, precisamos preencher o corpo da função HTTP,

Permanecer no modo Executar ou

Clique em Executar gatilho > Executar,

Você deve terminar com este resultado,


- Permaneça no modo Executar > selecione sua função HTTP e copie todo o conteúdo do corpo HTTP e cole em um bloco de notas,


- Volte para o modo Designer,

Agora clique em + Adicionar uma ação e escolha a próxima operação:

Pesquise e analise Json e selecione,


- Dentro de sua função, > clique na barra de conteúdo e selecione o corpo, 

- Agora clique em Usar carga útil de amostra para gerar o link do esquema


- Cole o código do corpo HTTP (que você copiou para o bloco de notas) na tela de carga útil JSON,

- Clique em Salvar para certificar-se de que tudo está configurado corretamente,

Para verificação> Executar Gatilho > Executar

- Saida esperada.

- Crie um loop For Each e agora você adicionará 3 variáveis de conjunto x:

JSON > appID
JSON > displayName
JSON > passwordCredentials


Clique em Salvar para certificar-se de que tudo está configurado corretamente,

- dentro do seu 1º Loop For Each > agora você vai incorporar um 2º For Each Loop:

Adicione uma ação > > de controle para cada > select Analisar JSON – passwordCredentials

Este próximo passo é importante! Renomeie este loop incorporado com cuidado!

- Renomeie este 2º loop For Each para um nome exclusivo, pois isso será referenciado em sua condição que será criada posteriormente!


- Salve antes de continuar!

Talvez seja necessário atualizar a janela para uma exibição atualizada,

Clique em Salvar para certificar-se de que tudo está configurado corretamente,

Para verificação> Executar Gatilho > Executar

Saída esperada:

- Fique dentro do seu novo for each. Para cada senha Credentials Loop > agora você vai incorporar uma condição:

Adicionar uma ação > controle > condição 

Selecione a barra de valores:

clique em Expressão e cole

items('For_each_passwordCredentials')? ['endDateTime']

Selecione a caixa de valor central e selecione sua opção:

É menor ou igual a

Selecione a caixa do 3º valor e defina quantos dias você deseja ser alertado sobre expirações de segredos:

addToTime(utcNow(),30,'dia')


- Salve antes de continuar!

Clique em Salvar para certificar-se de que tudo está configurado corretamente,

Para verificação> Executar Gatilho > Executar

Saída esperada:


- Vamos criar um evento de notificação quando a condição for True:

Clique no > de bloco True + Adicionar uma ação

Pesquisar email > selecione Office 365 Outlook >

Pesquise e selecione o ícone Enviar um e-mail (v2)


Clique em Entrar,

- Entre com uma conta de e-mail do sistema de domínio que não requer MFA,
No campo Para: insira o endereço de email do grupo de distribuição,
No campo Assunto do e-mail: insira a linha de assunto do e-mail e adicione AppID ou DisplayName da seção de variáveis,
Preencha o corpo do email que o público do grupo de distribuição receberá:

Salvar
Corra e acione > corra
Depois de provisionado, o Aplicativo Lógico levará cerca de 20/30 minutos para começar a enviar emails.


- E-mail recebido com sucesso!!















Comentários

Postagens mais visitadas deste blog

Microsoft Authenticator agora suporta Passkeys: Como ativar e testar

Mudança no Processo de Exclusão de Usuário no Microsoft 365

Microsoft está removendo as permissões "Todos, exceto usuários externos" no OneDrive