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 descreve como os destinatários de dados podem usar um cliente Python registado no seu próprio fornecedor de identidade (IdP) para estabelecer acesso a partilhas OpenSharing criadas no Databricks.
Esse fluxo de concessão de credenciais de cliente OAuth "máquina a máquina" (M2M) 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. Este fluxo de autenticação utiliza federação OIDC. O IdP do destinatário emite JSON Web Tokens (JWTs) que servem como tokens OAuth de curta duração, que o Databricks autentica. Este fluxo de autenticação de compartilhamento de Databricks para externo destina-se a destinatários que não têm acesso a um espaço de trabalho Databricks ativado para o Catálogo 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 a 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 credencial de longa duração é compartilhado entre o Databricks, o provedor e o destinatário. 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).
Esta página destina-se aos destinatários. Para informações sobre como os fornecedores podem ativar a federação OIDC para destinatários no Azure Databricks, consulte Habilitar a federação Open ID Connect (OIDC) para destinatários OpenSharing.
Para informações sobre o fluxo "utilizador-para-máquina" (U2M), veja Ler dados partilhados usando a federação Open ID Connect (OIDC) num fluxo U2M.
Registar uma aplicação no seu IdP
Antes de poder usar a federação OIDC para dar acesso à sua aplicação cliente às partilhas OpenSharing, deve registar uma aplicação OAuth no seu IDP. Esta seção descreve como registrar um aplicativo OAuth no Microsoft Entra ID. Para outros IdPs, consulte a documentação deles.
Registe uma aplicação no Microsoft Entra ID
Estas instruções destinam-se a servir de orientação geral e não é garantido que estejam mantidas up-to-date. Para obter instruções detalhadas de registo de aplicativos, consulte este início rápido da Microsoft .
- Entre no centro de administração do Microsoft Entra como pelo menos um desenvolvedor de aplicativos.
- Aceda a Registos de aplicações e crie um novo registo sem um URL de redirecionamento.
- Aceda a Certificados & Segredos > Criar um secreto para a sua aplicação.
- Copie o valor secreto e armazene-o com segurança.
- Na página Visão geral dos registros de aplicações>, copie o ID da aplicação (cliente)
- Modifique o aplicativo para ser um aplicativo V2 atualizando o manifesto:
- Na seção Gerenciar do aplicativo, selecione Manifesto.
- No editor, defina
accessTokenAcceptedVersioncomo2. - Salve as alterações.
Enviar as informações necessárias para o provedor de dados do Azure Databricks
Se você, como destinatário, usar o Microsoft Entra ID, poderá obter os campos exigidos pelo provedor seguindo estas instruções. Consulte sempre a documentação do Microsoft Entra ID para obter as instruções mais up-to.
URL do Emissor:
https://login.microsoftonline.com/{tenantId}/v2.0, substituindo{tenantId}pelo seu ID de locatário do Entra. Se não souber o seu ID de inquilino, consulte a documentação do Microsoft Entra ID.Reivindicação de Assunto: Refere-se ao campo na carga útil JWT que identifica a entidade que acessa os dados. O campo específico usado depende do seu Provedor de Identidade (IdP) e dos casos de uso. Por exemplo, para aplicativos M2M no Microsoft Entra ID, a declaração de assunto é
azp, que representa a ID do cliente do aplicativo autorizado a usar o token. Para obter mais detalhes, consulte a referência de declarações de token do Microsoft Entra ID AccessAssunto: Refere-se ao identificador exclusivo do aplicativo OAuth registrado no Provedor de Identidade (IdP) do destinatário.
Por exemplo, no Microsoft Entra ID, este é o ID do aplicativo (cliente). Se você não copiou o ID do cliente durante o registro, poderá recuperá-lo seguindo as etapas específicas do seu IdP. Para Microsoft Entra ID, siga estes passos:- Navegue até Registos de aplicações no centro de administração do Microsoft Entra.
- Selecione seu aplicativo OAuth registrado.
- Localize o ID do aplicativo (cliente) na página Visão geral.
Para outros IdPs, consulte a documentação deles para recuperar o identificador equivalente.
Audience: Para autenticação de máquina para Azure Databricks, normalmente utiliza-se o
clientIddo recurso, mas é possível 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, procure Registos de Aplicações, selecione o seu aplicativo registrado e localize o ID de Aplicação (cliente) na página de visão geral. Você também pode usar um ID de recurso diferente.
Compartilhe emissor, reivindicação de assunto, assunto e audiência com o provedor.
Configure seu aplicativo para usar o arquivo de perfil OAuth compartilhado pelo provedor Databricks
Para configurar a sua aplicação para aceder a partilhas OpenSharing do fornecedor:
Vá para a URL do portal de perfil OIDC que o provedor Databricks compartilhou com você.
Solicite o URL se ainda não o recebeu.
Na página do portal, selecione o mosaico M2M e, em Para OAuth, clique em Transferir ficheiro.
Modifique o ficheiro JSON de
oauth_config.sharedescarregado para adicionar os seusclientId,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 o 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 deve ser{clientId}/.default. Por exemplo, se o público for61a80fb9-ce0c-4794-9f7f-2ba42a7b76f6, o escopo deve ser61a80fb9-ce0c-4794-9f7f-2ba42a7b76f6/.default.Perfil da amostra:
{ "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 mais recente cliente OpenSharing Python OSS.
Deve ter a versão mais recente do cliente OpenSharing Python OSS.
python3 -m venv .venv source .venv/bin/activate pip3 install "delta-sharing>=1.3.1"Guarde o arquivo
oauth_config.shareatualizado.Teste a configuração:
Crie 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.