Поделиться через


Получение токенов Microsoft Entra ID пользователям с помощью MSAL

Внимание

В этой статье описывается, как вручную создать маркеры идентификатора Microsoft Entra с помощью библиотеки проверки подлинности Майкрософт (MSAL).

Databricks не рекомендует создавать маркеры идентификатора Microsoft Entra для пользователей Azure Databricks вручную. Это связано с тем, что каждый маркер идентификатора Microsoft Entra является коротким сроком действия, обычно истекает в течение одного часа. После этого необходимо вручную создать заменяющий маркер идентификатора Microsoft Entra. Вместо этого используйте один из участвующих средств или пакетов SDK, реализующих стандарт унифицированной проверки подлинности клиента Databricks. Эти средства и пакеты SDK автоматически создают и заменяют истекшие маркеры идентификатора Microsoft Entra ID для вас, используя аутентификации Azure CLI.

Управляемые субъекты-службы Azure Databricks управляются непосредственно в Azure Databricks. Управляемые субъекты-службы идентификатора Microsoft Entra управляются в идентификаторе Microsoft Entra, для которого требуются дополнительные разрешения. Databricks рекомендует использовать управляемые субъекты-службы Azure Databricks для большинства вариантов использования. Однако Databricks рекомендует использовать управляемые сервисные принципы Microsoft Entra ID в случаях, когда необходимо аутентифицироваться с Azure Databricks и другими ресурсами Azure одновременно.

Сведения о создании управляемого субъекта-службы Azure Databricks вместо управляемого субъекта-службы идентификатора Microsoft Entra см. в статье "Управление субъектами-службами".

Вы можете использовать библиотеки проверки подлинности Майкрософт (MSAL) для программного получения маркеров доступа к идентификатору Microsoft Entra. В этой статье рассматриваются основные принципы использования библиотеки MSAL и необходимые действия со стороны пользователя на основе примеров Python.

Примечание.

MSAL заменяет библиотеку проверки подлинности идентификатора Microsoft Entra (ADAL). Все средства поддержки и разработки Майкрософт для ADAL, включая обновления для системы безопасности, стали недоступны с 30 июня 2022 г. См. статью о переводе приложений на Библиотеку проверки подлинности Майкрософт (MSAL).

Совет

Возможно, вы хотите попробовать использовать Azure CLI вместо MSAL, чтобы получить маркеры идентификатора Microsoft Entra для пользователей, так как использование Azure CLI включает меньше шагов. См. получение токенов Microsoft Entra ID для пользователей, используяAzure CLI.

Вы также можете определить субъект-службу в идентификаторе Microsoft Entra и получить маркер доступа к идентификатору Microsoft Entra для субъекта-службы, а не для пользователя. См. получение маркеров идентификатора Microsoft Entra для субъектов-служб.

Настройка приложения на портале Azure

Зарегистрируйте приложение с помощью конечной точки идентификатора Microsoft Entra в портал Azure. Кроме того, можно использовать приложение идентификатора Microsoft Entra, которое уже зарегистрировано. Дополнительные сведения см. в статье Регистрация приложения с помощью портала Azure.

  1. Войдите на портал Azure.

    Примечание.

    Используемый портал отличается в зависимости от того, работает ли ваше приложение идентификатора Microsoft Entra в общедоступном облаке Azure или в национальном или независимом облаке. Дополнительные сведения см. на странице национальных облаков.

  2. Если у вас есть доступ к нескольким арендаторам, подпискам или каталогам, щелкните значок Каталоги + подписки (каталог с фильтром) в верхнем меню, чтобы перейти к каталогу, в котором необходимо зарегистрировать приложение.

  3. Найдите и выберите Microsoft Entra ID.

  4. В Управлениивыберите Регистрация приложений > Новая регистрация.

  5. Введите имя приложения

  6. В разделе Поддерживаемые типы учетных записей выберите учетные записи в этом каталоге организации (только один клиент).

  7. В разделе URI перенаправления (необязательно) для Выберите платформу, выберите общедоступный клиент или собственный (мобильный & настольный компьютер) и введите универсальный код ресурса (URI перенаправления). В следующем примере URI перенаправления имеет значение http://localhost.

    Регистрация приложения

  8. Щелкните Зарегистрировать.

  9. На странице Обзор страницы приложения, в разделе Основы, скопируйте следующие значения:

    • Application (client) ID (Идентификатор приложения (клиент))
    • Идентификатор каталога (клиент)
    • В разделе URI перенаправления — URI перенаправления общедоступного клиента, введенный ранее в этой процедуре.
  10. Добавьте AzureDatabricks к необходимым разрешениям зарегистрированного приложения. Для выполнения этого шага необходимо быть пользователем с правами администратора. Если во время выполнения этого действия возникла проблема, связанная с разрешениями, обратитесь за помощью к администратору.

    1. На странице Обзор страницы приложения на вкладке Начало работы нажмите на Просмотр разрешений API.

      Настройки зарегистрированного приложения Azure

    2. Щелкните Добавить разрешение.

      Добавление необходимых разрешений в приложение

    3. В области Запрос разрешений API щелкните вкладку API, которые моя организация использует, найдите AzureDatabricksи выберите его.

      Добавление разрешения API AzureDatabricks

    4. Установите флажок user_impersonation и нажмите кнопку Добавить разрешения.

      Делегированные разрешения приложения Azure

    5. Щелкните Предоставить согласие администратора для ####, затем Да. Для выполнения этого действия необходимо быть администратором или иметь право предоставить согласие приложению. Если вы не видите предоставление согласия администратора для ###, или если вы пропустите это действие, необходимо использовать поток авторизации с кодом (интерактивный) при первом использовании приложения для предоставления согласия. После этого можно воспользоваться методом Поток "имя пользователя — пароль" (программный).

      Добавление дополнительных пользователей или груп в разрешения приложения

В приложение можно добавить дополнительных пользователей. Дополнительные сведения см. в статье "Назначение учетной записи пользователя корпоративному приложению для портал Azure инструкций или назначение пользователей и групп приложению в идентификаторе Microsoft Entra ID (ранее Azure Active Directory) для инструкций PowerShell. Пользователь не сможет получить маркер без необходимых разрешений.

Получение токена доступа для идентификатора Microsoft Entra

Чтобы получить токен доступа к идентификатору Microsoft Entra, можно использовать один из следующих методов:

Необходимо использовать поток кода авторизации (интерактивный), чтобы получить токен доступа для Microsoft Entra ID, если:

  • В идентификаторе Microsoft Entra включена двухфакторная проверка подлинности.
  • Федеративная проверка подлинности включена в идентификаторе Microsoft Entra.
  • Вы не предоставили зарегистрированному приложению согласие во время регистрации приложения.

Если у вас есть центр входа с помощью имени пользователя и пароля, вы можете использовать поток доступа к идентификатору пользователя (программное) для получения маркера доступа к идентификатору Microsoft Entra.

Поток кода авторизации (интерактивный)

Существует два шага для получения маркера доступа идентификатора Microsoft Entra с помощью потока кода авторизации.

  1. Запрос кода авторизации, который запускает окно браузера и запрашивает имя входа пользователя Azure. После того как пользователь успешно войдет в систему, будет возвращен код авторизации.
  2. Используйте код авторизации для получения маркера доступа идентификатора Microsoft Entra. В зависимости от используемого подхода токен обновления может быть возвращён и использован одновременно для обновления токена доступа Microsoft Entra ID.

Для выполнения этих двух этапов можно использовать веб-браузер и curl. Для этого с помощью веб-браузера вы получаете код авторизации, а затем используете код авторизации и curl, чтобы получить токен доступа Microsoft Entra ID. Этот подход не предоставляет маркер обновления.

Другой подход заключается в использовании библиотеки MSAL Python. Для этого запустите один скрипт, который использует веб-браузер для получения кода авторизации, а затем этот код применяется для получения токена доступа и токена обновления.

Оба этих подхода предполагают, что вы уже вошли в Azure. Если вход не выполнен, в веб-браузере будет предложено это сделать.

Получение токенов идентификатора Microsoft Entra с помощью веб-браузера и curl

  1. Соберите следующие сведения:

    Параметр Описание
    Идентификатор клиента Идентификатор каталога (клиента) для связанного приложения, зарегистрированного в идентификаторе Microsoft Entra, в разделе "Настройка приложения в портал Azure".
    Client ID Идентификатор приложения (клиента) для связанного приложения, зарегистрированного в идентификаторе Microsoft Entra.
    URI-адрес перенаправления Соответствующие URI перенаправления для связанного приложения, зарегистрированного в идентификаторе Microsoft Entra (например, http://localhost). Ответы проверки подлинности, к которым добавляется код авторизации, направляются на этот универсальный код ресурса (URI).
  2. Получите код авторизации, перейдя по следующему URL-адресу с помощью веб-браузера. Замените поля в этом образце URL-адреса соответствующим образом. Обратите внимание, что URL-адрес должен быть отправлен в виде одной строки; разрывы строк добавлены к этому адресу для удобства чтения. Дополнительные сведения см. в разделе Запрос кода авторизации.

    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>
    

    Замена:

    • <tenant-id> с идентификатором арендатора зарегистрированного приложения.
    • <client-id> с идентификатором клиента зарегистрированного приложения.
    • <redirect-uri> URI перенаправления зарегистрированного приложения. Этот URI должен быть в формате кодировки URL-адреса (со знаками процента). Например, адресу http://localhost соответствует значение http%3A%2F%2Flocalhost.
    • <state> произвольным числом или определенной закодированной информацией. Для надежной проверки целостности обмена данными это значение состояния должно совпадать со значением в возвращенном URL-адресе далее в этой процедуре.

    Не изменяйте значение параметра scope. Он представляет собой программный идентификатор для Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d) вместе с областью по умолчанию (/.default, в кодировке URL-адреса в виде %2f.default).

    Например:

    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. Вставьте URL-адрес в виде одной строки в веб-браузер и при появлении запроса войдите в Azure.

  4. Код авторизации находится в поле code в возвращенном URL-адресе. Сохраните код авторизации в безопасном месте. Убедитесь, что значение поля state соответствует указанному ранее в этой процедуре значению.

    URL кода авторизации

    Полный возвращенный URL-адрес будет выглядеть примерно так (полное значение поля code для краткости сокращено здесь до 0.ASkAIj...RxgFhSAA):

    http://localhost/?code=0.ASkAIj...RxgFhSAA&state=12345&session_state=c44574d5-38ba-4f93-b2a3-a830db8e8cdf
    
  5. Используйте код авторизации вместе с curl для получения токена доступа 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>'
    

    Замена:

    • <tenant-id> с идентификатором арендатора зарегистрированного приложения.
    • <client-id> с идентификатором клиента зарегистрированного приложения.
    • <authorization-code> кодом авторизации.
    • <redirect-uri> URI перенаправления зарегистрированного приложения. Этот URI должен быть в формате кодировки URL-адреса (со знаками процента). Например, адресу http://localhost соответствует значение http%3A%2F%2Flocalhost.
    • <state> произвольным числом или определенной закодированной информацией. Для надежной проверки целостности обмена данными это значение состояния должно совпадать со значением в полезных данных ответа далее в этой процедуре.

    Не изменяйте значение параметра scope. Он представляет собой программный идентификатор для Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d) вместе с областью по умолчанию (/.default, в кодировке URL-адреса в виде %2f.default).

    Например:

    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'
    

    Маркер идентификатора Microsoft Entra находится в access_token значении в результате вызова. Обязательно убедитесь, что значение state совпадает с тем, которое вы указали ранее в этой процедуре.

Получение токенов идентификатора Microsoft Entra с помощью библиотеки MSAL Python

  1. Соберите следующие сведения:

    Параметр Описание
    Идентификатор клиента Идентификатор каталога (клиента) для связанного приложения, зарегистрированного в идентификаторе Microsoft Entra, в разделе "Настройка приложения в портал Azure".
    Client ID Идентификатор приложения (клиента) для связанного приложения, зарегистрированного в идентификаторе Microsoft Entra.

    Эта процедура предполагает, что вы установили http://localhost в качестве URL-адреса перенаправления для связанного приложения, зарегистрированного в Microsoft Entra ID.

  2. Установите пакет SDK для MSAL Python на локальном компьютере, выполнив команду pip install msal.

  3. Сохраните приведенный ниже код в файле 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'])
    
  4. Выполните одно из следующих действий:

    • В приведенном выше коде замените <client-id> идентификатором клиента зарегистрированного приложения, а <tenant-id> — идентификатором арендатора зарегистрированного приложения, а затем запустите скрипт, например python get-tokens.py.
    • Во время выполнения скрипта укажите идентификаторы клиента и арендатора зарегистрированного приложения, например python get-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de.
  5. Если в веб-браузере появится соответствующий запрос, войдите в Azure.

  6. Маркеры доступа и обновления Microsoft Entra ID выводятся в выходные данные.

Поток "имя пользователя — пароль" (программный)

  1. Если у вас есть полномочия для входа с помощью имени пользователя и пароля, соберите следующие сведения:

    Параметр Описание
    Идентификатор клиента Идентификатор каталога (клиента) для связанного приложения, зарегистрированного в идентификаторе Microsoft Entra, в разделе "Настройка приложения в портал Azure".
    Client ID Идентификатор приложения (клиента) для реального приложения, зарегистрированного в идентификаторе Microsoft Entra.
    Имя пользователя и пароль Имя пользователя (то есть адрес электронной почты, указываемый при входе на портал Azure) и пароль пользователя в арендаторе.

    Эта процедура предполагает, что вы установили http://localhost в качестве URL-адреса перенаправления для связанного приложения, зарегистрированного в Microsoft Entra ID.

  2. Установите пакет SDK для MSAL Python на локальном компьютере, выполнив команду pip install msal.

  3. Сохраните приведенный ниже код в файле 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'])
    
  4. Выполните одно из следующих действий:

    • В приведенном выше коде замените <client-id> идентификатором клиента зарегистрированного приложения, <tenant-id> — идентификатором арендатора зарегистрированного приложения, <username> — именем пользователя, а <password> — паролем, а затем запустите скрипт, например python get-tokens-for-user.py.
    • Во время выполнения скрипта укажите идентификаторы клиента и арендатора зарегистрированного приложения, имя пользователя и пароль, например python get-tokens-for-user.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de someone@example.com "MyPa55w&rd!". Если аргумент командной строки содержит специальные символы, его следует заключить в кавычки.
  5. Маркеры доступа и обновления Microsoft Entra ID отображаются на вашем терминале.

Использование маркера доступа идентификатора Microsoft Entra для доступа к REST API Databricks

В этом разделе описывается, как использовать маркер доступа идентификатора Microsoft Entra для вызова REST API Databricks. В следующих примерах замените <access-token> маркер <databricks-instance>доступа идентификатора Microsoft Entra и URL-адресом рабочей области развертывания Azure Databricks.

Пример на Python

В этом примере показано, как перечислить кластеры в рабочей области 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))

Примечание.

Если вы являетесь пользователем без административных прав и хотите войти в систему как пользователь с правами администратора, необходимо указать заголовок X-Databricks-Azure-Workspace-Resource-Id в дополнение к заголовку 'Authorization' : 'Bearer ', а кроме того, нужна роль участника или владельца для ресурса рабочей области в Azure. Значение X-Databricks-Azure-Workspace-Resource-Id создается следующим образом:

# ...

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
  }

# ...

Сведения о подписке, ресурсе и рабочей области в Azure см. в статье Открытие ресурсов. Чтобы открыть целевой ресурс, можно найти его по типу службы Azure Databricks и любой другой информации в Azure, которая известна вам о целевой рабочей области Azure Databricks.

Пример curl

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

Обновление токена доступа для Microsoft Entra ID

Если вы получаете токен обновления вместе с токеном доступа Microsoft Entra ID, вы можете использовать токен обновления для получения нового токена. По умолчанию время существования маркеров доступа идентификатора Microsoft Entra — это случайный период времени от 60 до 90 минут (в среднем 75 минут). Вы можете настроить время существования маркеров доступа к идентификатору Microsoft Entra с помощью методов в настраиваемых времени существования маркеров в идентификаторе Microsoft Entra (ранее Azure Active Directory).

В следующем примере показано, как использовать библиотеку MSAL Python вместе с токеном обновления для получения нового токена.

  1. Сохраните приведенный ниже код в файле 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'])
    
  2. Выполните одно из следующих действий:

    • В приведенном выше коде замените <client-id> идентификатором клиента зарегистрированного приложения, <tenant-id> идентификатором клиента зарегистрированного приложения и <refresh-token> маркером обновления, а затем запустите скрипт, например python get-tokens-for-user.py.
    • Укажите идентификатор клиента зарегистрированного приложения, идентификатор клиента зарегистрированного приложения и маркер обновления при запуске скрипта, например python refresh-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de "0.ASkAIj...huE84ALg". Если аргумент командной строки содержит специальные символы, его следует заключить в кавычки.
  3. Новые токены доступа и обновления идентификатора Microsoft Entra отображаются в вашем терминале.