
Затем я создал открытый API и предоставил ему следующее разрешение
- Microsft Graph => user.read => Войдите в систему и прочитайте пользователя профиль
- Azure Storage => User_impersonation => Доступ к хранилищу Azure
- Generated_API => SendMessages ==> Разрешить приложению отправлять сообщения в хранилище Azure< /li>
После этого я создал учетную запись хранения (sorage_acc1) и очередь сообщений (message_1) и предоставил ей следующие разрешения
- User1 => Storage Queue Отправитель сообщения с данными
- testapp1 => Отправитель сообщения с данными очереди хранилища
from azure.identity import InteractiveBrowserCredential
from azure.storage.queue import QueueClient
from azure.core.exceptions import ResourceExistsError, HttpResponseError
# Authenticate using InteractiveBrowserCredential with client ID
credential = InteractiveBrowserCredential()
# Create a QueueClient
queue_client = QueueClient(
additionally_allowed_tenants="[*]",
account_url="https://sorage_acc1.queue.core.windows.net/",
queue_name="message_1",
credential=credential
)
try:
# Send a message to the queue
queue_client.send_message("Your message here")
print("Message sent successfully!")
except ResourceExistsError:
print("The queue already exists.")
except HttpResponseError as e:
print(f"An error occurred: {e.message}")
Для финального теста я использовал этот код на другом компьютере с Windows 11, присоединенном к другому домену, но это не удалось (я предоставил согласие администратора). что я сделал не так в этом сценарии
Сообщение об ошибке
An error occurred: Server failed to authenticate the request. Please refer to the information in the www-authenticate header.
RequestId:XXXXX
Time:2024-09-19T14:21:41.8678546Z
ErrorCode:InvalidAuthenticationInfo
authenticationerrordetail:Issuer validation failed. Issuer did not match.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -applicati