Implementação de soluções de segurança no Azure

Resumo de autenticação com MSAL, Managed Identity, SDK do Key Vault, App Configuration e Microsoft Graph.

A seguranca do Azure e um dos dominios principais do exame AZ-204. Cobre um amplo escopo: registro de aplicativos por meio da Microsoft Identity Platform, aquisicao de tokens com MSAL, uso da API do Microsoft Graph, acesso sem credenciais com Managed Identity, gerenciamento de segredos com Key Vault e configuracao centralizada com App Configuration.

 

Microsoft Identity Platform e Registro de Aplicativos

O registro de aplicativos e o processo de registrar um aplicativo no Azure AD (Entra ID). Pense no check-in de um hotel como exemplo. Para se hospedar no hotel (Azure AD), voce precisa se registrar no sistema de reservas. Apos o registro, voce recebe um ID de hospede (ID do cliente) que usa para acessar os servicos.

Voce deve entender os componentes principais do registro de aplicativos.

| Componente | Descricao | Exemplo | |------------|-----------|---------| | ID do cliente (Application ID) | UUID unico que identifica o aplicativo | 550e8400-e29b-41d4-a716-... | | ID do locatario (Directory ID) | UUID que identifica a organizacao Azure AD | UUID diferente por organizacao | | URI de redirecionamento | URL para redirecionar usuarios apos autenticacao | https://myapp.com/auth/callback | | Segredo do cliente | Senha usada pelo aplicativo (tem vencimento) | Gerado diretamente, deve ser armazenado com seguranca | | Certificado | Alternativa mais segura ao segredo do cliente | Fazer upload de arquivo PEM/CER |

Distincao importante: Tanto os segredos do cliente quanto os certificados sao usados para autenticacao de aplicativos, mas os certificados sao mais seguros. No exame, escolha certificados como o "metodo mais seguro."

 

MSAL: Uma Biblioteca que Facilita o Gerenciamento de Tokens

O MSAL (Microsoft Authentication Library) e uma biblioteca de autenticacao fornecida pela Microsoft para que os desenvolvedores nao precisem implementar os protocolos OAuth 2.0/OpenID Connect por conta propria. Pense em um aplicativo de transporte como exemplo. Voce poderia encontrar seu proprio caminho, mas o aplicativo lida com todo o roteamento e calculo de tarifas por voce. O MSAL lida com aquisicao, renovacao e armazenamento em cache de tokens.

Funcionalidades Principais

Aquisicao de tokens: Obtem tokens de acesso por meio do login do usuario (permissao delegada) ou o proprio aplicativo (permissao de aplicativo) Cache de tokens: Armazena tokens ja emitidos e os reutiliza ate o vencimento (evita logins desnecessarios) Renovacao de tokens: Usa automaticamente tokens de atualizacao para emitir novos tokens de acesso quando vencidos Varios fluxos de autenticacao: Fornece fluxos adequados para aplicativos web, desktop, moveis e servicos em segundo plano

Tipos de Permissao

| Tipo de Permissao | Descricao | Quando Usar | |-------------------|-----------|------------| | Delegada | Age em nome de um usuario conectado | Aplicativos com usuarios (web, mobile) | | Aplicativo | O proprio aplicativo age sem um usuario | Servicos em segundo plano, daemons |

No exame, distinga: "servicos em execucao sem um usuario" usam permissao de aplicativo, "acoes em nome de usuarios" usam permissao delegada.

 

Microsoft Graph: API Unificada para Dados do Microsoft 365

O Microsoft Graph e um unico ponto de extremidade de API que fornece acesso a todos os dados do Microsoft 365 — email, calendario, arquivos, informacoes do usuario e muito mais. Anteriormente, voce precisava usar APIs separadas para Exchange, SharePoint e Teams. Agora o Microsoft Graph fornece acesso a todos os dados em um unico lugar. E como obter todas as informacoes de um unico balcao de informacoes em vez de visitar varias lojas em um shopping.

Ponto de extremidade: https://graph.microsoft.com Versoes: v1.0 (estavel), beta (versao preliminar) Autenticacao: Chamadas de API usando tokens obtidos via MSAL Recursos principais: /users, /groups, /me, /messages, /calendar/events, /drive

O Microsoft Graph suporta permissoes delegadas e de aplicativo. As permissoes necessarias devem ser pre-registradas no registro do aplicativo antes de fazer chamadas.

 

Managed Identity: Acessar Servicos Azure Sem Credenciais

Codificar senhas de conexao (strings de conexao, tokens, etc.) diretamente no codigo pode levar a incidentes de seguranca. O Managed Identity permite que recursos do Azure (VMs, App Service, Azure Functions, etc.) acessem outros servicos do Azure sem credenciais. Pense em um cracha de funcionario como exemplo. Um funcionario entra no edificio do escritorio sem digitar uma senha separada — um unico cracha passa por todas as portas. A empresa (Azure) atesta a identidade do funcionario.

Dois Tipos

| Tipo | Caracteristicas | Ciclo de Vida | |------|----------------|--------------| | Atribuido ao sistema | Criado automaticamente quando o recurso e criado, vinculado ao recurso | Excluido quando o recurso e excluido | | Atribuido ao usuario | Criado separadamente, pode ser atribuido a varios recursos | Gerenciado independentemente dos recursos |

O atribuido ao sistema e dedicado a um unico recurso; o atribuido ao usuario e adequado quando varios recursos compartilham a mesma identidade.

Com Managed Identity, voce pode remover completamente as credenciais do codigo. DefaultAzureCredential alterna automaticamente para contas de desenvolvedor em ambientes de desenvolvimento e para Managed Identity em ambientes de implantacao.

!Managed Identity atribuída pelo sistema vs pelo usuário

Key Vault: Armazenar Segredos, Chaves e Certificados com Seguranca

O Azure Key Vault e um servico para gerenciar centralmente e com seguranca strings de conexao, chaves de API, senhas, chaves de criptografia e certificados. Pense em um cofre bancario como exemplo. Em vez de guardar objetos de valor em casa, voce os confia a um cofre bancario onde apenas pessoas autorizadas podem acessar e todo o acesso e registrado.

Tres Tipos de Objetos que o Key Vault Gerencia

Secrets (Segredos): Informacoes sensiveis em formato de string (strings de conexao, chaves de API, senhas) Keys (Chaves): Chaves usadas para criptografia/descriptografia (chaves RSA, EC) Certificates (Certificados): Certificados TLS/SSL (suporta renovacao automatica)

Clientes do SDK

| Objeto | Cliente SDK | |--------|------------| | Secrets | SecretClient | | Keys | KeyClient | | Certificates | CertificateClient |

Questoes do exame frequentemente perguntam sobre o uso de classes de cliente separadas para cada tipo de objeto.

Referencias do Key Vault (App Service/Azure Functions)

Voce pode referenciar segredos do Key Vault diretamente nas configuracoes do aplicativo (Application Settings) sem alterar o codigo.

Formato: @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mySecret/) Requer conceder permissao de acesso ao Key Vault via Managed Identity para funcionar Quando os valores dos segredos mudam, o aplicativo busca automaticamente os novos valores

 

App Configuration: Gerenciamento Centralizado de Configuracao

O Azure App Configuration e um servico que gerencia os valores de configuracao de varios aplicativos a partir de um unico local. Pense em uma franquia com varios filiais. Quando a sede central muda os precos do menu, todos os filiais refletem a mudanca automaticamente. Cada filial (aplicativo) nao precisa carregar sua propria lista de precos (configuracao).

Funcionalidades Principais

Centralizacao: Gerenciar configuracoes para varios aplicativos e varios ambientes (dev/staging/producao) de um lugar Configuracao dinamica: Alterar configuracoes em tempo real sem reiniciar aplicativos Sinalizadores de recurso (Feature Flags): Ativar e desativar recursos especificos sem implantacao de codigo

Sinalizadores de Recurso (Feature Flags)

Os sinalizadores de recurso sao uma tecnica onde voce implementa recursos no codigo e controla sua ativacao/desativacao por meio de configuracao. Em vez de lancar um novo recurso para todos os usuarios de uma vez, voce pode testa-lo com 10% dos usuarios primeiro, ou aplica-lo apenas a usuarios em regioes especificas, permitindo testes A/B.

Ativar/desativar recursos sem reimplantar o aplicativo Suporta lancamento gradual por grupo de usuarios Pode integrar com Key Vault para gerenciar valores de configuracao sensiveis

 

Pontos-chave do exame

"Emitido ao registrar um aplicativo no Azure AD" -- ID do cliente (Application ID)

"Mais seguro que o segredo do cliente para autenticacao de aplicativos" -- Certificado

"Biblioteca para aquisicao/renovacao/cache de tokens OAuth" -- MSAL

"Servico em segundo plano em execucao sem um usuario" -- Permissao de aplicativo

"Agir em nome de um usuario" -- Permissao delegada

"Ponto de extremidade unificado para dados do Microsoft 365" -- Microsoft Graph (https://graph.microsoft.com)

"Acessar servicos Azure a partir do codigo sem credenciais" -- Managed Identity

"Varios recursos compartilhando a mesma identidade" -- Managed Identity atribuido ao usuario

"Armazenamento de segredos/chaves/certificados, usa SecretClient" -- Azure Key Vault

"Ativar/desativar recursos sem reimplantar o aplicativo" -- Sinalizadores de recurso (App Configuration)

Voltar à lista do blog