Ativar a federação do Open ID Connect (OIDC) para destinatários do OpenSharing
Esta página explica como os provedores de dados no Databricks podem federar a autenticação para um provedor de identidade (IdP) para governar o acesso a compartilhamentos OpenSharing criados no Databricks. Este fluxo de autenticação usa a federação OIDC, permitindo que JSON Web Tokens (JWTs) emitidos pelo IdP do destinatário atuem como tokens OAuth de curta duração autenticados pelo Databricks. Este Databricks-para-compartilhamento aberto método de autenticação é projetado para destinatários que não têm acesso a um Databricks workspace habilitado para 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 Multifator (MFA). Da mesma forma, a duração do token JWT é regida pelo IdP do destinatário.
Databricks não gera ou gerencia esses tokens. Ele federa a autenticação somente para o IdP do destinatário e valida o JWT em relação à política de federação configurada do destinatário. Provedores de dados também podem optar por federar a autenticação para 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 para usar tokens de portador de longa duração emitidos pelo Databricks para conectar destinatários que não são do Databricks a provedores. Ele permite controles de acesso refinados, 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 o uso de tokens de acesso para gerenciar a autenticação para compartilhamentos, em vez disso, consulte Criar um objeto de destinatário para usuários não-Databricks usando tokens de acesso (Compartilhamento Databricks para Open).
Como funciona a federação do OIDC no OpenSharing?
-
Quando o provedor de dados cria o destinatário no OpenSharing no Databricks, ele configura uma política de federação de tokens OIDC que especifica a URL do emissor do IdP do destinatário, como Microsoft Entra ID ou Okta, e define o usuário destinatário, grupo, entidade de serviço ou aplicativo OAuth que deve ter acesso ao compartilhamento.
-
Databricks gera uma URL de 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 endpoint 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ão os dados compartilhados. Este arquivo de perfil compartilhado baixado do portal web Databricks OIDC não contém nenhuma informação sensível.
- Para autenticação user-to-machine (U2M), o destinatário insere o endpoint do destinatário do portal web de perfil OIDC em seu aplicativo U2M.
- Para autenticação máquina a máquina (M2M), o desenvolvedor do aplicativo destinatário downloads o arquivo de perfil e o referencia no aplicativo cliente destinatário.
-
Quando o destinatário tenta acessar dados compartilhados usando a plataforma preferida, a autenticação é federada para seu IdP.
O Databricks não gera nem gerencia tokens ou credenciais. Como alternativa, o provedor de identidade (IdP) do destinatário gera um JWT contendo declarações de identidade. A duração deste token de curta duração é imposta pelo IdP do destinatário. O serviço OpenSharing valida então o JWT contra a política do destinatário para garantir que corresponda às reivindicaçõ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 Unity Catalog.
Antes de começar
Para criar um destinatário, você deve atender aos seguintes requisitos:
- Você deve ter o privilégio
CREATE RECIPIENTpara o metastore do Unity Catalog onde os dados que você deseja compartilhar estão registrados. - É preciso criar o destinatário usando um workspace do Databricks que tenha esse metastore do Unity Catalog anexado.
- Se você usar um Notebook Databricks para criar o destinatário, seu compute deve usar Databricks Runtime 11.3 LTS ou acima e o modo de acesso padrão ou dedicado (anteriormente modos de acesso compartilhado e de usuário único).
Qual Provedor de Identidade Usar?
É possível usar a federação do OIDC com um provedor de identidade interno ou externo, dependendo do seu cenário de compartilhamento:
-
Provedor de Identidade Interno (Gerenciado pelo Provedor)
- Isso é útil para o compartilhamento de dados dentro de grandes organizações onde diferentes departamentos não têm acesso direto ao Databricks, mas compartilham o mesmo IdP.
- Esta abordagem permite que o provedor gerencie o acesso em nome do destinatário.
- As políticas de segurança, como MFA e role-based access control, são aplicadas pelo IdP do provedor.
-
Provedor de Identidade Externo (Gerenciado pelo Destinatário)
- 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.
- Políticas de segurança, como MFA e role-based access control, são aplicadas pelo IdP do destinatário.
Cenário de Autenticação U2M ou M2M
O Compartilhamento Aberto Seguro com Federação de Tokens OIDC suporta fluxos de autenticação Usuário-para-Máquina (U2M) e Máquina-para-Máquina (M2M), possibilitando uma ampla gama de cenários de compartilhamento de dados seguros.
Autenticação user-to-machine (U2M)
Um usuário da organização destinatária se autentica usando o IdP dela. Se a MFA estiver configurada, ela será imposta durante o login.
Uma vez autenticados, os usuários podem acessar dados compartilhados usando ferramentas como Power BI ou Tableau. O provedor de dados pode definir políticas de acesso que restringem o acesso a dados a usuários ou grupos específicos dentro da organização destinatária, garantindo controle preciso sobre quem pode acessar recursos compartilhados. O aplicativo cliente U2M (por exemplo, Power BI) usa o fluxo OAuth Authorization Code Grant para obter access tokens do IdP.
Autenticação Machine-to-Machine (M2M)
M2M é ideal para cargas de trabalho automatizadas, como Jobs noturnos ou serviços em segundo plano, que exigem acesso sem interação do usuário. A organização receptora registra uma entidade de serviço em seu IdP. Essa identidade de serviço permite que aplicativos ou scripts acessem recursos programaticamente e com segurança. Nenhum segredo ou credenciais são trocados entre o Databricks, o provedor ou o destinatário. Todo gerenciamento de segredos permanece interno a cada organização. Clientes M2M, como o Python OpenSharing Client ou o Spark OpenSharing Client, usam o fluxo de concessão de credenciais de cliente OAuth para recuperar access tokens do IdP.
Criar um destinatário que usa uma política de federação OIDC
Etapa 1. Criar um Destinatário de Federação OIDC Aberta
Para criar um destinatário que autentica usando OIDC:
-
No seu Databricks workspace, clique em
Catálogo .
-
No topo do painel Catálogo , clique no ícone de
engrenagem e selecione OpenSharing .
Alternativamente, no canto superior direito, clique em **Share > OpenSharing**.
-
Na tab Compartilhado por mim , clique em Novo destinatário .
-
Insira o Nome do destinatário .
-
Para **Tipo de destinatário**, selecione **Abrir**.
-
Escolha Federação OIDC como o método de autenticação **aberto**.
-
Clique em Criar .
-
(Opcional) Crie **Propriedades do Destinatário** personalizadas. Na **tab Detalhes** do destinatário, clique em **Editar propriedades > +Adicionar propriedade**. Em seguida, adicione um nome de propriedade(**Chave**) e **Valor**. Para obter detalhes, consulte Gerenciar propriedades do destinatário.
O passo 2. Criar Política de Federação do OIDC
Antes de criar a política, colete 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 (interno) IdP para compartilhamento interno, recupere esta informação de seu próprio sistema de identidade.
O senhor deve primeiro solicitar informação do destinatário sobre o IdP dele e os usuários, grupos, entidades de serviço ou aplicativos OAuth que devem ter acesso ao compartilhamento. O senhor então fornece essa informação no Databricks ao criar o destinatário.
- Na página de edição do destinatário, em Políticas 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 de 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 de 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 deve 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 OpenSharing Client ou Spark OpenSharing Client.
Em alguns outros IdPs, reivindicações como sub ou outras podem ser usadas. Consulte a documentação do IdP para determinar a reivindicação correta para seu caso de uso.
-
Assunto : O usuário, grupo ou aplicativo específico permitido acessar o compartilhamento.
-
Públicos : Um ou mais identificadores de recurso que o JWT deve corresponder. Um token é considerado válido se sua reivindicação 'aud' corresponder a qualquer um dos públicos listados.
-
-
Clique em Salvar .
Se não tiver certeza sobre os valores a serem usados (emissor, declaração de assunto, assunto, público), consulte o exemplo a seguir. É necessário determinar os detalhes da Política de Federação do OIDC antes de criá-la.
Se estiver utilizando um IdP gerenciado por destinatário externo, solicite as seguintes informações do destinatário compartilhado usando um canal seguro. Se estiver utilizando um IdP gerenciado por seu provedor interno, essas informações são do seu próprio IdP com base nas identidades com as quais está compartilhando.
Exemplo para U2M quando o IdP é o Entra ID:
Esta é uma configuração de exemplo para compartilhamento com um usuário específico com o ID de Objeto 11111111-2222-3333-4444-555555555555 no tenant do Entra ID. aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee
- Emissor:
https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0 - declaração de assunto:
oid(ID do objeto) - Assunto:
11111111-2222-3333-4444-555555555555 - Públicos-alvo:
64978f70-f6a6-4204-a29e-87d74bfea138(Este é o ID do cliente do aplicativo multi-tenant registrado pelo Databricks no Entra ID)
Estas são configurações de exemplo para compartilhamento com um grupo específico com Object ID 66666666-2222-3333-4444-555555555555 no tenant do Entra ID. aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee
- Emissor:
https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0 - declaração de assunto:
groups - Assunto:
66666666-2222-3333-4444-555555555555 - Públicos-alvo:
64978f70-f6a6-4204-a29e-87d74bfea138(Este é o ID do cliente do aplicativo multi-tenant registrado pelo Databricks no Entra ID)
Para aplicativos U2M como Power BI e Tableau, o público deve ser o ID do aplicativo multi-tenant registrado pelo Databricks no Entra ID, que é 64978f70-f6a6-4204-a29e-87d74bfea138.
Para mais informação sobre aplicações U2M e as suas políticas de Federação OIDC, consulte Ler dados compartilhados usando federação Open ID Connect (OIDC) em um fluxo U2M.
Exemplo para M2M quando IdP for Entra ID:
Para uma aplicação OAuth M2M com a ID do aplicativo (cliente) 11111111-2222-3333-4444-555555555555 no tenant aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee do Entra ID:
- Emissor:
https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0 - Declaração de assunto:
azp - Assunto:
11111111-2222-3333-4444-555555555555(Este é o ID da Aplicação (cliente), que é o ID do cliente da aplicação OAuth registrada e pode ser encontrado no portal Entra ID do destinatário) - Públicos:
66666666-2222-3333-4444-555555555555(Este pode ser qualquer identificador de público válido definido pelo destinatário, como o ID do cliente do aplicativo OAuth registrado.) Para obter mais informações sobre aplicativos M2M e suas políticas de Federação OIDC, consulte Ler dados compartilhados usando federação Open ID Connect (OIDC) em um fluxo M2M.
O passo 3. Conceda ao destinatário o acesso a um compartilhamento
Após criar o destinatário e os compartilhamentos, é possível conceder a ele acesso a esses compartilhamentos.
Para conceder acesso de compartilhamento a destinatários, é possível usar o Catalog Explorer, a CLI do Databricks Unity Catalog ou o comando SQL GRANT ON SHARE em um Notebook do Databricks ou no editor de consultas SQL do Databricks.
Permissões necessárias : Uma das seguintes opções:
- Administrador do metastore.
- Permissões delegadas ou propriedade tanto no compartilhamento quanto nos objetos do destinatário ((
USE SHARE+SET SHARE PERMISSION) ou proprietário do compartilhamento) E (USE RECIPIENTou proprietário do destinatário).
Para obter instruções, consulte Gerenciar acesso aos compartilhamentos de dados do OpenSharing (para provedores).
Compartilhar com destinatário Iceberg
Se o seu destinatário OIDC estiver lendo ativos de dados compartilhados usando um catálogo Iceberg REST, compartilhe o link do portal de geração de perfil OIDC do Iceberg .
Envie o link após criar um destinatário que usa uma política de federação OIDC:
-
No seu Databricks workspace, clique em
Catálogo .
-
No topo do painel Catálogo , clique no ícone de
engrenagem e selecione OpenSharing .
Alternativamente, no canto superior direito, clique em **Share > OpenSharing**.
-
Na guia **Compartilhado por mim**, clique em **Destinatários**.
-
Encontre e selecione o destinatário OIDC.
-
No lado direito da página, em Políticas de federação do OIDC , clique em Política OIDC Padrão .
-
Copie o link do portal de geração de perfil OIDC Iceberg e compartilhe-o com o seu destinatário usando um método seguro.
-
O link também inclui os nomes dos compartilhamentos, de que o destinatário precisa para ler os dados compartilhados.
Fluxo de trabalho do destinatário
Para saber como os destinatários autenticam e acessam compartilhamentos usando a federação de tokens OIDC, consulte: