Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta página explica como os fornecedores de dados no Azure Databricks podem federar a autenticação para um fornecedor de identidade (IdP) para governar o acesso a partilhas OpenSharing criadas 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 à utilização de tokens portadores de longa duração emitidos pelo Azure Databricks para ligar destinatários não-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 informações sobre o uso de tokens portadores para gerir a autenticação em partilhas, consulte Criar um objeto destinatário para utilizadores não-Databricks usando tokens portadores (Databricks-to-Open sharing).
Como funciona a federação OIDC no OpenSharing?
Quando o fornecedor de dados cria o destinatário no OpenSharing no Azure Databricks, configura uma política de federação de tokens OIDC que especifica a URL do emissor do IdP destinatário, como Microsoft Entra ID ou Okta, e define o utilizador destinatário, grupo, principal de serviço ou aplicação OAuth que deve ter acesso à partilha.
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. O serviço OpenSharing valida então o JWT face à política do destinatário para garantir que corresponde às reivindicações esperadas, incluindo emissor, público e sujeito. 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:
- Deve ter o privilégio
CREATE RECIPIENTpara a metastore do Unity Catalog onde os dados que pretende partilhar estão registados. - 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. Os clientes M2M, como o Python OpenSharing Client ou o Spark OpenSharing Client, utilizam 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.
No topo do painel de Catálogo , clique no
ícone de engrenagem e selecione OpenSharing.
Alternativamente, no canto superior direito, clique em Partilhar > OpenSharing.
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 uma aplicação OAuth pretende aceder aos dados através de uma aplicação M2M, como o Python OpenSharing Client ou o Spark OpenSharing 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.
Clique em Salvar.
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)
Note
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 mais informações sobre aplicações U2M e as suas políticas de Federação OIDC, consulte Ler dados partilhados usando a federação Open ID Connect (OIDC) num fluxo U2M.
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 mais informações sobre aplicações M2M e as suas políticas de Federação OIDC, consulte Ler dados partilhados usando a federação Open ID Connect (OIDC) num fluxo M2M.
Passo 3. Conceder ao destinatário acesso a um compartilhamento
Depois de criar o destinatário e criar partilhas, pode conceder acesso ao destinatário a essas partilhas.
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 instruções, consulte Gerir o acesso a partilhas de dados OpenSharing (para fornecedores).
Partilhar com o destinatário do Iceberg
Se o seu destinatário OIDC estiver a ler ativos de dados partilhados usando um catálogo Iceberg REST, partilhe o link do portal de geração de perfis OIDC do Iceberg .
Envie o link após criar um destinatário que utilize uma política de federação OIDC:
No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
No topo do painel de Catálogo , clique no
ícone de engrenagem e selecione OpenSharing.
Alternativamente, no canto superior direito, clique em Partilhar > OpenSharing.
Na guia Compartilhado por mim, clique em Destinatários.
Encontre e selecione o destinatário do OIDC.
No lado direito da página, em políticas de federação OIDC, clique em Política OIDC padrão.
Copie o link do portal de geração de perfil OIDC do Iceberg e partilhe-o com o seu destinatário usando um método seguro.
O link inclui também os nomes das partilhas, que o destinatário precisa para ler os dados partilhados.
Fluxo de trabalho do destinatário
Para saber como os destinatários autenticam e acessam compartilhamentos usando a federação de tokens OIDC, consulte: