Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Data API Builder expõe seus dados por meio de endpoints REST e GraphQL. Proteger sua API requer atenção a três áreas principais: autenticação (quem está chamando?), autorização (o que eles podem fazer?) e segurança de transporte (a conexão está protegida?).
Três pilares de segurança
| Pilar | Pergunta respondida | Conceito chave |
|---|---|---|
| Autenticação | Quem é o chamador? | Validar tokens de um provedor de identidade |
| Autorização | O que eles podem fazer? | Permissões baseadas em função em entidades |
| Transport | A conexão é segura? | Criptografia TLS para todo o tráfego |
Escolha seu provedor de autenticação
O Construtor de API de Dados dá suporte a vários provedores de autenticação. Escolha aquele que corresponda ao cenário de implantação:
| Fornecedor | Caso de uso | Guide |
|---|---|---|
Microsoft Entra ID (EntraID/AzureAD) |
Aplicativos de produção usando a identidade da Microsoft | Configurar a autenticação do Entra |
| JWT personalizado | IdPs de terceiros (Okta, Auth0, Keycloak) | Configurar a autenticação JWT personalizada |
| Serviço de Aplicativo | Aplicativos em execução por trás do EasyAuth do Serviço de Aplicativo do Azure (cabeçalhos de plataforma) | Configurar a autenticação do Serviço de Aplicativo |
| Simulador | Desenvolvimento e teste locais | Configurar a autenticação do Simulador |
| Aplicativos Web Estáticos | Aplicativos utilizando cabeçalhos de autenticação SWA | Configurar a autenticação do Serviço de Aplicativo |
Dica
Comece com o provedor Simulator durante o desenvolvimento para testar permissões sem configurar um provedor de identidade. Alterne para um provedor de produção antes de implantar.
Autenticação
A autenticação verifica a identidade do chamador. O construtor de API de dados autentica solicitações validando tokens de portador JWT (EntraID/AzureAD, Custom) ou confiando em cabeçalhos de identidade fornecidos pela plataforma (AppService, StaticWebApps).
Simulator ignora a validação externa para desenvolvimento.
Como funciona
- Para provedores JWT, o cliente adquire um token do provedor de identidade
- O cliente envia o token no cabeçalho
Authorization: Bearer <token>(provedores JWT) ou a plataforma injeta cabeçalhos de identidade (EasyAuth/SWA) - O construtor de API de dados valida o token ou o cabeçalho da plataforma (emissor, audiência, assinatura para provedores JWT)
- O DAB extrai as funções do usuário do cabeçalho de token ou identidade
Referência rápida
| Configurações | Description |
|---|---|
runtime.host.authentication.provider |
O provedor de autenticação (EntraID/AzureAD, , Custom, AppService, StaticWebApps, ) Simulator |
runtime.host.authentication.jwt.audience |
Declaração do destinatário esperado para provedores JWT (não utilizada por AppService/StaticWebApps/Simulator) |
runtime.host.authentication.jwt.issuer |
Emissor/autoridade esperado para provedores JWT (não usado por AppService/StaticWebApps/Simulator) |
Para obter uma configuração detalhada, consulte Configurar a autenticação da ID do Microsoft Entra.
Autorização
A autorização determina o que um usuário autenticado (ou anônimo) pode fazer. O Construtor de API de Dados usa o RBAC (controle de acesso baseado em função) para restringir o acesso a entidades e ações.
Como funciona
- O DAB atribui uma função à solicitação com base no token e cabeçalhos
- O DAB pesquisa as permissões da entidade para essa função
- Se a função tiver permissão para a ação solicitada, o DAB executará a consulta
- Caso contrário, o DAB retornará uma
403 Forbiddenresposta
Funções do sistema versus funções de usuário
| Tipo de função | Description |
|---|---|
Anonymous |
Atribuído quando nenhuma identidade autenticada está presente |
Authenticated |
Atribuído quando uma solicitação é autenticada (JWT aceito ou cabeçalho de plataforma confiável) e nenhuma função de usuário específica é selecionada |
| Funções de usuário | Funções personalizadas da declaração do token roles (ou funções de plataforma), selecionadas via cabeçalho X-MS-API-ROLE |
Segurança por padrão
As entidades não têm permissões por padrão. Você deve conceder acesso explicitamente:
{
"entities": {
"Book": {
"permissions": [
{ "role": "authenticated", "actions": ["read"] }
]
}
}
}
Para obter uma configuração detalhada, consulte Autorização e funções.
Segurança em nível de linha e de campo
Vá além das permissões de nível de entidade com controle de acesso refinado:
| Característica | Description | Guide |
|---|---|---|
| Políticas de banco de dados (segurança em nível de linha) | Traduzir expressões de política em predicados de consulta que filtram linhas com base em declarações ou contexto de sessão | Implementar a segurança em nível de linha |
| Segurança de nível de campo | Incluir ou excluir colunas específicas por função | Acesso a campo |
Segurança de transporte e configuração
Segurança do transporte
- Usar o TLS para todas as conexões: criptografar o tráfego entre clientes e o DAB
- Desabilitar versões herdadas do TLS: depender apenas do TLS 1.2+
- Usar pontos de extremidade HTTPS: nunca exponha o DAB sobre HTTP não criptografado em produção
Para obter detalhes, consulte as práticas recomendadas de segurança.
Segurança de configuração
-
Armazenar segredos em variáveis de ambiente: usar
@env('SECRET_NAME')em sua configuração -
Usar o Azure Key Vault: referenciar segredos com
@azure('key-vault-uri') -
Nunca armazene segredos: mantenha
dab-config.jsonlivre de senhas e strings de conexão
{
"data-source": {
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
}
Monitoramento e atualizações
- Monitorar o acesso: usar o Application Insights para acompanhar solicitações e detectar anomalias
- Revisar logs: Verificar se houve tentativas de autenticação com falha e negações de permissões
- Manter o DAB atualizado: aplicar patches de segurança atualizando para a versão mais recente
Guias de início rápido
| Tarefa | Guide |
|---|---|
| Configurar a autenticação do Microsoft Entra ID | Configurar a autenticação do Entra |
| Usar Okta ou Auth0 | Configurar a autenticação JWT personalizada |
| Operar em segundo plano com o Serviço de Aplicativo do Azure | Configurar a autenticação do Serviço de Aplicativo |
| Teste permissões localmente | Configurar a autenticação do Simulador |
| Restringir linhas por usuário | Implementar a segurança em nível de linha |
| Entender a atribuição de função | Autorização e funções |
Conteúdo relacionado
- Configurar a autenticação da ID do Microsoft Entra
- Autorização e funções
- Melhores práticas de segurança
- Referência de configuração de runtime