Configure o OAuth M2M para ingestão do SharePoint
Para a maioria dos usuários, o Databricks recomenda OAuth U2M: gerenciado pelo Databricks, que não exige registro de aplicativo do Azure e é gerenciado inteiramente pelo Databricks. Use M2M para pipelines de produção totalmente automatizados que são executados sem interação do usuário.
Qual modelo de permissões devo usar?
A autenticação M2M suporta os seguintes modelos de permissão no Microsoft Azure:
- Sites.Read.All : Concede acesso a todos os sites do SharePoint em sua organização. Esta opção tem menos etapas de configuração, mas oferece um acesso mais amplo.
- Sites.Selected : Concede acesso somente a sites específicos do SharePoint. Isso requer configuração adicional, mas segue o princípio do menor privilégio.
Databricks recomenda o uso de Sites.Selected sempre que possível para limitar o acesso da entidade de serviço apenas aos sites que você precisa ingerir.
Qual tipo de credencial devo usar?
A autenticação M2M suporta os seguintes tipos de credenciais para a aplicação Microsoft Entra ID:
- Certificado : um certificado X.509 e sua key privada.
- Segredo do cliente : uma strings secreta que você gera no portal do Azure.
A Databricks recomenda usar um certificado. Uma conexão usa um tipo de credencial, seja um certificado ou um segredo do cliente.
Pré-requisitos
- Privilégios de administrador em seu tenant Microsoft Entra ID.
Sites.Read.All permissões
Esta opção concede à entidade de serviço acesso a todos os sites do SharePoint em sua organização.
Passo 1: Obtenha o ID do site do SharePoint
- Acesse o site do SharePoint desejado em seu navegador.
- Adicione
/_api/site/idà URL. - Digite Enter .
Etapa 2: Obter nomes de unidades do SharePoint (opcional)
Se você deseja importar todas as unidades e documentos do seu site do SharePoint, ignore esta etapa. Se você deseja importar apenas um subconjunto das unidades, precisa coletar seus nomes.
Os nomes das unidades estão listados no menu à esquerda. Em cada site, existe uma unidade default chamada Documentos . No entanto, sua organização pode ter unidades adicionais. Por exemplo, as unidades na seguinte captura de tela incluem doclib1, subsite1doclib1 e mais.

Algumas unidades podem estar ocultas na lista. O criador da unidade pode configurar isso nas configurações da unidade. Nesse caso, unidades ocultas podem ficar visíveis na seção Conteúdo do site .

o passo 3: Crie um aplicativo Microsoft Entra ID
Este passo cria um registro de aplicativo que pode acessar os arquivos do SharePoint usando uma entidade de serviço.
-
No portal do Microsoft Azure (https://portal.azure.com), Clique em ID do Microsoft Entra . Você talvez precise pesquisar por "Microsoft Entra ID".

-
Na barra lateral esquerda, na seção Gerenciar , clique em Registros de Aplicativos .
-
Clique em Novo registro .

-
No formulário de inscrição , especifique o seguinte:
- Um nome para sua aplicação (por exemplo, "Databricks SharePoint Ingestion").
- Se você deseja que outros inquilinos acessem este aplicativo.
Não é necessário especificar um URL de redirecionamento para autenticação M2M.
-
Clique em registrar . Você será redirecionado para a página de detalhes do aplicativo.
-
Anote os seguintes valores:
- ID da aplicação (cliente)
- ID do diretório (tenant)
Em seguida, adicione uma credencial de cliente ao aplicativo. Siga os passos para o tipo de credencial que você escolheu. Consulte Qual tipo de credencial devo usar?.
- Certificate
- Client secret
A conexão requer um certificado X.509 em formato PEM e uma key privada RSA não criptografada em formato PKCS #8 PEM. Chaves privadas criptografadas não são suportadas.
-
Gere um certificado e uma key privada. Por exemplo, o comando OpenSSL a seguir cria um certificado autoassinado válido por dois anos:
Bashopenssl req -x509 -newkey rsa:2048 -sha256 -days 730 -nodes \-keyout ~/databricks_key.pem -out ~/databricks_cert.pem \-subj "/CN=databricks-sharepoint"O comando cria
databricks_cert.pem(o certificado público) edatabricks_key.pem(a key privada) em seu diretório home. Você também pode usar um certificado emitido pela autoridade de certificação da sua organização. -
Se o senhor estiver usando uma key privada de outra fonte, confirme se o arquivo começa com o delimitador
BEGIN PRIVATE KEY. Se ele começar com o delimitadorBEGIN RSA PRIVATE KEY, converta-o para o formato PKCS #8 e use o arquivo convertido como key privada:Bashopenssl pkcs8 -topk8 -nocrypt -in <private-key-file> -out ~/databricks_key.pem -
Na barra lateral esquerda da página de registro do aplicativo, em Gerenciar , clique em Certificados e segredos .
-
Clique na tab Certificados .
-
Clique em Upload certificado .
-
Selecione
databricks_cert.pem, adicione uma descrição e clique em Adicionar .
-
Armazene o arquivo de key privada com segurança. Você insere o certificado e a key privada ao criar a conexão.
Os certificados expiram. Antes que o certificado expire, upload de um novo certificado para o aplicativo e atualize a conexão com o novo certificado e a key privada.
-
Clique em Credenciais do cliente: Adicionar um certificado ou segredo .
-
Clique em + Novo segredo do cliente .

-
Adicione uma descrição.
-
Clique em Adicionar . A lista atualizada de segredos do cliente é exibida.
-
Copie o valor secreto do cliente e armazene-o em local seguro. Depois de sair da página, você não poderá mais acessar o segredo do cliente.
o passo 4: Configurar permissões API
Conceda ao aplicativo as permissões necessárias para ler os arquivos do SharePoint.
-
Na página de registro do aplicativo, clique em "Permissões da API" no menu à esquerda.
-
Clique em + Adicionar uma permissão .
-
No painel de permissões API de solicitação , clique em Microsoft gráfico .
-
Clique em Permissões do aplicativo .
-
Procure e selecione as seguintes permissões:
- Sites.Leia.Tudo
- Arquivos.Ler.Tudo
-
Clique em Adicionar permissões .
-
Clique em Conceder permissão de administrador para [sua organização] .
-
Clique em Sim para confirmar.
A lista de permissões exibe uma marca de seleção verde na coluna Status , indicando que o consentimento do administrador foi concedido.
o passo 5: Criar uma conexão no Databricks
-
No Explorador de Catálogo, clique em Dados externos no menu à esquerda.
-
Clique em Criar conexão .
-
Na caixa de diálogo Criar conexão , especifique o seguinte:
- Nome da conexão : Um nome exclusivo para sua conexão.
- Tipo de conexão : Microsoft SharePoint
- Tipo de autenticação : OAuth Máquina a Máquina
- ID do cliente : O ID do aplicativo (cliente) do passo 3
- Usar certificado : marque esta caixa de seleção para autenticar com um certificado. Deixe-a desmarcada para autenticar com um segredo do cliente.
- Segredo do cliente : O valor do segredo do cliente do Passo 3. Este campo aparece apenas quando Usar certificado está desmarcado.
- Certificado de cliente pem : o conteúdo de
databricks_cert.pemdo Passo 3, incluindo os delimitadoresBEGIN CERTIFICATEeEND CERTIFICATE. Obrigatório quando Usar certificado está selecionado. - Pem da key privada do cliente : O conteúdo de
databricks_key.pemdo passo 3, incluindo os delimitadoresBEGIN PRIVATE KEYeEND PRIVATE KEY. Obrigatório quando Usar certificado está selecionado. - Domínio : Seu domínio do SharePoint no formato
https://YOURINSTANCE.sharepoint.com - ID do locatário : O ID do diretório (tenant) do passo 3
-
Clique em Criar .
Sites.Selected permissões
Esta opção restringe o acesso da entidade de serviço apenas a sites específicos do SharePoint.
os passos 1-3: Conclua a configuração básica
Siga os passos 1 a 3 na seçãoSites.Read.All. Esses passos são os mesmos para ambos os modelos de permissão.
- Obtenha o ID do site do SharePoint.
- Obtenha os nomes das unidades do SharePoint (opcional).
- Crie um aplicativo Microsoft Entra ID.
o passo 4: Configurar permissões API para Sites.Selected
Conceda ao aplicativo permissões restritas que exigem autorização adicional específica do site.
-
Na página de registro do aplicativo, clique em "Permissões da API" no menu à esquerda.
-
Clique em + Adicionar uma permissão .
-
No painel de permissões API de solicitação , clique em Microsoft gráfico .
-
Clique em Permissões do aplicativo .
-
Pesquise e selecione Sites.Selecionados .
-
Clique em Adicionar permissões .
-
Clique em Conceder permissão de administrador para [sua organização] .
Este passo requer privilégios de administrador em seu tenant Microsoft Entra ID.
-
Clique em Sim para confirmar.
A lista de permissões exibe uma marca de seleção verde na coluna Status , indicando que o consentimento do administrador foi concedido.
o passo 4b: Conceder permissões específicas do local
Após configurar Sites.Selected no Azure, você deve conceder explicitamente ao aplicativo acesso a sites específicos do SharePoint. Você pode fazer isso usando Microsoft Gráfico Explorer ou um Notebook Python .
- Microsoft Graph Explorer
- Python notebook
-
Vá para o Microsoft gráfico Explorer.
-
Faça login com uma account que tenha permissões de administrador para o seu site do SharePoint.
-
Clique em Modificar permissões e conceda as permissões necessárias (Sites.FullControl.All).
-
Altere o método HTTP para POST .
-
Insira o seguinte URL, substituindo
{site_id}pelo ID do seu site do SharePoint da etapa 1:https://graph.microsoft.com/v1.0/sites/{site_id}/permissions -
Na seção Corpo da solicitação , cole o seguinte JSON, substituindo os valores de espaço reservado:
JSON{"roles": ["read"],"grantedToIdentities": [{"application": {"id": "<YOUR_CLIENT_ID>","displayName": "<YOUR_APP_NAME>"}}]}Substituir:
<YOUR_CLIENT_ID>O ID do aplicativo (cliente) do passo 3<YOUR_APP_NAME>: O nome do seu registro de inscrição
-
Clique em executar consulta .
Uma resposta positiva indica que a permissão foi concedida.
-
Crie um novo Notebook em seu workspace Databricks .
-
Instale a biblioteca MSAL executando o seguinte comando em uma célula:
Python%pip install msal -
Em uma nova célula, cole o seguinte código e substitua os valores de espaço reservado:
Pythonimport msalimport requests# Configuration - Replace these valuesTENANT_ID = "<YOUR_TENANT_ID>" # Directory (tenant) ID from Step 3ADMIN_CLIENT_ID = "<ADMIN_CLIENT_ID>" # Client ID of an app with admin consentADMIN_CLIENT_SECRET = "<ADMIN_CLIENT_SECRET>" # Client secret of admin appTARGET_APP_CLIENT_ID = "<TARGET_CLIENT_ID>" # Client ID from Step 3TARGET_APP_DISPLAY_NAME = "<TARGET_APP_NAME>" # Name of your appSITE_ID = "<YOUR_SITE_ID>" # SharePoint site ID from Step 1# Authenticate using MSALauthority = f"https://login.microsoftonline.com/{TENANT_ID}"app = msal.ConfidentialClientApplication(ADMIN_CLIENT_ID,authority=authority,client_credential=ADMIN_CLIENT_SECRET)# Acquire tokentoken_result = app.acquire_token_for_client(scopes=["https://graph.microsoft.com/.default"])if "access_token" in token_result:access_token = token_result["access_token"]# Grant site permissionsgrant_url = f"https://graph.microsoft.com/v1.0/sites/{SITE_ID}/permissions"headers = {"Authorization": f"Bearer {access_token}","Content-Type": "application/json"}grant_payload = {"roles": ["read"],"grantedToIdentities": [{"application": {"id": TARGET_APP_CLIENT_ID,"displayName": TARGET_APP_DISPLAY_NAME}}]}response = requests.post(grant_url, headers=headers, json=grant_payload)if response.status_code in [200, 201]:print("Successfully granted site permissions")print(response.json())else:print(f"Error: {response.status_code}")print(response.text)else:print("Failed to acquire token")print(token_result.get("error"))print(token_result.get("error_description")) -
execução da célula. Uma resposta positiva indica que a permissão foi concedida.
o passo 5: Criar uma conexão no Databricks
Siga os passos em Passo 5: Criar uma conexão no Databricks para criar a conexão no Databricks usando as credenciais do seu registro de aplicativo.