Filtre dados por usuário final com claims customizadas em tokens OAuth
Aplicações externas agora podem passar identificadores de usuários em tokens OAuth de service principal e filtrar linhas em views dinâmicas ou políticas ABAC.
O que mudou
O Databricks agora permite injetar claims de identidade customizadas em tokens OAuth emitidos para service principals. O recurso viabiliza o isolamento de dados por usuário final em aplicações multi-tenant sem a necessidade de provisionar contas de usuário do Databricks para cada cliente.
Para que serve
Imagine que você tem uma aplicação SaaS ou portal corporativo que atende centenas de clientes e armazena os registros de todos eles em tabelas compartilhadas. Em vez de criar um usuário no Databricks para cada pessoa ou expor tabelas separadas, a sua aplicação consulta a plataforma usando um único service principal.
Com essa novidade, você pode:
- Injetar o identificador do cliente ou e-mail do usuário autenticado diretamente na criação do token OAuth.
- Filtrar os dados em views dinâmicas ou políticas ABAC usando a função SQL
current_oauth_custom_identity_claim(). - Utilizar tabelas de mapeamento para traduzir o identificador da claim em permissões granulares.
Como usar
A aplicação solicita o token incluindo o parâmetro custom_claim via client credentials ou token exchange:
curl --request POST \
--url https://<workspace-url>/oidc/v1/token \
--user '<client-id>:<client-secret>' \
--data 'grant_type=client_credentials' \
--data 'scope=all-apis' \
--data-urlencode 'custom_claim=acme'
O que acontece nesse código:
- Solicita um token OAuth de service principal ao endpoint do workspace.
- Passa o valor
acmeno parâmetrocustom_claimpara identificar o usuário ou tenant da sessão.
No catálogo, crie uma view dinâmica que compara a coluna de controle com a claim do chamador:
CREATE OR REPLACE VIEW meu_catalogo.meu_schema.minha_view_pedidos AS
SELECT order_id, customer_name, product, quantity, order_date
FROM meu_catalogo.meu_schema.pedidos
WHERE customer_name = current_oauth_custom_identity_claim();
O que acontece nesse código:
- Define uma view dinâmica que lê a tabela base de pedidos.
- A função
current_oauth_custom_identity_claim()extrai o valor assinado no token em tempo de execução. - Se o token não contiver uma claim, a função retorna
NULLe a comparação descarta todas as linhas com segurança.
Limitações e requisitos
- Requisitos: Service principal com secret OAuth ou política de federação ativa; SQL Warehouse ou computação executando Databricks Runtime 19.7 ou superior.
- Superfícies suportadas: Driver Databricks JDBC conectado a SQL Warehouse, SQL Statement Execution API e Genie Agents API. Não funciona no editor SQL da interface web.
- Regras da claim: Máximo de 1.000 caracteres ASCII imprimíveis (espaços,
\t,\ne\rsão aceitos). Caracteres não ASCII (acentos, emojis) provocam erro 400. A claim não é criptografada e fica visível no payload JWT do token; nunca passe senhas ou dados sensíveis.
- oauth
- service principal
- unity catalog
- abac
- row-level security
Filter data per end user with OAuth custom identity claims
Resumo e explicação gerados por IA a partir da release note oficial. Em caso de dúvida, a documentação oficial da plataforma prevalece.
Relacionadas
- DatabricksBeta
Conector do SurveyMonkey chega ao Lakeflow Connect no Databricks
O Lakeflow Connect agora conta com conector nativo para o SurveyMonkey em Beta, permitindo ingestão incremental de pesquisas, respostas e contatos com governança no Unity Catalog.
lakeflow connect · surveymonkey - DatabricksBeta
Lakeflow Connect adiciona conector do Oracle Eloqua em Beta
O Lakeflow Connect agora oferece um conector gerenciado em Beta para o Oracle Eloqua, permitindo ingestão incremental de dados de marketing governados pelo Unity Catalog.
lakeflow connect · oracle eloqua - DatabricksBeta
Ingira métricas do GA4 com o novo conector do Lakeflow Connect
O Lakeflow Connect ganha conector gerenciado em Beta para o Google Analytics 4, permitindo ingestão incremental de relatórios agregados via API com governança no Unity Catalog.
lakeflow connect · google analytics