Azure Databricks-hozzáférés hitelesítése felhasználói fiókkal az OAuth (OAuth U2M) használatával
Az Azure Databricks OAuth felhasználó–gép (U2M) hitelesítést használ az Azure Databricks-fiókhoz és a munkaterület erőforrásaihoz való CLI- és API-hozzáférés engedélyezéséhez egy felhasználó nevében. Miután egy felhasználó először bejelentkezett, és hozzájárult az OAuth hitelesítési kérelemhez, a rendszer egy OAuth-jogkivonatot ad a résztvevő eszköznek vagy SDK-nak, hogy jogkivonatalapú hitelesítést hajtson végre a felhasználó nevében az adott időponttól kezdve. Az OAuth-jogkivonat élettartama egy óra, amelyet követően az érintett eszköz vagy SDK automatikusan megkísérli beszerezni az egy órán át érvényes új jogkivonatot.
Az Azure Databricks két módszert támogat egy felhasználói fiók hozzáférésének hitelesítésére az OAuth használatával:
- Többnyire automatikusan, a Databricks egyesített ügyfélhitelesítési támogatásának használatával. Ezt az egyszerűsített módszert akkor használja, ha adott Azure Databricks SDK-kat (például a Databricks Terraform SDK-t) és eszközöket használ. A támogatott eszközök és SDK-k a Databricks egyesített ügyfélhitelesítésében szerepelnek.
- Manuálisan, közvetlenül létrehozva egy OAuth-kód ellenőrző/kihívás párját és egy engedélyezési kódot, és ezekkel hozza létre a konfigurációban megadott kezdeti OAuth-jogkivonatot. Ezt a módszert akkor használja, ha nem a Databricks egyesített ügyfélhitelesítés által támogatott API-t használ. További részletekért lásd: Hozzáférési jogkivonatok manuális létrehozása és használata az OAuth felhasználó–gép (U2M) hitelesítéshez.
U2M-hitelesítés a Databricks egységes ügyfél-hitelesítésével
Feljegyzés
Mielőtt elkezdené konfigurálni a hitelesítést, tekintse át a munkaterület-objektumok adott műveletkategóriájának ACL-engedélyeit, és állapítsa meg, hogy a fiókja rendelkezik-e a szükséges hozzáférési szinttel. További részletekért lásd : Hozzáférés-vezérlési listák.
Ha OAuth U2M-hitelesítést szeretne végrehajtani az Azure Databricks SDK-kkal és az egyesített ügyfélhitelesítést támogató eszközökkel, integrálja a következőt a kódba:
Környezet
Ha környezeti változókat szeretne használni egy adott Azure Databricks-hitelesítési típushoz egy eszközzel vagy SDK-val, tekintse meg az Azure Databricks-erőforrásokhoz való hozzáférés hitelesítését, illetve az eszköz vagy az SDK dokumentációját. Lásd még az ügyfél egyesített hitelesítésének környezeti változóit és mezőit, valamint az ügyfél egyesített hitelesítésének alapértelmezett módszereit.
Fiókszintű műveletek esetén állítsa be a következő környezeti változókat:
DATABRICKS_HOST
elemet, állítsa be az Azure Databricks-fiók konzolJÁNAK URL-címét.https://accounts.azuredatabricks.net
DATABRICKS_ACCOUNT_ID
Munkaterületszintű műveletek esetén állítsa be a következő környezeti változókat:
DATABRICKS_HOST
beállításnál állítsa be például az Azure Databricks munkaterületenkénti URL-címéthttps://adb-1234567890123456.7.azuredatabricks.net
.
Profil
Hozzon létre vagy azonosítsa az Azure Databricks konfigurációs profilját a fájl alábbi .databrickscfg
mezőivel. Ha létrehozza a profilt, cserélje le a helyőrzőket a megfelelő értékekre. Ha a profilt egy eszközzel vagy SDK-val szeretné használni, tekintse meg az Azure Databricks-erőforrásokhoz való hozzáférés hitelesítését, illetve az eszköz vagy az SDK dokumentációját. Lásd még az ügyfél egyesített hitelesítésének környezeti változóit és mezőit, valamint az ügyfél egyesített hitelesítésének alapértelmezett módszereit.
Fiókszintű műveletek esetén állítsa be a következő értékeket a .databrickscfg
fájlban. Ebben az esetben az Azure Databricks-fiók konzoljának URL-címe a következő https://accounts.azuredatabricks.net
:
[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
Munkaterületszintű műveletek esetén állítsa be a következő értékeket a .databrickscfg
fájlban. Ebben az esetben a gazdagép az Azure Databricks munkaterületenkénti URL-címe, például https://adb-1234567890123456.7.azuredatabricks.net
:
[<some-unique-configuration-profile-name>]
host = <workspace-url>
CLI
A Databricks parancssori felületéhez futtassa a databricks auth login
következő beállításokkal rendelkező parancsot:
- Az Azure Databricks fiókszintű műveleteihez
--host <account-console-url> --account-id <account-id>
. - Az Azure Databricks munkaterületszintű műveleteihez
--host <workspace-url>
.
A parancs futtatása után kövesse a webböngésző utasításait az Azure Databricks-fiókba vagy -munkaterületre való bejelentkezéshez.
További részletekért lásd : OAuth U2M-hitelesítés a Databricks parancssori felületével.
Kapcsolódás
Feljegyzés
Az OAuth U2M-hitelesítés a következő Databricks Connect-verziókban támogatott:
- Python esetén a Databricks Connect for Databricks Runtime 13.1 vagy újabb verziója.
- A Scala esetében a Databricks Connect for Databricks Runtime 13.3 LTS és újabb verziója.
A Databricks Connect esetében az alábbiak egyikét teheti meg:
- Állítsa be a
.databrickscfg
fájlban lévő értékeket az Azure Databricks munkaterületszintű műveleteihez a jelen cikk "Profil" szakaszában megadottak szerint. A profil környezeti változójátcluster_id
állítsa be példáulhttps://adb-1234567890123456.7.azuredatabricks.net
a munkaterületenkénti URL-címre. - Állítsa be az Azure Databricks munkaterületszintű műveleteinek környezeti változóit a jelen cikk "Környezet" szakaszában megadottak szerint. Állítsa be a
DATABRICKS_CLUSTER_ID
környezeti változót a munkaterületenkénti URL-címre is, példáulhttps://adb-1234567890123456.7.azuredatabricks.net
.
A fájl értékei .databrickscfg
mindig elsőbbséget élveznek a környezeti változókkal szemben.
Ha inicializálni szeretné a Databricks Connect-ügyfelet ezekkel a környezeti változókkal vagy értékekkel a .databrickscfg
fájlban, tekintse meg az alábbiak egyikét:
- Python esetén lásd a Python kapcsolati tulajdonságainak konfigurálását.
- A Scala esetében lásd a Scala kapcsolati tulajdonságainak konfigurálását.
VS Code
A Visual Studio Code Databricks-bővítményéhez tegye a következőket:
- A Konfiguráció panelen kattintson a Databricks konfigurálása elemre.
- A Parancskatalógus Databricks-gazdagép esetében adja meg például
https://adb-1234567890123456.7.azuredatabricks.net
a munkaterületenkénti URL-címet, majd nyomja le a billentyűtEnter
. - Válassza az OAuth (felhasználó a géphez) lehetőséget.
- A webböngészőben végezze el a képernyőn megjelenő utasításokat az Azure Databricks-fiók hitelesítésének befejezéséhez és a teljes API-hozzáférés engedélyezéséhez.
További részletekért lásd : OAuth U2M-hitelesítés a Databricks parancssori felületével.
Terraform
Feljegyzés
Az OAuth U2M-hitelesítés még nem támogatott.
Python
Fiókszintű és munkaterületszintű műveletek esetén a Python-kód futtatása előtt a Databricks parancssori felülettel kell futtatnia a következő parancsot. Ez a parancs arra utasítja a Databricks parancssori felületét, hogy hozza létre és gyorsítótárazza a szükséges OAuth-jogkivonatot a .databricks/token-cache.json
felhasználó otthoni mappájában a számítógépen:
A Databricks-fiókszintű műveletek konfigurálása
databricks auth login --host <account-console-url> --account-id <account-id>
Cserélje le a következő helyőrzőket:
- Cserélje le
<account-console-url>
az értékethttps://accounts.azuredatabricks.net
. (Ezt ne állítsa be az Azure Databricks-munkaterület URL-címének értékére.) - Cserélje le
<account-id>
az Azure Databricks-fiók értékére. Lásd: A fiókazonosító megkeresése.
Feljegyzés
Ha rendelkezik egy meglévő Azure Databricks-konfigurációs profillal, és account_id
a host
mezők már be vannak állítva, helyettesítheti --host <account-console-url> --account-id <account-id>
a következővel--profile <profile-name>
: .
A parancs futtatása után a auth login
rendszer kérni fogja, hogy mentse a fiók bejelentkezési URL-címét és fiókazonosítóját Azure Databricks-konfigurációs profilként. Amikor a rendszer kéri, adja meg egy új vagy meglévő profil nevét a .databrickscfg
fájlban. A fájlban .databrickscfg
szereplő azonos nevű meglévő profilok felülíródnak.
Ha a rendszer kéri, töltse ki a webböngésző képernyőn megjelenő utasításait a bejelentkezés befejezéséhez. Ezután használja az alábbi kódrészletekhez hasonló Python-kódot:
Alapértelmezett hitelesítés esetén:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
Közvetlen konfiguráció esetén (cserélje le a retrieve
helyőrzőket a saját implementációjára, hogy lekérje az értékeket a konzolról vagy más konfigurációs tárból, például az Azure KeyVaultból). Ebben az esetben az Azure Databricks-fiók konzoljának URL-címe a következő https://accounts.azuredatabricks.net
:
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
A Databricks-munkaterületszintű műveletek konfigurálása
databricks auth login --host <worskpace-url>
Cserélje le a helyőrzőt <workspace-url>
például a munkaterületenkénti Cél Azure Databricks URL-címrehttps://adb-1234567890123456.7.azuredatabricks.net
.
Feljegyzés
Ha rendelkezik egy meglévő Azure Databricks-konfigurációs profillal , és a host
mező már be van állítva, helyettesítheti --host <workspace-url>
a következővel --profile <profile-name>
: .
A parancs futtatása után a auth login
rendszer kérni fogja, hogy mentse a munkaterület URL-címét Azure Databricks-konfigurációs profilként. Amikor a rendszer kéri, adja meg egy új vagy meglévő profil nevét a .databrickscfg
fájlban. A fájlban .databrickscfg
szereplő azonos nevű meglévő profilok felülíródnak.
Ha a rendszer kéri, töltse ki a webböngésző képernyőn megjelenő utasításait a bejelentkezés befejezéséhez. Ezután használja az alábbi kódrészletekhez hasonló Python-kódot:
Alapértelmezett hitelesítés esetén:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
Közvetlen konfiguráció esetén (cserélje le a retrieve
helyőrzőket a saját implementációjára, hogy lekérje az értékeket a konzolról vagy más konfigurációs tárból, például az Azure KeyVaultból). Ebben az esetben a gazdagép az Azure Databricks munkaterületenkénti URL-címe, például https://adb-1234567890123456.7.azuredatabricks.net
:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...
A Pythont használó és a Databricks-ügyfél egységes hitelesítését implementáló Databricks-eszközökkel és SDK-kkal való hitelesítésről a következő témakörben talál további információt:
- A Databricks Connect-ügyfél beállítása Pythonhoz
- A Visual Studio Code Databricks-bővítményének hitelesítési beállítása
- A Pythonhoz készült Databricks SDK hitelesítése az Azure Databricks-fiókkal vagy -munkaterülettel
Java
Fiókszintű és munkaterületszintű műveletekhez a Databricks parancssori felülettel kell futtatnia a következő parancsot a Java-kód futtatása előtt. Ez a parancs utasítja a Databricks parancssori felületét, hogy hozza létre és gyorsítótárazza a szükséges OAuth-jogkivonatot a .databricks/token-cache.json
felhasználó otthoni mappájában a számítógépen:
A Databricks-fiókszintű műveletek konfigurálása
databricks auth login --host <account-console-url> --account-id <account-id>
Cserélje le a következő helyőrzőket:
- Cserélje le
<account-console-url>
az értékethttps://accounts.azuredatabricks.net
. (Ezt ne állítsa be az Azure Databricks-munkaterület URL-címének értékére.) - Cserélje le
<account-id>
az Azure Databricks-fiók értékére. Lásd: A fiókazonosító megkeresése.
Feljegyzés
Ha rendelkezik egy meglévő Azure Databricks-konfigurációs profillal, és account_id
a host
mezők már be vannak állítva, helyettesítheti --host <account-console-url> --account-id <account-id>
a következővel--profile <profile-name>
: .
A parancs futtatása után a auth login
rendszer kérni fogja, hogy mentse a fiók bejelentkezési URL-címét és fiókazonosítóját Azure Databricks-konfigurációs profilként. Amikor a rendszer kéri, adja meg egy új vagy meglévő profil nevét a .databrickscfg
fájlban. A fájlban .databrickscfg
szereplő azonos nevű meglévő profilok felülíródnak.
Ha a rendszer kéri, töltse ki a webböngésző képernyőn megjelenő utasításait a bejelentkezés befejezéséhez. Ezután az alábbi kódrészletekhez hasonló Java-kódot használjon:
Alapértelmezett hitelesítés esetén:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
Közvetlen konfiguráció esetén (cserélje le a retrieve
helyőrzőket a saját implementációjára, hogy lekérje az értékeket a konzolról vagy más konfigurációs tárból, például az Azure KeyVaultból). Ebben az esetben az Azure Databricks-fiók konzoljának URL-címe a következő https://accounts.azuredatabricks.net
:
import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveAccountConsoleUrl())
.setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...
A Databricks-munkaterületszintű műveletek konfigurálása
Munkaterületszintű műveletek esetén először a Databricks parancssori felületével futtassa a következő parancsot a Java-kód futtatása előtt. Ez a parancs arra utasítja a Databricks parancssori felületét, hogy hozza létre és gyorsítótárazza a szükséges OAuth-jogkivonatot a .databricks/token-cache.json
felhasználó otthoni mappájában a számítógépen:
databricks auth login --host <worskpace-url>
Cserélje le a helyőrzőt <workspace-url>
például a munkaterületenkénti Cél Azure Databricks URL-címrehttps://adb-1234567890123456.7.azuredatabricks.net
.
Feljegyzés
Ha rendelkezik egy meglévő Azure Databricks-konfigurációs profillal , és a host
mező már be van állítva, helyettesítheti --host <workspace-url>
a következővel --profile <profile-name>
: .
A parancs futtatása után a auth login
rendszer kérni fogja, hogy mentse a munkaterület URL-címét Azure Databricks-konfigurációs profilként. Amikor a rendszer kéri, adja meg egy új vagy meglévő profil nevét a .databrickscfg
fájlban. A fájlban .databrickscfg
szereplő azonos nevű meglévő profilok felülíródnak.
Ha a rendszer kéri, töltse ki a webböngésző képernyőn megjelenő utasításait a bejelentkezés befejezéséhez. Ezután az alábbi kódrészletekhez hasonló Java-kódot használjon:
Alapértelmezett hitelesítés esetén:
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
Közvetlen konfiguráció esetén (cserélje le a retrieve
helyőrzőket a saját implementációjára, hogy lekérje az értékeket a konzolról vagy más konfigurációs tárból, például az Azure KeyVaultból). Ebben az esetben a gazdagép az Azure Databricks munkaterületenkénti URL-címe, például https://adb-1234567890123456.7.azuredatabricks.net
:
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveWorkspaceUrl())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...
A Java-t használó és a Databricks-ügyfél egységes hitelesítését implementáló Databricks-eszközökkel és SDK-kkal való hitelesítésről a következő témakörben talál további információt:
- A Databricks Connect-ügyfél beállítása a Scalához (a Scalához készült Databricks Connect-ügyfél a mellékelt Java Databricks SDK-t használja hitelesítéshez)
- A Java Databricks SDK hitelesítése az Azure Databricks-fiókkal vagy -munkaterülettel
Go
Fiókszintű és munkaterületszintű műveletek esetén a Következő parancs futtatásához a Databricks parancssori felületével kell futtatnia a következő parancsot a Go-kód futtatása előtt. Ez a parancs arra utasítja a Databricks parancssori felületét, hogy hozza létre és gyorsítótárazza a szükséges OAuth-jogkivonatot a .databricks/token-cache.json
felhasználó otthoni mappájában a számítógépen:
A Databricks-fiókszintű műveletek konfigurálása
databricks auth login --host <account-login-url> --account-id <account-id>
Cserélje le a következő helyőrzőket:
- Cserélje le
<account-console-url>
az értékethttps://accounts.azuredatabricks.net
. (Ezt ne állítsa be az Azure Databricks-munkaterület URL-címének értékére.) - Cserélje le
<account-id>
az Azure Databricks-fiók értékére. Lásd: A fiókazonosító megkeresése.
Feljegyzés
Ha rendelkezik egy meglévő Azure Databricks-konfigurációs profillal, és account_id
a host
mezők már be vannak állítva, helyettesítheti --host <account-console-url> --account-id <account-id>
a következővel--profile <profile-name>
: .
A parancs futtatása után a auth login
rendszer kérni fogja, hogy mentse a fiók bejelentkezési URL-címét és fiókazonosítóját Azure Databricks-konfigurációs profilként. Amikor a rendszer kéri, adja meg egy új vagy meglévő profil nevét a .databrickscfg
fájlban. A fájlban .databrickscfg
szereplő azonos nevű meglévő profilok felülíródnak.
Ha a rendszer kéri, töltse ki a webböngésző képernyőn megjelenő utasításait a bejelentkezés befejezéséhez. Ezután használja a Következő kódrészletek egyikéhez hasonló Go-kódot:
Alapértelmezett hitelesítés esetén:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
Közvetlen konfiguráció esetén (cserélje le a retrieve
helyőrzőket a saját implementációjára, hogy lekérje az értékeket a konzolról vagy más konfigurációs tárból, például az Azure KeyVaultból). Ebben az esetben az Azure Databricks-fiók konzoljának URL-címe a következő https://accounts.azuredatabricks.net
:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
}))
// ...
A Databricks-munkaterületszintű műveletek konfigurálása
Munkaterületszintű műveletek esetén először a Databricks parancssori felületével futtassa a következő parancsot, mielőtt futtatja a Go-kódot. Ez a parancs arra utasítja a Databricks parancssori felületét, hogy hozza létre és gyorsítótárazza a szükséges OAuth-jogkivonatot a .databricks/token-cache.json
felhasználó otthoni mappájában a számítógépen:
databricks auth login --host <worskpace-url>
Cserélje le a helyőrzőt <workspace-url>
például a munkaterületenkénti Cél Azure Databricks URL-címrehttps://adb-1234567890123456.7.azuredatabricks.net
.
Feljegyzés
Ha rendelkezik egy meglévő Azure Databricks-konfigurációs profillal , és a host
mező már be van állítva, helyettesítheti --host <workspace-url>
a következővel --profile <profile-name>
: .
A parancs futtatása után a auth login
rendszer kérni fogja, hogy mentse a munkaterület URL-címét Azure Databricks-konfigurációs profilként. Amikor a rendszer kéri, adja meg egy új vagy meglévő profil nevét a .databrickscfg
fájlban. A fájlban .databrickscfg
szereplő azonos nevű meglévő profilok felülíródnak.
Ha a rendszer kéri, töltse ki a webböngésző képernyőn megjelenő utasításait a bejelentkezés befejezéséhez. Ezután használja a Következő kódrészletek egyikéhez hasonló Go-kódot:
Alapértelmezett hitelesítés esetén:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
Közvetlen konfiguráció esetén (cserélje le a retrieve
helyőrzőket a saját implementációjára, hogy lekérje az értékeket a konzolról vagy más konfigurációs tárból, például az Azure KeyVaultból). Ebben az esetben a gazdagép az Azure Databricks munkaterületenkénti URL-címe, például https://adb-1234567890123456.7.azuredatabricks.net
:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
}))
// ...
A Go-t használó Databricks-eszközökkel és SDK-kkal való hitelesítésről és a Databricks-ügyfél egységes hitelesítésének implementálásáról további információt a Databricks SDK for Go hitelesítése az Azure Databricks-fiókkal vagy -munkaterülettel című témakörben talál.
Hozzáférési jogkivonatok manuális létrehozása és használata az OAuth felhasználó–gép (U2M) hitelesítéshez
A Databricks-ügyfél egységes hitelesítési szabványát megvalósító Azure Databricks-eszközök és SDK-k automatikusan létrehoznak, frissítenek és használnak Azure Databricks OAuth hozzáférési jogkivonatokat az Ön nevében az OAuth U2M-hitelesítéshez szükséges módon.
Ha valamilyen okból manuálisan kell létrehoznia, frissítenie vagy használnia az Azure Databricks OAuth hozzáférési jogkivonatait az OAuth U2M-hitelesítéshez, kövesse az ebben a szakaszban található utasításokat.
1. lépés: OAuth-kód ellenőrző és kódkontraszt-pár létrehozása
Az OAuth U2M-hitelesítéshez tartozó hozzáférési jogkivonatok manuális létrehozásához és használatához először rendelkeznie kell egy OAuth-kód hitelesítője és egy OAuth-kód ellenőrzője , amely a kód-ellenőrzőből származik. A 2. lépésben szereplő kódkérdés használatával hozhat létre OAuth-engedélyezési kódot. Az OAuth hozzáférési jogkivonat létrehozásához a 3. lépésben a kódhitelesítőt és az engedélyezési kódot kell használnia.
Feljegyzés
Bár technikailag lehetséges kódolatlan egyszerű szöveges sztringek használata a kódhitelesítőhöz és a kódkritikushoz, a Databricks határozottan ösztönzi az OAuth szabvány követését a kód hitelesítőjének és a kód kihívásának létrehozásához.
Pontosabban a kód hitelesítőjének egy kriptográfiailag véletlenszerű sztringnek kell lennie, amely a halmazok A-Z
karaktereit használja, a-z
0-9
és az írásjelek -._~
(kötőjel, pont, aláhúzás és tilde) 43 és 128 karakter közötti hosszúságúak. A kód kihívásának a kód ellenőrzőjének SHA256 kivonatának Base64-URL-kódolású sztringjének kell lennie. További információ: Engedélyezési kérelem.
A következő Python-szkript futtatásával gyorsan létrehozhat egy egyedi kód-ellenőrzőt és egy kódkontraszt-párt. Bár ezt a létrehozott kód-ellenőrzőt és kódkritikus párt többször is újra felhasználhatja, a Databricks azt javasolja, hogy minden alkalommal hozzon létre egy új kód-ellenőrzőt és kódkritikus párt, amikor manuálisan hoz létre hozzáférési jogkivonatokat az OAuth U2M-hitelesítéshez.
import uuid, hashlib, base64
# Generate a UUID.
uuid1 = uuid.uuid4()
# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()
# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1
# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')
# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')
# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier: {code_verifier}")
print(f"code_challenge: {code_challenge}")
2. lépés: Engedélyezési kód létrehozása
OAuth-engedélyezési kóddal hozhat létre Egy Azure Databricks OAuth hozzáférési jogkivonatot. Az engedélyezési kód azonnal lejár, miután a használatával létrehoz egy Azure Databricks OAuth hozzáférési jogkivonatot. Az engedélyezési kód hatóköre attól függ, hogy milyen szinten hozza létre. Az engedélyezési kódot az Azure Databricks-fiók szintjén vagy a munkaterület szintjén hozhatja létre az alábbiak szerint:
- Ha fiókszintű és munkaterületszintű REST API-kat szeretne meghívni azon fiókokon és munkaterületeken, amelyekhez az Azure Databricks-felhasználói fiók rendelkezik hozzáféréssel, hozzon létre egy engedélyezési kódot a fiók szintjén.
- Ha csak egy olyan munkaterületen szeretné meghívni a REST API-kat, amelyhez a felhasználói fiókjának hozzáférése van, létrehozhat egy engedélyezési kódot a munkaterület szintjén csak az adott munkaterülethez.
Fiókszintű engedélyezési kód létrehozása
Fiókadminisztrátorként jelentkezzen be a fiókkonzolra.
Kattintson a felhasználónév melletti lefelé mutató nyílra a jobb felső sarokban.
Másolja ki a fiókazonosítót.
A webböngésző címsorában keresse meg a következő URL-címet. Az olvashatóság érdekében sortörések lettek hozzáadva. Az URL-cím nem tartalmazhatja ezeket a sortöréseket.
A következő URL-címben cserélje le a következőt:
- Cserélje le
<account-id>
a másolt fiókazonosítóra . - Cserélje le
<redirect-url>
például a helyi géprehttp://localhost:8020
irányuló átirányítási URL-címet. - Cserélje le
<state>
egy egyszerű szöveges sztringre, amellyel ellenőrizheti az engedélyezési kód integritását. - Cserélje le
<code-challenge>
az 1. lépésben létrehozott kódkérdésre.
https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize ?client_id=databricks-cli &redirect_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access
- Cserélje le
Amikor a rendszer kéri, kövesse a képernyőn megjelenő utasításokat az Azure Databricks-fiókba való bejelentkezéshez.
A webböngésző címsorában másolja ki az engedélyezési kódot. Az engedélyezési kód az URL-címben
code=
&
szereplő karakterek teljes sztringje. Az alábbi URL-cím engedélyezési kódja például a következődcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
Ennek az engedélyezési kódnak az integritását úgy kell ellenőriznie, hogy a
<state>
válasz URL-címében szereplő érték megegyezik-e astate
kérés URL-címében megadott értékkel. Ha az értékek eltérnek, ne használja ezt az engedélyezési kódot, mert az veszélybe kerülhet.Ugrás előre a fiókszintű hozzáférési jogkivonat létrehozásához.
Munkaterületszintű engedélyezési kód létrehozása
A webböngésző címsorában keresse meg a következő URL-címet. Az olvashatóság érdekében sortörések lettek hozzáadva. Az URL-cím nem tartalmazhatja ezeket a sortöréseket.
A következő URL-címben cserélje le a következőt:
- Cserélje le
<databricks-instance>
például az Azure Databricks-munkaterület példányának nevétadb-1234567890123456.7.azuredatabricks.net
. - Cserélje le
<redirect-url>
például a helyi géprehttp://localhost:8020
irányuló átirányítási URL-címet. - Cserélje le
<state>
egy egyszerű szöveges sztringre, amellyel ellenőrizheti az engedélyezési kód integritását. - Cserélje le
<code-challenge>
az 1. lépésben létrehozott kódkérdésre.
https://<databricks-instance>/oidc/v1/authorize ?client_id=databricks-cli &redirect_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access
- Cserélje le
Amikor a rendszer kéri, kövesse a képernyőn megjelenő utasításokat az Azure Databricks-munkaterületre való bejelentkezéshez.
A webböngésző címsorában másolja ki az engedélyezési kódot. Az engedélyezési kód az URL-címben
code=
&
szereplő karakterek teljes sztringje. Az alábbi URL-cím engedélyezési kódja például a következődcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
Ennek az engedélyezési kódnak az integritását úgy kell ellenőriznie, hogy a
<state>
válasz URL-címében szereplő érték megegyezik-e astate
kérés URL-címében megadott értékkel. Ha az értékek eltérnek, ne használja ezt az engedélyezési kódot, mert az veszélybe kerülhet.
3. lépés: OAuth hozzáférési jogkivonat létrehozása az engedélyezési kód használatával
Az előző lépés OAuth engedélyezési kódját használva hozzon létre egy Azure Databricks OAuth hozzáférési jogkivonatot az alábbiak szerint:
- Ha fiókszintű és munkaterületszintű REST API-kat szeretne meghívni azon fiókokon és munkaterületeken, amelyekhez az Azure Databricks-felhasználói fiók rendelkezik hozzáféréssel, a fiókszintű engedélyezési kóddal hozzon létre hozzáférési jogkivonatot a fiók szintjén.
- Ha csak egy olyan munkaterületen szeretné meghívni a REST API-kat, amelyhez a felhasználói fiókja rendelkezik hozzáféréssel, a munkaterületszintű engedélyezési kóddal létrehozhat egy hozzáférési jogkivonatot a munkaterület szintjén csak az adott munkaterülethez.
Fiókszintű hozzáférési jogkivonat létrehozása
A fiókszintű OAuth hozzáférési jogkivonat létrehozásához használjon egy ügyfelet, például
curl
a fiókszintű engedélyezési kóddal együtt. A következőcurl
hívásban cserélje le a következő helyőrzőket:- Cserélje le
<account-id>
a 2. lépésben szereplő fiókazonosítóra . - Cserélje le
<redirect-url>
a 2. lépés átirányítási URL-címére. - Cserélje le
<code-verifier>
az 1. lépésben létrehozott kód hitelesítőre. - Cserélje le
<authorization-code>
a 2. lépésben létrehozott fiókszintű engedélyezési kódra.
curl --request POST \ https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \ --data "client_id=databricks-cli" \ --data "grant_type=authorization_code" \ --data "scope=all-apis offline_access" \ --data "redirect_uri=<redirect-url>" \ --data "code_verifier=<code-verifier>" \ --data "code=<authorization-code>"
- Cserélje le
A válaszban másolja ki a fiókszintű OAuth hozzáférési jogkivonatot. A hozzáférési jogkivonat az objektum teljes karaktersorozata
access_token
. A következő válaszban például a hozzáférési jogkivonat a következőeyJr...Dkag
:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }
Ez a hozzáférési jogkivonat egy óra múlva lejár. Új hozzáférési jogkivonat létrehozásához ismételje meg ezt az eljárást az 1. lépésben.
Ugorjon tovább a 4. lépésre : A Databricks REST API meghívása.
Munkaterületszintű hozzáférési jogkivonat létrehozása
Használjon egy ügyfelet, például
curl
a munkaterületszintű engedélyezési kóddal együtt a munkaterületszintű OAuth hozzáférési jogkivonat létrehozásához. A következőcurl
hívásban cserélje le a következő helyőrzőket:- Cserélje le
<databricks-instance>
például az Azure Databricks-munkaterület példányának nevétadb-1234567890123456.7.azuredatabricks.net
. - Cserélje le
<redirect-url>
a 2. lépés átirányítási URL-címére. - Cserélje le
<code-verifier>
az 1. lépésben létrehozott kód hitelesítőre. - Cserélje le
<authorization-code>
a 2. lépésben létrehozott munkaterületszintű engedélyezési kódra.
curl --request POST \ https://<databricks-instance>/oidc/v1/token \ --data "client_id=databricks-cli" \ --data "grant_type=authorization_code" \ --data "scope=all-apis offline_access" \ --data "redirect_uri=<redirect-url>" \ --data "code_verifier=<code-verifier>" \ --data "code=<authorization-code>"
- Cserélje le
A válaszban másolja ki a munkaterületszintű OAuth hozzáférési jogkivonatot. A hozzáférési jogkivonat az objektum teljes karaktersorozata
access_token
. A következő válaszban például a hozzáférési jogkivonat a következőeyJr...Dkag
:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }
Ez a hozzáférési jogkivonat egy óra múlva lejár. Új hozzáférési jogkivonat létrehozásához ismételje meg ezt az eljárást az 1. lépésben.
4. lépés: Databricks REST API meghívása
A fiókszintű vagy munkaterületszintű OAuth hozzáférési jogkivonattal hitelesítheti az Azure Databricks fiókszintű REST API-jait és a munkaterületszintű REST API-kat a hozzáférési jogkivonat hatókörétől függően. Az Azure Databricks felhasználói fiókjának fiókadminisztrátornak kell lennie a fiókszintű REST API-k meghívásához.
Példa fiókszintű REST API-kérésre
Ez a példa curl
a hitelesítéssel Bearer
együtt lekéri a fiókhoz társított összes munkaterület listáját.
- Cserélje le
<oauth-access-token>
a fiókszintű OAuth hozzáférési jogkivonatra. - Cserélje le
<account-id>
a fiókazonosítót.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces"
Példa munkaterületszintű REST API-kérésre
Ez a példa a hitelesítéssel Bearer
együtt a megadott munkaterület összes elérhető fürtjének listáját használjacurl
.
- Cserélje le
<oauth-access-token>
a fiókszintű vagy munkaterületszintű OAuth hozzáférési jogkivonatra. - Cserélje le
<databricks-instance>
például az Azure Databricks-munkaterület példányának nevétadb-1234567890123456.7.azuredatabricks.net
.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"