Pular para o conteúdo principal

Use a federação Open ID Connect (OIDC) para permitir a autenticação nos compartilhamentos do Delta Sharing (compartilhamento aberto)

info

Visualização

Esse recurso está em Public Preview. Entre em contato com a equipe do Databricks account para solicitar acesso.

Esta página explica como os provedores de dados no Databricks podem federar a autenticação a um provedor de identidade (IdP) para controlar o acesso aos compartilhamentos do Delta Sharing criados no Databricks. Esse fluxo de autenticação usa a federação OIDC, permitindo JSON Web tokens (JWTs) emitidos pelo IdP do destinatário como OAuth tokens de curta duração autenticados por Databricks. Esse método de autenticação -to-open compartilhamento foi Databricksdesenvolvido para destinatários que não têm acesso a um Unity Catalog habilitado Databricks workspace.

Na Federação OIDC, o IdP do destinatário é responsável pela emissão de tokens JWT e pela aplicação de políticas de segurança, como a autenticação multifator (MFA). Da mesma forma, o tempo de vida dos tokens JWT é regido pelo IdP do destinatário. Databricks não gera nem gerencia esses tokens. Ele só federa a autenticação ao IdP do destinatário e valida o JWT em relação à política de federação configurada pelo 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 de sua organização.

A federação OIDC é uma alternativa ao uso de tokens portadores emitidos pela Databricks de longa duração para conectar destinatários que não são da Databricks a provedores. Ele permite o controle de acesso refinado, suporta MFA e reduz os riscos de segurança, eliminando a necessidade de os destinatários gerenciarem e protegerem as credenciais compartilhadas. Para obter informações sobre como usar o portador tokens para gerenciar a autenticação em compartilhamentos, consulte Criar um objeto destinatário para usuários que não sejam doDatabricks usando o portador tokens (compartilhamento aberto).

Como a federação OIDC funciona no Delta Sharing?

  1. Quando o provedor de dados cria o destinatário em Delta Sharing em Databricks, ele configura uma política de federação de tokens OIDC que especifica o URL do emissor do IdP do destinatário, como Microsoft Entra ID ou Okta, e define o usuário destinatário, a entidade de serviço, o grupo ou o aplicativo cliente que deve ter acesso ao compartilhamento.

  2. A Databricks gera um URL de portal da Web de perfil OIDC, com base na política, e o provedor compartilha esse URL com o destinatário.

    O usuário final copia o URL endpoint ou downloads o arquivo de perfil, dependendo da plataforma de sua preferência, e fornece o URL ou o arquivo de perfil à 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 usuário para máquina (U2M), o destinatário insere o endpoint do destinatário do portal da Web do 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.
  3. Quando o destinatário tenta acessar o uso compartilhado de dados em sua plataforma preferida, a autenticação é federada ao seu IdP.

    Databricks não gera nem gerencia nenhum tokens ou credencial. Em vez disso, o IdP do destinatário gera um JWT contendo declarações de identidade. O tempo de vida desses tokens 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 Unity Catalog.

Antes de começar

Para criar um destinatário, você deve atender aos seguintes requisitos:

  • O senhor deve ser um administrador de metastore ou ter o privilégio CREATE_RECIPIENT para o metastore do Unity Catalog onde os dados que deseja compartilhar estão registrados.
  • O senhor deve criar o destinatário usando um Databricks workspace que tenha o metastore Unity Catalog anexado.
  • Se o senhor usar um notebook Databricks para criar o destinatário, o seu compute deverá 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?

O senhor pode usar a federação OIDC com um provedor de identidade interno ou externo, dependendo do seu cenário de compartilhamento:

  • Provedor de identidade interno (provedor-gerenciar)

    • Isso é útil para o compartilhamento de dados em grandes organizações em que 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 role-based access control, são aplicadas pelo IdP do provedor.
  • Provedor de identidade externo (Recipiente-gerenciar)

    • O provedor configura a política de compartilhamento para confiar no IdP do destinatário.
    • A organização destinatária mantém o controle total sobre quem pode acessar os dados compartilhados.
    • As 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

A Federação de compartilhamento aberto seguro com tokens OIDC oferece suporte a fluxos de autenticação de usuário para máquina (U2M) e máquina para máquina (M2M), permitindo uma ampla variedade de cenários de compartilhamento seguro de dados.

Autenticação de usuário para máquina (U2M)

Um usuário da organização destinatária se autentica usando seu IdP. Se a MFA estiver configurada, ela será aplicada durante o login.

Uma vez autenticados, os usuários podem acessar ferramentas de uso compartilhado de dados, como Power BI ou Tableau. O provedor de dados pode definir políticas de acesso que restringem o acesso aos dados a usuários ou grupos específicos dentro da organização destinatária, garantindo um controle preciso sobre quem pode acessar os 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 trabalho noturno ou serviço em segundo plano, que exigem acesso sem interação do usuário. A organização destinatária registra a entidade de serviço em seu IdP. Esse serviço de identidade permite que aplicativos ou scripts acessem o recurso de forma segura e programática. Nenhum segredo ou credencial é trocado entre a Databricks, o provedor ou o destinatário. Todo gerenciamento de segredos permanece interno a cada organização. Os 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.

Crie um destinatário que use uma política de federação do OIDC

Etapa 1. Criar um destinatário da Federação OIDC aberta

Para criar um destinatário que se autentique usando o OIDC:

  1. Em seu site Databricks workspace, clique em Ícone de catálogo Catalog .

  2. Na parte superior do painel Catálogo , clique no ícone de engrenagem ícone de engrenagem e selecione Delta Sharing .

    Como alternativa, na página de acesso rápido , clique no botão Delta Sharing > .

  3. Em Shared by me (Compartilhado por mim ) tab, clique em New recipient (Novo destinatário ).

  4. Insira o nome do destinatário .

  5. Em Tipo de destinatário , selecione Abrir .

  6. Escolha a Federação OIDC como o método de Autenticação Aberta.

  7. Clique em Criar .

  8. (Opcional) Crie propriedades personalizadas do destinatário . No recipient Details (Detalhes do destinatário) tab, clique em Edit properties (Editar propriedades) > +Add property (Adicionar propriedade ). Em seguida, adicione um nome de propriedade (chave ) e Value (valor ). Para obter detalhes, consulte gerenciar propriedades do destinatário.

Etapa 2. Criar política de federação do 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 ou entidades de serviço que devem ter acesso ao compartilhamento. Se o senhor estiver usando seu próprio IdP (interno) para compartilhamento interno, recupere essas informações de seu próprio sistema de identidade.

Primeiro, o senhor deve solicitar ao destinatário informações sobre seu IdP e os usuários, grupos e entidades de serviço que devem ter acesso ao compartilhamento. Em seguida, o senhor fornece essas informações em Databricks quando cria o destinatário.

Na página de edição do destinatário, em Políticas de federação do OIDC , clique em Adicionar política.

Diálogo de configuração da política do OIDC

Digite o seguinte:

  • Nome da política: nome legível por humanos para a política.
  • URL do emissor : O URL HTTPS do IdP que emite os tokens JWT.
  • Reivindicação do assunto : a declaração no JWT que identifica a identidade autenticadora (sub, groups ou oid).
  • Assunto : O usuário, grupo ou entidade de serviço específico que tem permissão para 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 de auditoria corresponder a qualquer um dos públicos listados.

Se você não tiver certeza sobre os valores a serem usados (emissor, assunto, reclamação, assunto, público), consulte o exemplo a seguir. Você precisa determinar os detalhes da Política de Federação do OIDC antes de criá-la.

Se o senhor estiver usando um destinatário externo, o IdP gerenciar solicitará as seguintes informações do destinatário compartilhado usando um canal seguro. Se o senhor estiver usando seu provedor interno para gerenciar o IdP, essas informações são do seu próprio IdP com base nas identidades com as quais o senhor está compartilhando.

Exemplo de U2M quando IdP é Entra ID:

Estes são exemplos de configuração para compartilhamento com um usuário específico com Object ID 11111111-2222-3333-4444-555555555555 no Entra ID tenant aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee

  • Emissor: https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0
  • reivindicação de assunto: oid (ID do objeto)
  • Assunto: 11111111-2222-3333-4444-555555555555
  • Audiências: 64978f70-f6a6-4204-a29e-87d74bfea138 (Este é o ID do cliente do aplicativo multitenant registrado por Databricks no Entra ID)

Estes são exemplos de configuração para compartilhamento com um grupo específico com Object ID 66666666-2222-3333-4444-555555555555 no Entra ID tenant aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee

  • Emissor: https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0
  • reivindicação do assunto: groups
  • Assunto: 66666666-2222-3333-4444-555555555555
  • Audiências: 64978f70-f6a6-4204-a29e-87d74bfea138 (Este é o ID do cliente do aplicativo multitenant registrado por Databricks no Entra ID)
nota

Para aplicativos U2M como Power BI e Tableau, o público deve ser o ID do aplicativotenant registrado por Databricks no Entra ID, que é 64978f70-f6a6-4204-a29e-87d74bfea138.

Para obter mais informações sobre aplicativos U2M e suas políticas de federação OIDC, consulte Receber compartilhamentos Delta Sharing usando a federação Open ID Connect (OIDC) em um fluxo de usuário para máquina (compartilhamento aberto).

Exemplo de M2M quando IdP é Entra ID:

Para um aplicativo M2M OAuth com entidade de serviço Object ID 11111111-2222-3333-4444-555555555555 em Entra ID tenant aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee:

Etapa 3. Conceder ao destinatário acesso a um compartilhamento

Depois de criar o destinatário e criar os compartilhamentos, você pode conceder ao destinatário acesso a esses compartilhamentos.

Para conceder acesso de compartilhamento aos destinatários, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando GRANT ON SHARE SQL em um Databricks Notebook ou o editor de consultas Databricks SQL.

Permissões necessárias : uma das seguintes opções:

  • Administrador do Metastore.
  • Permissões ou propriedade delegadas no compartilhamento e nos objetos do destinatário ((USE SHARE + SET SHARE PERMISSION) ou proprietário do compartilhamento) E (USE RECIPIENT ou proprietário do destinatário).

Para obter instruções, consulte gerenciar o acesso aos compartilhamentos de dados do Delta Sharing (para provedores).

Recebedor fluxo de trabalho

Para saber como os destinatários autenticam e acessam compartilhamentos usando a federação de tokens OIDC, consulte: