скрипт Python для журнала активности Azure - PullRequest
0 голосов
/ 18 марта 2019
from azure.monitor import MonitorClient
#from azure.mgmt.monitor import MonitorMgmtClient
from azure.mgmt.monitor import MonitorManagementClient
from azure.common.credentials import UserPassCredentials
import datetime

# Replace this with your subscription id
subscription_id = '************'

# See above for details on creating different types of AAD credentials
credentials = UserPassCredentials(
'****',  # Your user
'****',      # Your password
)

client = MonitorClient(
  credentials,
  subscription_id
 )

monitor_mgmt_client = MonitorManagementClient(
  credentials,
  subscription_id
)

после запуска этого кода его ошибка выдачи: ошибка error msrest.exceptions.AuthenticationError:, InvalidClientIdError: (invalid_request) AADSTS900144: Тело запроса должно содержать следующий параметр: 'client_id'

1 Ответ

1 голос
/ 18 марта 2019

Кажется, вам больше не следует использовать UserPassCredentials, оно устарело.

См. Эту ссылку :

В предыдущей версии SDK, ADAL еще не был доступен, и мы предоставили класс UserPassCredentials.Это считается устаревшим и больше не должно использоваться.

Для аутентификации с использованием учетных данных токена вы можете попробовать следующий код:

from azure.common.credentials import ServicePrincipalCredentials

# Tenant ID for your Azure Subscription
TENANT_ID = 'ABCDEFGH-1234-1234-1234-ABCDEFGHIJKL'

# Your Service Principal App ID
CLIENT = 'a2ab11af-01aa-4759-8345-7803287dbd39'

# Your Service Principal Password
KEY = 'password'

credentials = ServicePrincipalCredentials(
    client_id = CLIENT,
    secret = KEY,
    tenant = TENANT_ID
)

Если вам нужно больше контроля, этоРекомендуется использовать ADAL и оболочку SDK ADAL.

import adal
from msrestazure.azure_active_directory import AdalAuthentication
from msrestazure.azure_cloud import AZURE_PUBLIC_CLOUD

# Tenant ID for your Azure Subscription
TENANT_ID = 'ABCDEFGH-1234-1234-1234-ABCDEFGHIJKL'

# Your Service Principal App ID
CLIENT = 'a2ab11af-01aa-4759-8345-7803287dbd39'

# Your Service Principal Password
KEY = 'password'

LOGIN_ENDPOINT = AZURE_PUBLIC_CLOUD.endpoints.active_directory
RESOURCE = AZURE_PUBLIC_CLOUD.endpoints.active_directory_resource_id

context = adal.AuthenticationContext(LOGIN_ENDPOINT + '/' + TENANT_ID)
credentials = AdalAuthentication(
    context.acquire_token_with_client_credentials,
    RESOURCE,
    CLIENT,
    KEY
)

Для получения дополнительной информации вы можете обратиться по этой ссылке: Аутентификация с помощью библиотек управления Azure для Python .

Если у вас нет приложения AD, перейдите по этой ссылке , чтобы создать его.Чтобы получить идентификатор клиента (идентификатор клиента совпадает с идентификатором приложения) и ключ, перейдите по этой ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...