Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här sidan beskriver hur datamottagare kan använda en Python-klient registrerad i sin egen identitetsleverantör (IdP) för att etablera åtkomst till Delta Sharing-delningar skapade i Databricks. Det här beviljandeflödet för "maskin-till-dator" (M2M) OAuth-klientautentiseringsuppgifter används vanligtvis i scenarier där ett program, till exempel ett nattjobb som körs på en virtuell dator, kommer åt data autonomt. Det här autentiseringsflödet använder OIDC-federation, vilket gör att JSON-webbtoken (JWT) som utfärdats av mottagarens IdP kan användas som kortlivade OAuth-token som autentiseras av Databricks. Det här autentiseringsflödet för Databricks-till-öppen delning är för mottagare som inte har åtkomst till en Unity Catalog-aktiverad Databricks-arbetsyta.
Öppen OIDC-federation är ett alternativ till att använda långlivade Databricks-utfärdade ägartoken för att ansluta icke-Databricks-mottagare till leverantörer. I flödet för klientautentiseringsuppgifter i OAuth registreras en OAuth-applikation som en tjänstehuvudman (SP) i mottagarens IdP. Inga långvariga hemligheter eller autentiseringsuppgifter delas mellan Databricks, providern och mottagaren. Information om hur du använder ägartoken för att hantera autentisering till resurser i stället finns i Skapa ett mottagarobjekt för icke-Databricks-användare som använder ägartoken (öppen delning).
Den här artikeln är avsedd för mottagare. Information om hur leverantörer kan aktivera OIDC-federation för mottagare i Azure Databricks finns i Använda OIDC-federation (Open ID Connect) för att aktivera autentisering till Delta-delningsresurser (öppen delning). För information om flödet "användare till dator" (U2M), se Ta emot deltadelningsresurser med hjälp av Open ID Connect (OIDC) federation i ett användare-till-dator-flöde (öppen delning).
Registrera en app i din IdP
Innan du kan använda OIDC-federation för att ge klientprogrammet åtkomst till Delta-delningsresurser måste du registrera ett OAuth-program i din IdP. I det här avsnittet beskrivs hur du registrerar ett OAuth-program i Microsoft Entra-ID. För andra IdP:er, se deras dokumentation.
Registrera en app i Microsoft Entra-ID
Dessa instruktioner är avsedda som allmänna riktlinjer och garanteras inte hållas up-to-date. Detaljerade anvisningar för appregistrering finns i den här Microsoft-snabbstarten.
- Logga in på administrationscentret för Microsoft Entra som minst programutvecklare.
- Gå till Appregistreringar och skapa en ny registrering utan en omdirigerings-URL.
- Gå till Certifikat och hemligheter > Skapa en hemlighet för din app.
- Kopiera det hemliga värdet och lagra det på ett säkert sätt.
- På sidan Översikt över appregistreringar > för appen kopierar du program-ID:t (klient)-ID:t
- Ändra appen till ett V2-program genom att uppdatera manifestet:
- I avsnittet Hantera i appen väljer du Manifest.
- I redigeraren anger du
accessTokenAcceptedVersion
till2
. - Spara ändringarna.
Skicka nödvändig information till Azure Databricks-dataprovidern
Om du som mottagare använder Microsoft Entra-ID kan du hämta de fält som krävs av providern genom att följa dessa instruktioner. Se alltid Microsoft Entra ID-dokumentationen för de mest up-todatuminstruktionerna.
Utfärdar-URL:
https://login.microsoftonline.com/{tenantId}/v2.0
, ersätter{tenantId}
med ditt Klient-ID för Entra. Om du inte känner till ditt klientorganisations-ID kan du läsa dokumentationen om Microsoft Entra-ID.Ämnesanspråk: Refererar till fältet i JWT-nyttolasten som identifierar entiteten som kommer åt data. Det specifika fält som används beror på din identitetsprovider (IdP) och användningsfall. Till exempel, för M2M-applikationer i Microsoft Entra ID, är ämnesanspråket
azp
, som representerar klient-ID:t för applikationen som har behörighet att använda token. Mer information finns i anspråksreferensen för Microsoft Entra-ID-åtkomsttokenÄmne: Refererar till den unika identifieraren för det registrerade OAuth-programmet i mottagarens identitetsprovider (IdP).
I Microsoft Entra-ID är det till exempel program-ID:t (klient). Om du inte kopierade klient-ID:t under registreringen kan du hämta det genom att följa stegen som är specifika för din IdP. Följ dessa steg för Microsoft Entra-ID:- Gå till Appregistreringar i administrationscentret för Microsoft Entra.
- Välj ditt registrerade OAuth-program.
- Leta upp program-ID:t (klient) på sidan Översikt.
För andra identitetsleverantörer, hänvisa till deras dokumentation för att hitta motsvarande identifierare.
Målgrupp: För maskin-till-Azure Databricks-autentisering använder du vanligtvis resursens
clientId
, men du kan ange alla andra giltiga resursidentifierare.Du bör ha kopierat detta i föregående steg. Annars går du till administrationscentret för Microsoft Entra, söker efter appregistreringar, väljer ditt registrerade program och letar sedan upp program-ID:t (klient) på sidan Översikt. Du kan också använda ett annat resurs-ID.
Dela utfärdare, ämnesanspråk, ämne och målgrupp med leverantören.
Konfigurera din app så att den använder OAuth-profilfilen som delas av Databricks-providern
Så här konfigurerar du din app för åtkomst till Delta Sharing-resurser från leverantören:
Gå till url:en för OIDC-profilportalen som Databricks-providern delade med dig.
Begär URL:en om du ännu inte har tagit emot den.
På portalsidan väljer du M2M-panelen och under För OAuth klickar du på Ladda ned fil.
Ändra den nedladdade
oauth_config.share
JSON-filen för att lägga tillclientId
,clientSecret
ochscope
.Du borde ha kopierat klient-ID:t och klienthemligheten när du registrerade appen. Du kan inte hämta klienthemligheten igen. Information om hur du hämtar klient-ID:t finns i anvisningarna i föregående avsnitt.
Om du väljer att använda appens
{clientId}
som målgrupp bör omfånget vara{clientId}/.default
. Om målgruppen till exempel är61a80fb9-ce0c-4794-9f7f-2ba42a7b76f6
ska omfånget vara61a80fb9-ce0c-4794-9f7f-2ba42a7b76f6/.default
.Exempelprofil:
{ "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]" }
Installera och konfigurera den senaste Delta Sharing Python OSS-klienten.
Du måste ha den senaste versionen av Delta Sharing Python OSS-klienten.
python3 -m venv .venv source .venv/bin/activate pip3 install "delta-sharing>=1.3.1"
Spara den uppdaterade
oauth_config.share
filen.Testa konfigurationen:
Skapa ett testskript,
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)
Kör skriptet:
python3 test.py
Skriptet bör visa en lista över delade tabeller.