Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta página explica como os provedores de dados no Azure Databricks podem federar a autenticação a um provedor de identidade (IdP) para controlar o acesso a compartilhamentos de Compartilhamento Delta criados no Azure Databricks. Esse fluxo de autenticação usa a federação OIDC, permitindo JSON Web Tokens (JWTs) emitidos pelo IdP do destinatário como tokens OAuth de curta duração autenticados pelo Azure Databricks. Este método de autenticação de compartilhamento de Databricks para acesso externo foi projetado para destinatários que não têm acesso a um espaço de trabalho Databricks com suporte ao Unity Catalog.
Na Federação OIDC, o IdP do destinatário é responsável por emitir tokens JWT e aplicar políticas de segurança, como a Autenticação Multi-Fator (MFA). Da mesma forma, o tempo de vida do token JWT é regido pelo IdP do destinatário. O Databricks não gera nem gerencia esses tokens. Ele apenas federa a autenticação ao IdP do destinatário e valida o JWT em relação à política de federação configurada do destinatário. Os provedores de dados também podem optar por federar a autenticação em seu próprio IdP ao compartilhar dados internamente com outros usuários ou departamentos dentro de sua organização.
A federação OIDC é uma alternativa ao uso de tokens de longa duração emitidos pelo Azure Databricks para conectar destinatários externos ao Databricks a provedores. Ele permite um controle de acesso refinado, suporta MFA e reduz os riscos de segurança, eliminando a necessidade de os destinatários gerenciarem e protegerem credenciais compartilhadas. Para obter informações sobre como usar bearer tokens para gerir a autenticação em partilhas, consulte Criar um objeto de destinatário para utilizadores que não são do Databricks usando bearer tokens (partilha aberta).
Como funciona a federação OIDC no Delta Sharing?
Quando o provedor de dados cria o destinatário no Compartilhamento Delta no Azure Databricks, ele configura uma política de federação de token OIDC que especifica a URL do emissor do IdP do destinatário, como Microsoft Entra ID ou Okta, e define o usuário, grupo, entidade de serviço ou aplicativo OAuth do destinatário que deve ter acesso ao compartilhamento.
O Azure Databricks gera uma URL do portal Web de perfil OIDC, com base na política, e o provedor compartilha essa URL com o destinatário.
O usuário final copia a URL do ponto de extremidade ou baixa o arquivo de perfil, dependendo de sua plataforma preferida, e fornece a URL ou o arquivo de perfil para a plataforma na qual consultará os dados compartilhados. Este arquivo de perfil compartilhado baixado da web do portal Databricks OIDC não contém nenhuma informação sensível.
- Para autenticação de utilizador para máquina (U2M), o destinatário insere o endpoint do destinatário do portal web do perfil OIDC na sua aplicação U2M.
- Para autenticação máquina-a-máquina (M2M), o desenvolvedor do aplicativo destinatário baixa o arquivo de perfil e faz referência a ele no aplicativo cliente do destinatário.
Quando o destinatário tenta acessar dados compartilhados usando sua plataforma preferida, a autenticação é federada ao seu IdP.
O Databricks não gera nem gerencia tokens ou credenciais. Em vez disso, o IdP do destinatário gera um JWT contendo declarações de identidade. O tempo de vida deste token de curta duração é imposto pelo IdP do destinatário. Em seguida, o serviço Delta Sharing valida o JWT em relação à política do destinatário para garantir que ele corresponda às declarações esperadas, incluindo emissor, público e assunto. Se a validação for bem-sucedida, a solicitação será autenticada e o acesso será concedido com base nas permissões do Catálogo Unity.
Antes de começar
Para criar um destinatário, você deve atender aos seguintes requisitos:
- Você deve ser um administrador de metastore ou ter o
CREATE RECIPIENTprivilégio para o metastore do Unity Catalog onde os dados que você deseja compartilhar estão registrados. - Você deve criar o destinatário usando um espaço de trabalho do Azure Databricks que tenha esse metastore do Catálogo Unity anexado.
- Se você usar um bloco de anotações Databricks para criar o destinatário, sua computação deverá usar o Databricks Runtime 11.3 LTS ou superior e o modo de acesso padrão ou dedicado (anteriormente modos de acesso compartilhado e de usuário único).
Qual provedor de identidade usar?
Você pode usar a federação OIDC com um provedor de identidade interno ou externo, dependendo do seu cenário de compartilhamento:
Provedor de identidade interna (Provider-Managed)
- Isso é útil para compartilhar dados dentro de grandes organizações onde diferentes departamentos não têm acesso direto ao Databricks, mas compartilham o mesmo IdP.
- Essa abordagem permite que o provedor gerencie o acesso em nome do destinatário.
- As políticas de segurança, como MFA e controle de acesso baseado em função, são impostas pelo IdP do provedor.
Provedor de identidade externa (Recipient-Managed)
- O provedor configura a política de compartilhamento para confiar no IdP do destinatário.
- A organização destinatária mantém controle total sobre quem pode acessar os dados compartilhados.
- As políticas de segurança, como autenticação multifator e controlo de acesso baseado em funções, são aplicadas pelo IdP do destinatário.
Cenário de autenticação U2M ou M2M
O Compartilhamento Aberto Seguro com a Federação de Tokens OIDC suporta fluxos de autenticação User-to-Machine (U2M) e Machine-to-Machine (M2M), permitindo uma ampla gama de cenários seguros de compartilhamento de dados.
Autenticação Utilizador-para-Máquina (U2M)
Um usuário da organização destinatária se autentica usando seu IdP. Se a MFA estiver configurada, ela será imposta durante o login.
Depois de autenticados, os usuários podem acessar dados compartilhados usando ferramentas como o Power BI ou o Tableau. O provedor de dados pode definir políticas de acesso que restrinjam o acesso a dados a usuários ou grupos específicos dentro da organização do destinatário, garantindo um controle preciso sobre quem pode acessar recursos compartilhados. O aplicativo cliente U2M (por exemplo, Power BI) usa o fluxo de Concessão de Código de Autorização OAuth para obter tokens de acesso do IdP.
Autenticação máquina-a-máquina (M2M)
O M2M é ideal para cargas de trabalho automatizadas, como trabalhos noturnos ou serviços em segundo plano, que exigem acesso sem interação do usuário. A organização destinatária regista um Service Principal no seu IdP. Essa identidade de serviço permite que aplicativos ou scripts acessem recursos com segurança de forma programática. Nenhum segredo ou credencial é trocado entre o Databricks, o provedor ou o destinatário. Toda a gestão secreta permanece interna a cada organização. Clientes M2M, como o Python Delta Sharing Client ou o Spark Delta Sharing Client, usam o fluxo OAuth Client Credentials Grant para recuperar tokens de acesso do IdP.
Criar um destinatário que utilize uma política de federação OIDC
Passo 1. Criar um destinatário de federação aberto do OIDC
Para criar um destinatário que se autentica usando OIDC:
No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
Na parte superior do painel Catálogo , clique no
ícone de engrenagem e selecione Compartilhamento Delta.
Como alternativa, na página Acesso rápido , clique no botão Compartilhamento Delta > .
Na guia Compartilhado por mim, clique em Novo destinatário.
Introduza o Nome do destinatário.
Para Tipo de destinatário, selecione Abrir.
Escolha o método de autenticação aberta Federação OIDC.
Clique em Criar.
(Opcional) Crie propriedades personalizadas de Destinatário. Na guia Detalhes do destinatário, clique em Editar propriedades > +Adicionar propriedade. Em seguida, adicione um nome de propriedade (Key) e Value. Para obter detalhes, consulte Gerenciar propriedades do destinatário.
Passo 2. Criar política de federação OIDC
Antes de criar a política, reúna as informações necessárias do destinatário sobre seu IdP, incluindo os usuários, grupos, entidades de serviço ou aplicativos OAuth que devem ter acesso ao compartilhamento. Se você estiver usando seu próprio IdP (interno) para compartilhamento interno, recupere essas informações do seu próprio sistema de identidade.
Você deve primeiro solicitar informações do destinatário sobre seu IdP e os usuários, grupos, entidades de serviço ou aplicativos OAuth que devem ter acesso ao compartilhamento. Em seguida, você fornece essas informações no Azure Databricks ao criar o destinatário.
Na página de edição do destinatário, em Diretivas de federação OIDC, clique em Adicionar política.
Insira o seguinte:
Nome da política: nome legível por humanos para a política.
URL do emissor: a URL HTTPS do IdP que emite o token JWT.
Declaração do assunto: A declaração no JWT que identifica o tipo de identidade de autenticação. No Microsoft Entra ID, você pode configurar os seguintes valores:
-
oid(ID do objeto): selecione se um usuário pretende acessar os dados por meio de um aplicativo U2M, como o PowerBI. -
groups: Selecione se um grupo de usuários pretende acessar os dados por meio de um aplicativo U2M, como o PowerBI. -
azp: Selecione se um aplicativo OAuth se destina a acessar os dados por meio de um aplicativo M2M, como Python Delta Sharing Client ou Spark Delta Sharing Client.
Em alguns outros IdPs, declarações como sub ou outras podem ser usadas. Consulte a documentação do IdP para determinar a declaração correta para seu caso de uso.
-
Assunto: O usuário, grupo ou aplicativo específico com permissão para acessar o compartilhamento.
Audiências: Um ou mais identificadores de recursos com os quais o JWT deve coincidir. Um token é considerado válido se a sua declaração 'aud' corresponder a qualquer um dos públicos listados.
Se você não tiver certeza sobre os valores a serem usados (emissor, reivindicação de assunto, assunto, público), consulte o exemplo a seguir. Você precisa determinar os detalhes da Política de Federação OIDC antes de criá-la.
Se você estiver usando um IdP gerenciado por destinatário externo, solicite as seguintes informações do destinatário compartilhado usando um canal seguro. Se estiver a usar o seu fornecedor interno gerido de IdP, esta informação vem do seu próprio IdP, com base nas identidades com as quais está a partilhar.
Exemplo para U2M quando IdP é Entra ID:
Estes são exemplos de configuração para compartilhar com um utilizador específico com ID de objeto 11111111-2222-3333-4444-555555555555 no inquilino do Entra ID aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee
- Emitente:
https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0 - assunto da reivindicação:
oid(ID do objeto) - Assunto:
11111111-2222-3333-4444-555555555555 - Audiências:
64978f70-f6a6-4204-a29e-87d74bfea138(Este é o ID do cliente do aplicativo multilocatário registrado pelo Databricks no Entra ID)
Estes são exemplos de configurações para partilha com um grupo específico com ID de objeto 66666666-2222-3333-4444-555555555555 no inquilino do Entra ID aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee
- Emitente:
https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0 - Reclamação do assunto:
groups - Assunto:
66666666-2222-3333-4444-555555555555 - Audiências:
64978f70-f6a6-4204-a29e-87d74bfea138(Este é o ID do cliente do aplicativo multilocatário registrado pelo Databricks no Entra ID)
Observação
Para aplicações U2M, como Power BI e Tableau, o público-alvo deve ser o ID da aplicação multilocatário registrado pelo Databricks no Entra ID, que é 64978f70-f6a6-4204-a29e-87d74bfea138.
Para obter mais informações sobre aplicações U2M e suas políticas de Federação OIDC, consulte Receber partilhas Delta Sharing usando a federação Open ID Connect (OIDC) num fluxo de utilizador para máquina (partilha aberta).
Exemplo para M2M quando IdP é Entra ID:
Para uma aplicação M2M OAuth com o ID de Aplicação (cliente) 11111111-2222-3333-4444-555555555555 no locatário aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee do Entra ID:
- Emitente:
https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0 - Assunto da reivindicação:
azp - assunto:
11111111-2222-3333-4444-555555555555(Este é o ID da Aplicação (utilizador), que é o ID do utilizador do aplicativo OAuth registado e pode ser encontrado no portal Entra ID do destinatário) - Audiências:
66666666-2222-3333-4444-555555555555(Pode ser qualquer identificador de audiência válido definido pelo destinatário, como o ID do cliente da aplicação OAuth registada.) Para obter mais informações sobre aplicações M2M e as suas políticas de federação OIDC, consulte Receber partilhas Delta Sharing utilizando um cliente Python e Open ID Connect (OIDC) em fluxo de máquina para máquina (partilha aberta).
Passo 3. Conceder ao destinatário acesso a um compartilhamento
Depois de criar o destinatário e os compartilhamentos, você pode conceder ao destinatário acesso a esses compartilhamentos.
Para conceder acesso de compartilhamento aos destinatários, você pode usar o Gerenciador de Catálogos, a CLI do Catálogo Unity do Databricks ou o GRANT ON SHARE comando SQL em um bloco de anotações do Azure Databricks ou no editor de consultas do Databricks SQL.
Permissões necessárias: uma das seguintes opções:
- Administrador da Metastore.
- Permissões delegadas ou propriedade tanto nos objetos da partilha quanto nos objetos do destinatário ((
USE SHARE+SET SHARE PERMISSION) ou proprietário da partilha) E (USE RECIPIENTou proprietário do destinatário).
Para obter instruções, consulte Gerenciar o acesso a compartilhamentos de dados do Delta Sharing (para provedores).
Fluxo de trabalho do destinatário
Para saber como os destinatários autenticam e acessam compartilhamentos usando a federação de tokens OIDC, consulte: