Как использовать управляемую пользователем идентификацию из облачной функции Azure (python) при отправке запроса в Azure KeyVault? - PullRequest
0 голосов
/ 08 ноября 2019

Моя текущая настройка:

Мой парень DevOps создал управляемую пользователем идентификацию и добавил ее в политику доступа к хранилищу ключей Azure.
Я создал приложение функции testing-01 и назначилUser-ManagedIdentity к нему в настройках платформы.
Я использую Python 3.6 в качестве языка времени выполнения.

Это мой вспомогательный метод, который я использую, чтобы проверить, могу ли я получить доступ к секретам из хранилища ключей. и я возвращаю свой ответ.

def cred_checker():
    credential = ManagedIdentityCredential()
    # credential = ManagedIdentityCredential(client_id='client_id 
    vault_name= "myvault"
    client = SecretClient(vault_url=f"https://{vault_name}.vault.azure.net/", credential=credential)
    username = client.get_secret(name="username")
    password= client.get_secret(name="password")

    return f"AKV client created successfully {client} .<br> name: {username},<br> pass: {password} " 

Я могу создать клиента без ошибок. Но когда я пытаюсь извлечь из него секрет, я получаю эту ошибку ClientAuthenticationError:

Exception while executing function: Functions.HttpTriggerFunc <--- Result: Failure Exception: ClientAuthenticationError: Unexpected response '{'statusCode': 400, 'message': 'Unable to load requested managed identity.', 'correlationId': '92daf146-fed2-4a75-8359-9r955939815e'}'

1 Ответ

0 голосов
/ 11 ноября 2019

Когда вы используете назначенный пользователем идентификатор, вам нужно указать client_id MSI в ManagedIdentityCredential().

credential = ManagedIdentityCredential(client_id="xxxxxxxx")

Комуполучите client_id, перейдите к своему функциональному приложению -> Identity -> User assigned -> щелкните по своему назначенному пользователю идентификатору -> скопируйте client_id.

enter image description here

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