Získání tokenů Microsoft Entra ID (dříve Azure Active Directory) pro uživatele pomocí KNIHOVNY MSAL

Důležité

Tento článek popisuje, jak ručně vytvořit tokeny Microsoft Entra ID (dříve Azure Active Directory) pomocí knihovny MICROSOFT Authentication Library (MSAL).

Databricks nedoporučuje vytvářet tokeny Microsoft Entra ID (dříve Azure Active Directory) pro uživatele Azure Databricks ručně. Důvodem je to, že každý token Microsoft Entra ID je krátkodobý, obvykle vyprší do jedné hodiny. Po této době musíte ručně vygenerovat náhradní token Microsoft Entra ID. Místo toho použijte jeden z zúčastněných nástrojů nebo sad SDK, které implementují jednotný ověřovací standard klienta Databricks. Tyto nástroje a sady SDK automaticky generují a nahrazují tokeny Microsoft Entra ID pro vás a využívají ověřování Azure CLI.

Spravované instanční objekty Azure Databricks se spravují přímo v Azure Databricks. Spravované instanční objekty Microsoft Entra ID se spravují v MICROSOFT Entra ID, které vyžadují další oprávnění. Databricks doporučuje, abyste ve většině případů používali spravované instanční objekty Azure Databricks. Databricks však doporučuje používat instanční objekty spravované id Microsoft Entra v případech, kdy je nutné provést ověření pomocí Azure Databricks a dalších prostředků Azure najednou.

Pokud chcete vytvořit spravovaný instanční objekt Azure Databricks místo instančního objektu spravovaného id Microsoft Entra, přečtěte si téma Správa instančních objektů.

Knihovnu MSAL (Microsoft Authentication Library) můžete použít k získání přístupových tokenů Microsoft Entra ID programově. Tento článek popisuje základní použití knihovny MSAL a požadovaných uživatelských vstupů s příklady Pythonu.

Poznámka:

KNIHOVNA MSAL nahrazuje knihovnu ADAL (Microsoft Entra ID Authentication Library). 30. června 2022 skončila veškerá podpora a vývoj microsoftu pro ADAL, včetně oprav zabezpečení. Viz Migrace aplikací do knihovny Microsoft Authentication Library (MSAL).

Tip

Pokud chcete získat tokeny ID Microsoft Entra pro uživatele, zkuste místo MSAL použít Azure CLI, protože použití Azure CLI zahrnuje méně kroků. Viz Získání tokenů Microsoft Entra ID (dříve Azure Active Directory) pro uživatele pomocí Azure CLI.

Instanční objekt můžete také definovat v MICROSOFT Entra ID a získat přístupový token Microsoft Entra ID pro instanční objekt, nikoli pro uživatele. Viz Získání tokenů Microsoft Entra ID (dříve Azure Active Directory) pro instanční objekty.

Konfigurace aplikace na webu Azure Portal

Zaregistrujte aplikaci pomocí koncového bodu Microsoft Entra ID na webu Azure Portal. Alternativně můžete použít aplikaci Microsoft Entra ID, která je již zaregistrovaná. Další informace najdete v tématu Registrace aplikace pomocí webu Azure Portal.

  1. Přihlaste se k portálu Azure.

    Poznámka:

    Portál, který se má použít, se liší v závislosti na tom, jestli vaše aplikace Microsoft Entra ID běží ve veřejném cloudu Azure nebo v národním nebo suverénním cloudu. Další informace najdete v tématu Národní cloudy.

  2. Pokud máte přístup k více tenantům, předplatným nebo adresářům, klikněte v horní nabídce na ikonu Adresáře a předplatná (adresář s filtrem) a přepněte do adresáře, ve kterém chcete aplikaci zaregistrovat.

  3. Vyhledejte a vyberte Microsoft Entra ID.

  4. V možnosti Spravovat vyberte Registrace aplikací > Nová registrace.

  5. Jako Název zadejte název aplikace.

  6. V části Podporované typy účtů vyberte Účty pouze v tomto organizačním adresáři (jeden tenant).

  7. V části Identifikátor URI přesměrování (volitelné) v části Vybrat platformu vyberte veřejný klient nebo nativní (mobilní &desktop) a zadejte identifikátor URI přesměrování. V následujícím příkladu je http://localhosthodnota identifikátoru URI přesměrování .

    Registrovat aplikaci

  8. Klikněte na Zaregistrovat.

  9. Na stránce Přehled stránky aplikace zkopírujte v části Základy následující hodnoty:

    • ID aplikace (klienta)
    • ID adresáře (tenanta)
    • V identifikátorech URI přesměrování veřejného klienta, který jste zadali dříve v tomto postupu.

    Přehled zaregistrovaných aplikací Azure

  10. Přidejte AzureDatabricks k požadovaným oprávněním registrované aplikace. Abyste mohli tento krok provést, musíte být uživatelem správce. Pokud při provádění této akce narazíte na problém související s oprávněními, požádejte o pomoc správce.

    1. Na stránce Přehled stránky aplikace klikněte na kartě Začínáme na Zobrazit oprávnění rozhraní API.

      Nastavení zaregistrovaných aplikací Azure

    2. Klikněte na Přidat oprávnění.

      Přidání požadovaných oprávnění do aplikace

    3. V podokně Oprávnění rozhraní API žádosti klikněte na rozhraní API, která moje organizace používá, vyhledejte AzureDatabricks a vyberte ji.

      Přidání oprávnění rozhraní API AzureDatabricks

    4. Povolte zaškrtávací políčko user_impersonation a potom klepněte na tlačítko Přidat oprávnění.

      Delegovaná oprávnění aplikace Azure

    5. Klikněte na Udělit souhlas správce pro ### a pak na Ano. Pokud chcete tuto akci provést, musíte být uživatelem správce nebo mít oprávnění k udělení souhlasu s aplikací. Pokud se vám nezobrazí udělení souhlasu správce pro ### nebo pokud tuto akci přeskočíte, musíte při prvním použití aplikace k poskytnutí souhlasu použít tok autorizačního kódu (interaktivní ). Potom můžete použít metodu toku uživatelského jména a hesla (programový).

      Přidání dalších uživatelů a skupin do oprávnění aplikace

Do aplikace můžete přidat další uživatele. Další informace najdete v tématu Přiřazení uživatelského účtu k podnikové aplikaci pro pokyny k webu Azure Portal nebo přiřazení uživatelů a skupin k aplikaci v Microsoft Entra ID (dříve Azure Active Directory) pro pokyny k PowerShellu. Uživatel nebude moct získat token bez požadovaných oprávnění.

Získání přístupového tokenu Microsoft Entra ID

Pokud chcete získat přístupový token Microsoft Entra ID, můžete použít následující:

Pokud chcete získat přístupový token Microsoft Entra ID, musíte použít tok autorizačního kódu (interaktivní), pokud:

  • V ID Microsoft Entra je povolené dvojúrovňové ověřování.
  • Federované ověřování je povolené v MICROSOFT Entra ID.
  • Během registrace aplikace nemáte udělený souhlas s registrovanou aplikací.

Pokud máte oprávnění přihlásit se pomocí uživatelského jména a hesla, můžete k získání přístupového tokenu Microsoft Entra ID použít tok uživatelského jména a hesla (programový kód).

Tok autorizačního kódu (interaktivní)

K získání přístupového tokenu MICROSOFT Entra ID pomocí toku autorizačního kódu existují dva kroky.

  1. Požádejte o autorizační kód, který spustí okno prohlížeče a požádá o přihlášení uživatele Azure. Autorizační kód se vrátí po úspěšném přihlášení uživatele.
  2. Pomocí autorizačního kódu získejte přístupový token Microsoft Entra ID. V závislosti na používaném přístupu se dá obnovovací token vrátit také současně a dá se použít k aktualizaci přístupového tokenu Microsoft Entra ID.

Jedním z přístupů k dokončení těchto dvou kroků je použití webového prohlížeče a curl. K tomu použijete webový prohlížeč k získání autorizačního kódu a pak použijete autorizační kód a curl získáte přístupový token Microsoft Entra ID. Tento přístup neposkytuje obnovovací token.

Dalším přístupem je použití knihovny MSAL Pythonu. Uděláte to tak, že spustíte jeden skript, který pomocí webového prohlížeče získá autorizační kód a pak použije autorizační kód k získání přístupového i obnovovacího tokenu.

Oba tyto přístupy předpokládají, že jste už přihlášení k Azure. Pokud nejste přihlášení, webový prohlížeč vás k tomu vyzve.

Získání tokenů ID Microsoft Entra pomocí webového prohlížeče a curl

  1. Shromážděte následující informace:

    Parametr Popis
    ID tenanta ID adresáře (tenanta) pro související aplikaci zaregistrovanou v Microsoft Entra ID v konfiguraci aplikace na webu Azure Portal.
    Client ID ID aplikace (klienta) pro související aplikaci zaregistrovanou v Microsoft Entra ID.
    URI pro přesměrování Příslušné identifikátory URI přesměrování pro související aplikaci zaregistrovanou v MICROSOFT Entra ID (například http://localhost). Odpovědi na ověření se odesílají na tento identifikátor URI s zahrnutým autorizačním kódem.
  2. Pomocí webového prohlížeče získejte autorizační kód a přejděte na následující adresu URL. Odpovídajícím způsobem nahraďte pole v následujícím příkladu adresy URL. Všimněte si, že adresa URL musí být odeslána jako jeden řádek; Konce řádků byly přidány do následující adresy URL pro čitelnost. Další informace najdete v tématu Žádost o autorizační kód.

    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>
    

    Nahrazení:

    • <tenant-id> s ID tenanta registrované aplikace.
    • <client-id> s ID klienta registrované aplikace.
    • <redirect-uri> s identifikátorem URI přesměrování registrované aplikace. Tento identifikátor URI musí být ve formátu kódování URL (kódovaný v procentech). Například http://localhost je http%3A%2F%2Flocalhost.
    • <state> s náhodným číslem nebo některými zakódovanými informacemi. Aby bylo možné zkontrolovat integritu výměny informací, měla by tato hodnota stavu odpovídat hodnotě, která se nachází ve vrácené adrese URL dále v tomto postupu.

    Neměňte hodnotu parametru scope . Představuje programové ID pro Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d) spolu s výchozím oborem (/.default, zakódovaným jako %2f.defaultadresa URL).

    Příklad:

    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
    
  3. Vložte adresu URL jako jeden řádek do webového prohlížeče a po zobrazení výzvy se přihlaste k Azure.

    Adresa URL požadavku HTTP

  4. Autorizační kód je v code poli ve vrácené adrese URL. Uložte autorizační kód do zabezpečeného umístění. Zkontrolujte také, že hodnota pole odpovídá hodnotě state , kterou jste zadali dříve v tomto postupu.

    Adresa URL autorizačního kódu

    Úplná vrácená adresa URL bude vypadat přibližně takto (s code úplnou hodnotou pole zkrácenou na 0.ASkAIj...RxgFhSAA toto místo kvůli stručnosti):

    http://localhost/?code=0.ASkAIj...RxgFhSAA&state=12345&session_state=c44574d5-38ba-4f93-b2a3-a830db8e8cdf
    
  5. Pomocí autorizačního kódu curl získejte přístupový token Microsoft Entra ID.

    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>'
    

    Nahrazení:

    • <tenant-id> s ID tenanta registrované aplikace.
    • <client-id> s ID klienta registrované aplikace.
    • <authorization-code> s vaším autorizačním kódem.
    • <redirect-uri> s identifikátorem URI přesměrování registrované aplikace. Tento identifikátor URI musí být ve formátu kódování URL (percent-endoded). Například http://localhost je http%3A%2F%2Flocalhost.
    • <state> s náhodným číslem nebo některými zakódovanými informacemi. Aby bylo možné zjistit integritu výměny informací, měla by tato hodnota stavu odpovídat hodnotě, která se nachází v datové části odpovědi dále v tomto postupu.

    Neměňte hodnotu parametru scope . Představuje programové ID pro Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d) spolu s výchozím oborem (/.default, zakódovaným jako %2f.defaultadresa URL).

    Příklad:

    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'
    

    Token ID Microsoft Entra je v access_token hodnotě ve výsledku volání. Nezapomeňte zkontrolovat, jestli state hodnota odpovídá hodnotě, kterou jste zadali dříve v tomto postupu.

Získání tokenů ID Microsoft Entra pomocí knihovny MSAL Pythonu

  1. Shromážděte následující informace:

    Parametr Popis
    ID tenanta ID adresáře (tenanta) pro související aplikaci zaregistrovanou v Microsoft Entra ID v konfiguraci aplikace na webu Azure Portal.
    Client ID ID aplikace (klienta) pro související aplikaci zaregistrovanou v Microsoft Entra ID.

    Tento postup předpokládá, že jste pro související aplikaci zaregistrovanou v Microsoft Entra ID nastavili http://localhost identifikátor URI přesměrování.

  2. Nainstalujte sadu MSAL Python SDK na místní počítač spuštěním pip install msalpříkazu .

  3. Uložte následující kód jako get-tokens.py na místním počítači.

    # 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'])
    
  4. Proveďte některou z následujících akcí:

    • V předchozím kódu nahraďte <client-id> ID klienta registrované aplikace a <tenant-id> ID tenanta registrované aplikace a pak spusťte skript, například python get-tokens.py.
    • Zadejte ID klienta registrované aplikace a ID tenanta registrované aplikace při spuštění skriptu, například python get-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de.
  5. Pokud vás webový prohlížeč vyzve, přihlaste se k Azure.

  6. Ve výstupu se vytiskne přístup k ID Microsoft Entra a obnovovací tokeny.

Tok uživatelského jména a hesla (programový)

  1. Pokud máte oprávnění přihlásit se pomocí uživatelského jména a hesla, shromážděte následující informace:

    Parametr Popis
    ID tenanta ID adresáře (tenanta) pro související aplikaci zaregistrovanou v Microsoft Entra ID v konfiguraci aplikace na webu Azure Portal.
    Client ID ID aplikace (klienta) pro realtovanou aplikaci zaregistrovanou v Microsoft Entra ID.
    Uživatelské jméno a heslo Uživatelské jméno (tj. e-mailová adresa při přihlášení k webu Azure Portal) a heslo uživatele v tenantovi.

    Tento postup předpokládá, že jste pro související aplikaci zaregistrovanou v Microsoft Entra ID nastavili http://localhost identifikátor URI přesměrování.

  2. Nainstalujte sadu MSAL Python SDK na místní počítač spuštěním pip install msalpříkazu .

  3. Uložte následující kód jako get-tokens-for-user.py na místním počítači.

    # 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'])
    
  4. Proveďte některou z následujících akcí:

    • V předchozím kódu nahraďte <client-id> ID klienta registrované aplikace, <tenant-id> ID tenanta registrované aplikace, <username> uživatelským jménem a <password> heslem a pak spusťte skript, například python get-tokens-for-user.py.
    • Zadejte ID klienta registrované aplikace, ID tenanta registrované aplikace, uživatelské jméno a heslo při spuštění skriptu, například python get-tokens-for-user.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de someone@example.com "MyPa55w&rd!". Pokud argument příkazového řádku obsahuje speciální znaky, měli byste ho ohraničit uvozovkami.
  5. Přístup a obnovovací tokeny Microsoft Entra ID se vytisknou do terminálu.

Použití přístupového tokenu MICROSOFT Entra ID pro přístup k rozhraní DATAbricks REST API

Tato část popisuje použití přístupového tokenu Microsoft Entra ID k volání rozhraní Databricks REST API. V následujících příkladech nahraďte <access-token> přístupovým tokenem Microsoft Entra ID a <databricks-instance>adresou URL pracovního prostoru vašeho nasazení Azure Databricks.

Příklad Pythonu

Tento příklad ukazuje, jak zobrazit seznam clusterů v pracovním prostoru Azure Databricks.

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))

Poznámka:

Pokud jste uživatel, který není správcem a chcete se přihlásit jako uživatel s rolí správce, musíte kromě hlavičky zadat X-Databricks-Azure-Workspace-Resource-Id i hlavičku 'Authorization' : 'Bearer ' a musíte být v roli Přispěvatel nebo Vlastník prostředku pracovního prostoru v Azure. Hodnotu vytvoříte X-Databricks-Azure-Workspace-Resource-Id následujícím způsobem:

# ...

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
  }

# ...

Informace o předplatném, prostředku a pracovním prostoru v Azure získáte v tématu Otevření prostředků. Pokud chcete cílový prostředek otevřít, můžete vyhledat typ služby Azure Databricks a všechny další informace v Azure, které znáte o cílovém pracovním prostoru Azure Databricks.

curl Příklad

curl -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <access-token>' \
https://<databricks-instance>/api/2.0/clusters/list

Aktualizace přístupového tokenu Microsoft Entra ID

Pokud získáte obnovovací token spolu s přístupovým tokenem Microsoft Entra ID, můžete ho použít k získání nového tokenu. Ve výchozím nastavení je životnost přístupových tokenů Microsoft Entra ID náhodné časové období mezi 60 a 90 minutami (v průměru 75 minut). Životnost přístupových tokenů Microsoft Entra ID můžete nakonfigurovat pomocí metod v konfigurovatelných životnostech tokenů v Microsoft Entra ID (dříve Azure Active Directory).

Následující příklad ukazuje, jak použít knihovnu MSAL Python spolu s obnovovacím tokenem k získání nového tokenu.

  1. Uložte následující kód jako refresh-tokens.py na místním počítači.

    # 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'])
    
  2. Proveďte některou z následujících akcí:

    • V předchozím kódu nahraďte <client-id> ID klienta registrované aplikace, <tenant-id> ID tenanta registrované aplikace a obnovovací token a <refresh-token> spusťte skript, například python get-tokens-for-user.py.
    • Zadejte ID klienta registrované aplikace, ID tenanta registrované aplikace a obnovovací token při spuštění skriptu, například python refresh-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de "0.ASkAIj...huE84ALg". Pokud argument příkazového řádku obsahuje speciální znaky, měli byste ho ohraničit do uvozovek.
  3. Nový přístup k ID Microsoft Entra a obnovovací tokeny se vytiskne do terminálu.