Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esta página descreve como os destinatários de dados podem usar um cliente Python registrado em seu próprio provedor de identidade (IdP) para estabelecer acesso aos compartilhamentos Delta Sharing criados no Databricks. Esse fluxo de concessão de Credenciais do Cliente OAuth (M2M) de "máquina para máquina" normalmente é usado em cenários em que um aplicativo, como um trabalho noturno em execução em uma máquina virtual, acessa dados de forma autônoma. Esse fluxo de autenticação usa a federação OIDC, permitindo que JWTs (Tokens Web JSON) emitidos pelo IdP do destinatário sejam usados como tokens OAuth de curta duração que são autenticados pelo Databricks. Esse fluxo de autenticação de Databricks para compartilhamento aberto é para destinatários que não têm acesso a um workspace do Databricks habilitado para Catálogo do Unity.
A federação Open OIDC é uma alternativa ao uso de tokens de portador emitidos pelo Databricks de longa duração para conectar destinatários que não são do Databricks aos provedores. No fluxo de concessão de Credenciais do Cliente OAuth, um aplicativo OAuth é registrado como uma Entidade de Serviço (SP) no IdP do destinatário. Nenhum segredo ou credenciais de longa duração é compartilhado entre o Databricks, o provedor e o destinatário. Para obter informações sobre como usar tokens de portador para gerenciar a autenticação em compartilhamentos, consulte Criar um objeto do destinatário para usuários que não são do Databricks usando tokens de portador (compartilhamento aberto).
Este artigo destina-se aos destinatários. Para obter informações sobre como os provedores podem habilitar a federação OIDC para destinatários no Azure Databricks, consulte Usar a federação OIDC (Open ID Connect) para habilitar a autenticação para compartilhamentos Delta Sharing (compartilhamento aberto). Para mais informações sobre o fluxo de "usuário para máquina" (U2M), consulte Receber compartilhamentos Delta Sharing usando federação Open ID Connect (OIDC) em um fluxo de usuário para máquina (compartilhamento aberto).
Registrar um aplicativo em seu IdP
Antes de poder usar a federação OIDC para conceder acesso ao aplicativo cliente aos compartilhamentos Delta Sharing, você deve registrar um aplicativo OAuth em seu IdP. Esta seção descreve como registrar um aplicativo OAuth na ID do Microsoft Entra. Para outros IdPs, consulte a documentação.
Registrar um aplicativo na ID do Microsoft Entra
Essas instruções são destinadas como diretrizes gerais e não há garantia de que estarão sempre atualizadas. Para obter instruções detalhadas sobre registro de aplicativo, consulte este guia de início rápido da Microsoft.
- Entre no Centro de administração do Microsoft Entra como pelo menos um Desenvolvedor de Aplicativos.
- Vá para registros de aplicativo e crie um novo registro sem uma URL de redirecionamento.
- Acesse Certificados e Segredos > Criar um segredo para seu aplicativo.
- Copie o valor do segredo e armazene-o com segurança.
- Na página Registros de aplicativo > Visão geral do aplicativo, copie a ID do aplicativo (cliente)
- Modifique o aplicativo para ser um aplicativo V2 atualizando o manifesto:
- Na seção Gerenciar do aplicativo, selecione Manifesto.
- No editor de texto, defina
accessTokenAcceptedVersioncomo2. - Salve as alterações.
Enviar informações necessárias para o provedor de dados do Azure Databricks
Se você, como destinatário, usar a ID do Microsoft Entra, poderá obter os campos exigidos pelo provedor seguindo estas instruções. Sempre consulte a documentação do Microsoft Entra ID para obter as instruções mais atualizadas.
URL do Emissor:
https://login.microsoftonline.com/{tenantId}/v2.0, substituindo{tenantId}pela ID do locatário do Entra. Se você não souber sua ID de locatário, consulte a documentação do Microsoft Entra ID.Declaração do Sujeito: refere-se ao campo no payload JWT que identifica a entidade que acessa os dados. O campo específico usado depende do IdP (Provedor de Identidade) e dos casos de uso. Por exemplo, para aplicativos M2M no Microsoft Entra ID, o atributo de assunto é
azp, que representa o identificador do cliente do aplicativo autorizado a utilizar o token. Para obter mais detalhes, consulte a referência de reivindicações de token de acesso do Microsoft Entra IDAssunto: refere-se ao identificador exclusivo do aplicativo OAuth registrado no IdP (Provedor de Identidade) do destinatário.
Por exemplo, na ID do Microsoft Entra, essa é a ID do aplicativo (cliente). Se você não copiou a ID do cliente durante o registro, poderá recuperá-la seguindo as etapas específicas para o IdP. Para a ID do Microsoft Entra, siga estas etapas:- Navegue até registros de aplicativo no Centro de administração do Microsoft Entra.
- Selecione seu aplicativo OAuth registrado.
- Localize a ID do aplicativo (cliente) na página Visão geral.
Para outros IdPs, consulte a documentação deles para recuperar o identificador equivalente.
Público-alvo: para autenticação de computador para Azure Databricks, normalmente você usa o recurso
clientId, mas pode especificar qualquer outro identificador de recurso válido.Você deve ter copiado isso na etapa anterior. Caso contrário, navegue até o centro de administração do Microsoft Entra, pesquise Registros de aplicativo, selecione seu aplicativo registrado e localize a ID do Aplicativo (cliente) na página Visão geral. Você também pode usar uma ID de recurso diferente.
Emissor de compartilhamento, declaração de entidade, entidade e público-alvo com o provedor.
Configurar seu aplicativo para usar o arquivo de perfil OAuth compartilhado pelo provedor do Databricks
Para configurar seu aplicativo para acessar os compartilhamentos Delta Sharing do provedor, siga os passos do seguinte modo:
Vá para a URL do portal de perfil OIDC que o provedor do Databricks compartilhou com você.
Solicite a URL se você ainda não a recebeu.
Na página do portal, selecione o bloco M2M e, em Para OAuth, clique em Baixar arquivo.
Modifique o arquivo JSON
oauth_config.sharebaixado para adicionar seuclientId,clientSecretescope.Você deve ter copiado a ID do cliente e o segredo do cliente quando registrou seu aplicativo. Não é possível recuperar o segredo do cliente novamente. Para recuperar a ID do cliente, consulte as instruções na seção anterior.
Se você optar por usar o aplicativo
{clientId}como público-alvo, o escopo deverá ser{clientId}/.default. Por exemplo, se o público-alvo for61a80fb9-ce0c-4794-9f7f-2ba42a7b76f6, o escopo deverá ser61a80fb9-ce0c-4794-9f7f-2ba42a7b76f6/.default.Perfil de exemplo:
{ "shareCredentialsVersion": 2, "endpoint": "https://oregon.cloud.databricks.com/api/2.0/delta-sharing/metastores/11a11aaa-11aa-11a12-11aa-111a1aa11111/recipients/a11da11aa1-a1a1-11a1-a11a-1111a11111aa", "tokenEndpoint": "https://login.microsoftonline.com/a111a111-1111-1aaa-1aa1-1aa1111aa1/oauth2/v2.0/token", "type": "oauth_client_credentials", "clientId": "[REPLACE_WITH_YOUR_CLIENT_ID]", "clientSecret": "[REPLACE_WITH_YOUR_CLIENT_SECRET]", "scope": "[REPLACE_WITH_YOUR_SCOPE]" }Instale e configure o cliente mais recente do SoS python do Delta Sharing.
Você deve ter a versão mais recente do cliente OSS do Python de Compartilhamento Delta.
python3 -m venv .venv source .venv/bin/activate pip3 install "delta-sharing>=1.3.1"Salve o arquivo
oauth_config.shareatualizado.Teste a configuração:
Criar um script de teste,
test.py:import delta_sharing # Point to the profile file. It can be a file on the local file system or a file on a remote storage. profile_file = "oauth_config.share" # Create a SharingClient. client = delta_sharing.SharingClient(profile_file) # # List all shared tables. tables = client.list_all_tables() print(tables) # replace the following line with the coordinates of the shared table #table_url = profile_file + "#sample_share.sample_db.sample_table" # Fetch 10 rows from a table and convert it to a Pandas DataFrame. # This can be used to read sample data from a table that cannot fit in the memory. #df = delta_sharing.load_as_pandas(table_url, limit=10) #print(df)Executar o script:
python3 test.pyO script deve listar as tabelas compartilhadas.