Partilhar via


Proteja sua solução de construtor de API de dados

O Data API Builder expõe os seus dados através de endpoints REST e GraphQL. Proteger a sua API requer atenção a três áreas principais: autenticação (quem está a ligar?), autorização (o que podem fazer?) e segurança de transporte (a ligação está protegida?).

Ilustração do fluxo de pedidos de ponta a ponta mostrando autenticação, autorização e acesso à base de dados.

Três pilares de segurança

Pilar Pergunta que responde Conceito-chave
Authentication Quem é o chamador? Validar tokens de um fornecedor de identidade
Authorization O que podem fazer? Permissões baseadas em funções nas entidades
Transportes A ligação é segura? Encriptação TLS para todo o tráfego

Escolha o seu fornecedor de autenticação

O Data API Builder suporta múltiplos fornecedores de autenticação. Escolhe aquele que corresponde ao teu cenário de implantação:

Provider Caso de uso Guia
Microsoft Entra ID (EntraID/AzureAD) Aplicações de produção que usam a identidade Microsoft Configurar autenticação Entra
JWT Personalizado IDPs de terceiros (Okta, Auth0, Keycloak) Configurar autenticação JWT personalizada
Serviço de Aplicações Aplicações a executar atrás do Azure App Service EasyAuth (cabeçalhos da plataforma) Configurar autenticação de App Service
Simulador Desenvolvimento local e testes Configurar autenticação do simulador
Aplicações Web Estáticas Aplicações anteceadas por cabeçalhos de autenticação SWA Configurar autenticação de App Service

Sugestão

Comece pelo fornecedor Simulador durante o desenvolvimento para testar permissões sem configurar um fornecedor de identidade. Muda para um fornecedor de produção antes de lançar.

Autenticação

A autenticação verifica a identidade do chamador. O Data API builder autentica os pedidos validando tokens portadores JWT (EntraID/AzureAD, Custom) ou confiando nos cabeçalhos de identidade fornecidos pela plataforma (AppService, ). StaticWebApps Simulator Ignora a validação externa para desenvolvimento.

Ilustração de como os clientes se autenticam no Data API Builder usando tokens JWT.

Como funciona

  1. Para os fornecedores JWT, o cliente adquire um token do fornecedor de identidade
  2. O cliente envia o token no cabeçalho Authorization: Bearer <token> (fornecedores de JWT) ou a plataforma injeta cabeçalhos de identidade (EasyAuth/SWA)
  3. O Data API builder valida o token ou cabeçalho da plataforma (emissor, audiência, assinatura para fornecedores JWT)
  4. O DAB extrai as funções do utilizador do token ou do cabeçalho de identidade

Referência rápida

Configuração Description
runtime.host.authentication.provider O fornecedor de autenticação (EntraID/AzureAD, Custom, AppService, StaticWebApps, ) Simulator
runtime.host.authentication.jwt.audience Declaração de audiência esperada para fornecedores JWT (não é utilizado por AppService/StaticWebApps/Simulator)
runtime.host.authentication.jwt.issuer Emissor/autoridade esperado para fornecedores JWT (não utilizado por AppService/StaticWebApps/Simulator)

Para configuração detalhada, consulte Configurar autenticação do ID Microsoft Entra.

Autorização

A autorização determina o que um utilizador autenticado (ou anónimo) pode fazer. O Data API Builder utiliza controlo de acesso baseado em funções (RBAC) para restringir o acesso a entidades e ações.

Ilustração de como o Data API Builder seleciona um papel e avalia permissões para um pedido.

Como funciona

  1. O DAB atribui um papel ao pedido com base no token e nos cabeçalhos
  2. O DAB verifica as permissões da entidade para esse papel
  3. Se o papel tiver permissão para a ação solicitada, o DAB executa a consulta
  4. Caso contrário, o DAB retornará uma resposta 403 Forbidden.

Funções do sistema vs. funções de utilizadores

Tipo de função Description
Anonymous Atribuída quando não existe identidade autenticada
Authenticated Atribuído quando um pedido é autenticado (aceite JWT ou cabeçalho de plataforma de confiança) e não é selecionada nenhuma função de utilizador específica.
Papéis de utilizador Funções personalizadas a partir da reivindicação do token roles (ou funções da plataforma), selecionadas através do cabeçalho X-MS-API-ROLE

Proteger por predefinição

As entidades não têm permissões por padrão. Deve conceder explicitamente o acesso:

{
  "entities": {
    "Book": {
      "permissions": [
        { "role": "authenticated", "actions": ["read"] }
      ]
    }
  }
}

Para uma configuração detalhada, veja Autorização e funções.

Segurança ao nível da linha e ao nível do campo

Vá além das permissões ao nível da entidade com controlo de acesso detalhado:

Característica Description Guia
Políticas de base de dados (segurança ao nível das linhas) Traduzir expressões de política em predicados de consulta que filtram linhas com base em reivindicações ou contexto de sessão Implementar segurança ao nível das linhas
Segurança a nível do campo Incluir ou excluir colunas específicas por função Acesso ao campo

Segurança do transporte e da configuração

Segurança dos transportes

  • Use TLS para todas as ligações: Encripte o tráfego entre clientes e DAB
  • Desativar versões legadas do TLS: Confiar apenas no TLS 1.2+
  • Utilize pontos de extremidade HTTPS: Nunca exponha DAB em HTTP não encriptado em produção

Para mais detalhes, consulte as melhores práticas de segurança.

Segurança de configuração

  • Armazene segredos em variáveis de ambiente: Use @env('SECRET_NAME') na sua configuração
  • Use Azure Key Vault: Referenciar segredos com @azure('key-vault-uri')
  • Nunca comprometa segredos: Mantenha-se dab-config.json livre de palavras-passe e strings de ligação
{
  "data-source": {
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  }
}

Monitorização e atualizações

  • Monitorizar o acesso: Utilizar o Application Insights para rastrear pedidos e detetar anomalias
  • Rever registos: Verifique tentativas de autenticação falhadas e recusas de permissões
  • Mantenha o DAB atualizado: Aplique patches de segurança atualizando para a versão mais recente

Guias de início rápido

Tarefa Guia
Configurar a autenticação do Microsoft Entra ID Configurar autenticação Entra
Utilize o Okta ou o Auth0 Configurar autenticação JWT personalizada
Executar por trás do Azure App Service Configurar autenticação de App Service
Testar permissões localmente Configurar autenticação do simulador
Restringir linhas por utilizador Implementar segurança ao nível das linhas
Compreender a atribuição de funções Autorização e funções