Microsoft Entra-tokenek beszerzése felhasználók számára az MSAL használatával
Fontos
Ez a cikk bemutatja, hogyan hozhat létre manuálisan Microsoft Entra-azonosító jogkivonatokat a Microsoft Authentication Library (MSAL) használatával.
A Databricks nem javasolja, hogy manuálisan hozzon létre Microsoft Entra-azonosító jogkivonatokat az Azure Databricks-felhasználók számára. Ennek az az oka, hogy minden Microsoft Entra-azonosító jogkivonat rövid élettartamú, általában egy órán belül lejár. Ezt követően manuálisan kell létrehoznia egy helyettesítő Microsoft Entra-azonosító jogkivonatot. Ehelyett használja az egyik részt vevő eszközt vagy SDK-t, amely a Databricks-ügyfél egységes hitelesítési szabványát implementálja. Ezek az eszközök és SDK-k automatikusan létrehoznak és lecserélnek lejárt Microsoft Entra-azonosítókat, az Azure CLI-hitelesítéstfelhasználva.
Az Azure Databricks által felügyelt szolgáltatásnevek kezelése közvetlenül az Azure Databricksben van. A Microsoft Entra ID által felügyelt szolgáltatásnevek kezelése a Microsoft Entra-azonosítóban van, amelyhez további engedélyek szükségesek. A Databricks azt javasolja, hogy a legtöbb használati esetben az Azure Databricks által felügyelt szolgáltatásneveket használja. A Databricks azonban a Microsoft Entra ID által felügyelt szolgáltatásnevek használatát javasolja olyan esetekben, amikor egyidejűleg hitelesítenie kell az Azure Databricks-et és más Azure-erőforrásokat.
Ha a Microsoft Entra ID által felügyelt szolgáltatásnév helyett Azure Databricks által felügyelt szolgáltatásnevet szeretne létrehozni, olvassa el a Szolgáltatásnevek kezelése című témakört.
Az Microsoft Authentication Library (MSAL) használatával programozott módon szerezheti be a Microsoft Entra ID hozzáférési jogkivonatokat. Ez a cikk az MSAL-kódtár alapszintű használatát és a szükséges felhasználói bemeneteket ismerteti Python-példákkal.
Feljegyzés
Az MSAL a Microsoft Entra ID Authentication Library (ADAL) helyére lép. Az ADAL összes Microsoft-támogatása és fejlesztése, beleértve a biztonsági javításokat is, 2022. június 30-án véget ért. Lásd: Alkalmazások migrálása a Microsoft Authentication Librarybe (MSAL).
Tipp.
Előfordulhat, hogy az MSAL helyett az Azure CLI használatával szeretné lekérni a Microsoft Entra ID-jogkivonatokat a felhasználók számára, mivel az Azure CLI használata kevesebb lépést igényel. Lásd: Microsoft Entra-azonosító jogkivonatok lekérése felhasználók számára az Azure CLIhasználatával.
A Microsoft Entra ID-ban szolgáltatás-alanyt is definiálhat, és Microsoft Entra ID hozzáférési jogkivonatot kérhet a szolgáltatás-alanyhoz a felhasználó helyett. Lásd: Microsoft Entra ID-jogkivonatok lekérése szolgáltatási főszereplők részére.
Alkalmazás konfigurálása az Azure Portalon
Regisztráljon egy alkalmazást a Microsoft Entra ID végpontján az Azure Portalon. Másik lehetőségként használhat egy már regisztrált Microsoft Entra ID-alkalmazást is. További információ: Alkalmazás regisztrálása az Azure Portal használatával.
Jelentkezzen be az Azure Portalra.
Feljegyzés
A használni kívánt portál attól függően eltérő, hogy a Microsoft Entra ID-alkalmazása az Azure nyilvános felhőben vagy egy nemzeti vagy szuverén felhőben fut-e. További információ: Nemzeti felhők.
Ha több bérlőhöz, előfizetéshez vagy címtárhoz is hozzáféréssel rendelkezik, a felső menüBen kattintson a Címtárak + előfizetések (szűrővel rendelkező címtár) ikonra, és váltson arra a könyvtárra, amelyben regisztrálni szeretné az alkalmazást.
Keresse meg és válassza ki Microsoft Entra-azonosítót.
Az Kezelésterületen válassza a Alkalmazásregisztrációk > Új regisztrációopciót.
A Név mezőbe írja be az alkalmazás nevét.
A Támogatott fióktípusok szakaszban válassza Csak ebben a szervezeti címtárban lévő fiókok (egybérlős megoldás)lehetőséget.
A Átirányítási URI (nem kötelező) szakaszban a Platformkiválasztása alatt válassza a Nyilvános ügyfél/natív alkalmazás (mobil & asztali) opciót, és adjon meg egy átirányítási URI-t. Az alábbi példában az átirányítási URI értéke .
http://localhost
Kattintson a Regisztrálás parancsra.
Az alkalmazáslap Áttekintés lapjának Essentials szakaszában másolja a következő értékeket:
- Alkalmazás (ügyfél) azonosítója
- Címtár (bérlő) azonosítója
- Az átirányítási URI-kban a nyilvános ügyfél átirányítja az eljárás korábbi szakaszában megadott URI-t.
Adja hozzá az AzureDatabrickset a regisztrált alkalmazás szükséges engedélyeihez. A lépés végrehajtásához rendszergazdai felhasználónak kell lennie. Ha a művelet végrehajtása során engedélyekkel kapcsolatos problémába ütközik, kérjen segítséget a rendszergazdától.
Az alkalmazáslap Áttekintés oldalán, a Kezdés lapon kattintson a API-engedélyek megtekintésegombra.
Kattintson az Engedély hozzáadása gombra.
A API-engedélyek kérése panelen kattints a Szervezetem által használt API-k fülre, keresd meg az AzureDatabricks-et, majd válaszd ki.
Engedélyezze a user_impersonation jelölőnégyzetet, majd kattintson az Engedélyek hozzáadása gombra.
Kattintson Rendszergazdai hozzájárulás megadása ###, majd Igen. A művelet végrehajtásához rendszergazdai felhasználónak kell lennie, vagy jogosultsággal kell rendelkeznie ahhoz, hogy hozzájáruljon az alkalmazáshoz. Ha nem látja a Rendszergazdai hozzájárulás megadása a ###számára lehetőséget, vagy ha kihagyja ezt a műveletet, a Engedélyezési kód folyamatot (interaktív) kell használnia, amikor először használja az alkalmazást a hozzájárulás beszerzéséhez. Ezután használhatja a Felhasználónév-jelszó folyamat (programozott) metódust.
További felhasználókat is hozzáadhat az alkalmazáshoz. További információ: Felhasználói fiók hozzárendelése egy vállalati alkalmazáshoz az Azure Portal utasításaihoz, vagy felhasználók és csoportok hozzárendelése egy alkalmazáshoz a Microsoft Entra ID -ban (korábban Azure Active Directory) a PowerShell-utasításokhoz. A felhasználó nem fog tudni jogkivonatot beszerezni a szükséges engedélyek nélkül.
Microsoft Entra-azonosító hozzáférési jogkivonat beszerzése
Microsoft Entra-azonosító hozzáférési jogkivonat beszerzéséhez használhatja a következőt:
A Microsoft Entra-azonosító hozzáférési jogkivonatának lekéréséhez az engedélyezési kódfolyamatot (interaktív) kell használnia, ha:
- Két tényezőhitelesítés engedélyezve van a Microsoft Entra-azonosítóban.
- Az összevont hitelesítés engedélyezve van a Microsoft Entra-azonosítóban.
- Az alkalmazásregisztráció során nem kap hozzájárulást a regisztrált alkalmazáshoz.
Ha rendelkezik a felhasználónévvel és jelszóval való bejelentkezésre vonatkozó jogosultsággal, a felhasználónév-jelszó folyamat (programozott) használatával beszerezhet egy Microsoft Entra-azonosító hozzáférési jogkivonatot.
Engedélyezési kódfolyamat (interaktív)
A Microsoft Entra-azonosító hozzáférési jogkivonatának beszerzésének két lépése van az engedélyezési kód folyamatával.
- Kérjen egy engedélyezési kódot, amely elindít egy böngészőablakot, és azure-beli felhasználói bejelentkezést kér. Az engedélyezési kód a felhasználó sikeres bejelentkezése után lesz visszaadva.
- A Microsoft Entra ID hozzáférési jogkivonatának beszerzéséhez használja az engedélyezési kódot. A használt módszertől függően a frissítési jogkivonat egyszerre is visszaadható, és a Microsoft Entra ID hozzáférési jogkivonat frissítésére is használható.
A két lépés végrehajtásának egyik módszere a webböngésző és a curl használata. Ehhez a webböngészőben lekérheti az engedélyezési kódot, majd az engedélyezési kódot és a curl
-t használva megszerezheti a Microsoft Entra ID hozzáférési jogkivonatot. Ez a módszer nem biztosít frissítési tokent.
Egy másik megközelítés az MSAL Python-kódtár használata. Ehhez egyetlen szkriptet kell futtatnia, amely a webböngésző használatával lekéri az engedélyezési kódot, majd az engedélyezési kóddal lekér egy hozzáférési és frissítési jogkivonatot is.
Mindkét módszer feltételezi, hogy már bejelentkezett az Azure-ba. Ha nincs bejelentkezve, a webböngésző erre kéri.
Microsoft Entra ID-jogkivonatok lekérése webböngésző és curl használatával
Gyűjtse be a következő adatokat:
Paraméter Leírás Bérlőazonosító A Microsoft Entra ID-ban regisztrált kapcsolódó alkalmazás címtár- (bérlői) azonosítója az Alkalmazás konfigurálása az Azure Portalon. Ügyfél azonosítója A Microsoft Entra ID-ban regisztrált kapcsolódó alkalmazás (ügyfél) azonosítója . Átirányítási URI A Microsoft Entra-azonosítóban regisztrált kapcsolódó alkalmazás megfelelő átirányítási URI-jait (például http://localhost
). A hitelesítési válaszokat a rendszer elküldi ennek az URI-nak az engedélyezési kóddal együtt.Szerezze meg az engedélyezési kódot úgy, hogy a webböngészőjével a következő URL-címre navigál. A következő URL-példában szereplő mezőket ennek megfelelően cserélje le. Vegye figyelembe, hogy az URL-címet egyetlen sorként kell elküldeni; az olvashatóság érdekében sortörések lettek hozzáadva az alábbi URL-címhez. További információ: Engedélyezési kód kérése.
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?client_id=<client-id> &response_type=code &redirect_uri=<redirect-uri> &response_mode=query &scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default &state=<state>
Csere:
-
<tenant-id>
a regisztrált alkalmazás bérlőazonosítójával. -
<client-id>
a regisztrált alkalmazás ügyfél-azonosítójával. -
<redirect-uri>
a regisztrált alkalmazás átirányítási URI-jával. Ennek az URI-nak URL-kódolású (százalékban kódolt) formátumban kell lennie. Például:http://localhost
http%3A%2F%2Flocalhost
. -
<state>
véletlenszerű számmal vagy valamilyen kódolt információval. Az információcsere integritásának ellenőrzéséhez ennek az állapotértéknek meg kell egyeznie a visszaadott URL-címben található értékkel az eljárás későbbi részében.
Ne módosítsa a paraméter értékét
scope
. Ez az Azure Databricks programozott azonosítóját (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
) és az alapértelmezett hatókört (/.default
URL-kódoltként%2f.default
) jelöli.Példa:
https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/v2.0/authorize?client_id=12a34b56-789c-0d12-e3fa-b456789c0123 &response_type=code &redirect_uri=http%3A%2F%2Flocalhost &response_mode=query &scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default &state=12345
-
Illessze be az URL-címet egyetlen sorként a webböngészőbe, és ha a rendszer kéri, jelentkezzen be az Azure-ba.
Az engedélyezési kód a
code
visszaadott URL-cím mezőjében található. Mentse az engedélyezési kódot biztonságos helyre. Győződjön meg arról, hogy astate
mező értéke megegyezik az eljárás korábbi részében megadott értékkel.A teljes visszaadott URL-cím így fog kinézni (a rövidítés érdekében
code
a teljes0.ASkAIj...RxgFhSAA
mező értéke itt rövidül):http://localhost/?code=0.ASkAIj...RxgFhSAA&state=12345&session_state=c44574d5-38ba-4f93-b2a3-a830db8e8cdf
A Microsoft Entra ID hozzáférési token megszerzéséhez használja az engedélyezési kódot a
curl
mellett.curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token \ -d 'client_id=<client-id>' \ -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \ -d 'code=<authorization-code>' \ -d 'redirect_uri=<redirect-uri>' \ -d 'grant_type=authorization_code' \ -d 'state=<state>'
Csere:
-
<tenant-id>
a regisztrált alkalmazás bérlőazonosítójával. -
<client-id>
a regisztrált alkalmazás ügyfél-azonosítójával. -
<authorization-code>
az engedélyezési kóddal. -
<redirect-uri>
a regisztrált alkalmazás átirányítási URI-jával. Ennek az URI-nak URL-kódolású (százalékalapú) formátumban kell lennie. Például:http://localhost
http%3A%2F%2Flocalhost
. -
<state>
véletlenszerű számmal vagy valamilyen kódolt információval. Az információcsere integritásának ellenőrzéséhez ennek az állapotértéknek meg kell egyeznie azzal, amelyik az eljárás későbbi részében a válasz hasznos adatai között szerepel.
Ne módosítsa a paraméter értékét
scope
. Ez az Azure Databricks programozott azonosítóját (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
) és az alapértelmezett hatókört (/.default
URL-kódoltként%2f.default
) jelöli.Példa:
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/v2.0/token \ -d 'client_id=12a34b56-789c-0d12-e3fa-b456789c0123' \ -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \ -d 'code=0.ASkAIj...RxgFhSAA' \ -d 'redirect_uri=http%3A%2F%2Flocalhost' \ -d 'grant_type=authorization_code' \ -d 'state=12345'
A Microsoft Entra ID-jogkivonat a
access_token
hívás eredményében található értékben van. Ellenőrizze, hogy azstate
érték megegyezik-e az eljárás korábbi részében megadott értékkel.-
Microsoft Entra ID-jogkivonatok lekérése az MSAL Python-kódtár használatával
Gyűjtse be a következő adatokat:
Paraméter Leírás Bérlőazonosító A Microsoft Entra ID-ban regisztrált kapcsolódó alkalmazás címtár- (bérlői) azonosítója az Alkalmazás konfigurálása az Azure Portalon. Ügyfél azonosítója A Microsoft Entra ID-ban regisztrált kapcsolódó alkalmazás (ügyfél) azonosítója . Feltételezhetően be van állítva a
http://localhost
mint a átirányítási URI a Microsoft Entra ID rendszerében regisztrált kapcsolódó alkalmazás számára.Telepítse az MSAL Python SDK-t a helyi gépen a futtatással
pip install msal
.Mentse a következő kódot a helyi géphez hasonlóan
get-tokens.py
.# Given the client ID and tenant ID for an app registered in Azure, # provide a <ms-entra-id> access token and a refresh token. # If the caller is not already signed in to Azure, the caller's # web browser will prompt the caller to sign in first. # pip install msal from msal import PublicClientApplication import sys # You can hard-code the registered app's client ID and tenant ID here, # or you can provide them as command-line arguments to this script. client_id = '<client-id>' tenant_id = '<tenant-id>' # Do not modify this variable. It represents the programmatic ID for # Azure Databricks along with the default scope of '/.default'. scopes = [ '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' ] # Check for too few or too many command-line arguments. if (len(sys.argv) > 1) and (len(sys.argv) != 3): print("Usage: get-tokens.py <client ID> <tenant ID>") exit(1) # If the registered app's client ID and tenant ID are provided as # command-line variables, set them here. if len(sys.argv) > 1: client_id = sys.argv[1] tenant_id = sys.argv[2] app = PublicClientApplication( client_id = client_id, authority = "https://login.microsoftonline.com/" + tenant_id ) acquire_tokens_result = app.acquire_token_interactive( scopes = scopes ) if 'error' in acquire_tokens_result: print("Error: " + acquire_tokens_result['error']) print("Description: " + acquire_tokens_result['error_description']) else: print("Access token:\n") print(acquire_tokens_result['access_token']) print("\nRefresh token:\n") print(acquire_tokens_result['refresh_token'])
Hajtsa végre a megfelelő műveletet:
- Az előző kódban cserélje le
<client-id>
a regisztrált alkalmazás ügyfélazonosítójára és<tenant-id>
a regisztrált alkalmazás bérlőazonosítójára, majd futtassa példáulpython get-tokens.py
a szkriptet. - Adja meg például a regisztrált alkalmazás ügyfél-azonosítóját és a regisztrált alkalmazás bérlőazonosítóját a szkript futtatásakor.
python get-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de
- Az előző kódban cserélje le
Ha a webböngésző kéri, jelentkezzen be az Azure-ba.
A Microsoft Entra ID hozzáférési és frissítési jogkivonatai a kimenetben lesznek kinyomtatva.
Felhasználónév-jelszó folyamat (programozott)
Ha rendelkezik a felhasználónévvel és jelszóval való bejelentkezéshez szükséges jogosultsággal, gyűjtse össze a következő információkat:
Paraméter Leírás Bérlőazonosító A Microsoft Entra ID-ban regisztrált kapcsolódó alkalmazás címtár- (bérlői) azonosítója az Alkalmazás konfigurálása az Azure Portalon. Ügyfél azonosítója A Microsoft Entra ID-ban regisztrált igazított alkalmazás (ügyfél) azonosítója . Felhasználónév és jelszó A bérlő felhasználónevét (azaz az Azure Portalra való bejelentkezéskor megadott e-mail-címet) és a felhasználó jelszavát. Feltételezhetően be van állítva a
http://localhost
mint a átirányítási URI a Microsoft Entra ID rendszerében regisztrált kapcsolódó alkalmazás számára.Telepítse az MSAL Python SDK-t a helyi gépen a futtatással
pip install msal
.Mentse a következő kódot a helyi géphez hasonlóan
get-tokens-for-user.py
.# Given the client ID and tenant ID for an app registered in Azure, # along with an Azure username and password, # provide a <ms-entra-id> access token and a refresh token. # If the caller is not already signed in to Azure, the caller's # web browser will prompt the caller to sign in first. # pip install msal from msal import PublicClientApplication import sys # You can hard-code the registered app's client ID and tenant ID here, # along with the Azure username and password, # or you can provide them as command-line arguments to this script. client_id = '<client-id>' tenant_id = '<tenant-id>' username = '<username>' password = '<password>' # Do not modify this variable. It represents the programmatic ID for # Azure Databricks along with the default scope of '/.default'. scope = [ '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' ] # Check for too few or too many command-line arguments. if (len(sys.argv) > 1) and (len(sys.argv) != 5): print("Usage: get-tokens-for-user.py <client ID> <tenant ID> <username> <password>") exit(1) # If the registered app's client ID and tenant ID along with the # Azure username and password are provided as command-line variables, # set them here. if len(sys.argv) > 1: client_id = sys.argv[1] tenant_id = sys.argv[2] username = sys.argv[3] password = sys.argv[4] app = PublicClientApplication( client_id = client_id, authority = "https://login.microsoftonline.com/" + tenant_id ) acquire_tokens_result = app.acquire_token_by_username_password( username = username, password = password, scopes = scope ) if 'error' in acquire_tokens_result: print("Error: " + acquire_tokens_result['error']) print("Description: " + acquire_tokens_result['error_description']) else: print("Access token:\n") print(acquire_tokens_result['access_token']) print("\nRefresh token:\n") print(acquire_tokens_result['refresh_token'])
Hajtsa végre a megfelelő műveletet:
- Az előző kódban cserélje le
<client-id>
a regisztrált alkalmazás ügyfél-azonosítójára,<tenant-id>
a regisztrált alkalmazás bérlőazonosítójára,<username>
a felhasználónévre és<password>
a jelszóra, majd futtassa példáulpython get-tokens-for-user.py
a szkriptet. - Adja meg például a regisztrált alkalmazás ügyfél-azonosítóját, a regisztrált alkalmazás bérlőazonosítóját, a felhasználónevet és a jelszót a szkript
python get-tokens-for-user.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de someone@example.com "MyPa55w&rd!"
futtatásakor. Ha egy parancssori argumentum speciális karaktereket tartalmaz, akkor idézőjelekkel kell körülvenni.
- Az előző kódban cserélje le
A Microsoft Entra id hozzáférési és frissítési jogkivonatai a terminálra lesznek nyomtatva.
Microsoft Entra ID hozzáférési jogkivonat használata a Databricks REST API eléréséhez
Ez a szakasz azt ismerteti, hogyan hívhatja meg a Databricks REST API-t Egy Microsoft Entra ID hozzáférési jogkivonat használatával. Az alábbi példákban cserélje le <access-token>
a Microsoft Entra-azonosító hozzáférési jogkivonatát és <databricks-instance>
az Azure Databricks-üzemelő példány munkaterületenkénti URL-címét .
Python-példa
Ez a példa bemutatja, hogyan listázhatja a fürtöket egy Azure Databricks-munkaterületen.
import requests
import json
databricks_instance = '<databricks-instance>'
api_version = '/api/2.0'
api_command = '/clusters/list'
url = f"https://{databricks_instance}{api_version}{api_command}"
access_token = '<access-token>'
response = requests.get(
url = url,
headers = { 'Authorization': "Bearer " + access_token}
)
print(json.dumps(json.loads(response.text), indent = 2))
Feljegyzés
Ha Ön nem rendszergazdai felhasználó, és rendszergazdai felhasználóként szeretne bejelentkezni, a fejléc mellett meg kell adnia a X-Databricks-Azure-Workspace-Resource-Id
'Authorization' : 'Bearer '
fejlécet, és közreműködői vagy tulajdonosi szerepkörrel kell rendelkeznie az Azure-beli munkaterület-erőforráson. Az értéket az X-Databricks-Azure-Workspace-Resource-Id
alábbiak szerint hozhatja létre:
# ...
subscription = '<azure-subscription-id>'
resource_group = '<azure-resource-group-name>'
workspace = '<databricks-workspace-name-in-azure>'
db_resource_id = '/subscriptions/%s/resourcegroups/%s/providers/microsoft.databricks/workspaces/%s' % (
subscription,
resource_group,
workspace
)
# ...
headers = {
'Authorization': "Bearer " + access_token,
'X-Databricks-Azure-Workspace-Resource-Id': db_resource_id
}
# ...
Az előfizetés, az erőforrás és a munkaterület adatainak lekéréséről az Azure-ban Erőforrások megnyitásacímű témakörben olvashat. A célerőforrás megnyitásához kereshet az Azure Databricks szolgáltatástípusban, valamint az Azure-ban minden olyan információt, amelyet a cél Azure Databricks-munkaterületről tud.
curl
példa
curl -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <access-token>' \
https://<databricks-instance>/api/2.0/clusters/list
Microsoft Entra-azonosító hozzáférési jogkivonatának frissítése
Ha a Microsoft Entra ID hozzáférési jogkivonatával együtt egy frissítési jogkivonatot is kap, a frissítési jogkivonattal új jogkivonatot szerezhet be. Alapértelmezés szerint a Microsoft Entra ID hozzáférési jogkivonatok élettartama véletlenszerű, 60 és 90 perc közötti időtartam (átlagosan 75 perc). A Microsoft Entra ID hozzáférési jogkivonatok élettartamát a Microsoft Entra ID (korábbi nevén Azure Active Directory) konfigurálható jogkivonatok élettartamának konfigurálható módszereivel konfigurálhatja.
Az alábbi példa bemutatja, hogyan használhatja az MSAL Python-kódtárat egy frissítési jogkivonattal együtt egy új jogkivonat beszerzéséhez.
Mentse a következő kódot a helyi géphez hasonlóan
refresh-tokens.py
.# Given the client ID and tenant ID for an app registered in Azure, # along with a refresh token, provide a new <ms-entra-id> access token and # refresh token. # If the caller is not already signed in to Azure, the caller's # web browser will prompt the caller to sign in first. # pip install msal from msal import PublicClientApplication import sys # You can hard-code the registered app's client ID, tenant ID, # and refresh token here, or you can provide them as command-line # arguments to this script. client_id = '<client-id>' tenant_id = '<refresh-token' refresh_token = '<refresh-token>' # Do not modify this variable. It represents the programmatic ID for # Azure Databricks along with the default scope of '.default'. scope = [ '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' ] # Check for too few or too many command-line arguments. if (len(sys.argv) > 1) and (len(sys.argv) != 4): print("Usage: refresh-tokens.py <client ID> <tenant ID> <refresh token>") exit(1) # If the registered app's client ID, tenant ID, and refresh token are # provided as command-line variables, set them here. if len(sys.argv) > 1: client_id = sys.argv[1] tenant_id = sys.argv[2] refresh_token = sys.argv[3] app = PublicClientApplication( client_id = client_id, authority = "https://login.microsoftonline.com/" + tenant_id ) acquire_tokens_result = app.acquire_token_by_refresh_token( refresh_token = refresh_token, scopes = scope ) if 'error' in acquire_tokens_result: print("Error: " + acquire_tokens_result['error']) print("Description: " + acquire_tokens_result['error_description']) else: print("\nNew access token:\n") print(acquire_tokens_result['access_token']) print("\nNew refresh token:\n") print(acquire_tokens_result['refresh_token'])
Hajtsa végre a megfelelő műveletet:
- Az előző kódban cserélje le a
<client-id>
a regisztrált alkalmazás ügyfélazonosítójára,<tenant-id>
a regisztrált alkalmazás bérlőazonosítójára, és<refresh-token>
a frissítési jogkivonatra, majd futtassa a szkriptet, példáulpython get-tokens-for-user.py
. - Adja meg a regisztrált alkalmazás ügyfél-azonosítóját, a regisztrált alkalmazás bérlőazonosítóját és a frissítési jogkivonatot a szkript futtatásakor, például
python refresh-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de "0.ASkAIj...huE84ALg"
. Ha egy parancssori argumentum speciális karaktereket tartalmaz, akkor idézőjelek között kell körülvenni.
- Az előző kódban cserélje le a
Az új Microsoft Entra id hozzáférési és frissítési jogkivonatok a terminálra lesznek nyomtatva.