Bot Framework Python SDK ErrorResponseException: операция возвратила неверный код состояния «Неавторизовано»Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Bot Framework Python SDK ErrorResponseException: операция возвратила неверный код состояния «Неавторизовано»

Сообщение Anonymous »

Мне нужна помощь в реализации аутентификации AAD в проекте платформы бота с помощью Python SDK.
Что я сделал:
  • клонировал этот образец https://github.com/microsoft/BotBuilder ... on-msgraph
  • подписался эта документация https://learn.microsoft.com/en-us/azure ... 2%2Ccsharp
    настроил ресурс бота MultiTenant (боты, написанные на Python, не работают с типом приложения UserAssignedMSI, и мне также не удалось запустить его с помощью SingleTenant), включая соединение OAuth (протестировано и работает как с AAD, так и с AAD v2):
    Изображение
  • настроил регистрацию приложения, включая разрешения API и URI перенаправления
    Изображение
    Изображение

Я проверил регистрацию своего приложения, вызвав его напрямую, и это так. работают безупречно, возвращая ответ 200 и доступ токен:
Изображение

В VS Code У меня питон 3.11 венв. Я успешно запускаю свое веб-приложение бота и открываю его в эмуляторе, также предоставляя идентификатор приложения и секрет клиента:
Изображение
Однако, когда поток начинает выполнять логику аутентификации, я получаю эту ошибку в консоли, по сути говоря, что-то не авторизовано. На данный момент я в замешательстве и не имею дальнейших идей, как это отладить, учитывая, что мои ресурсы и конфигурации настроены правильно. Я работаю в клиенте клиента, где у меня есть роль участника, и я создал все указанные ресурсы самостоятельно. Возможно ли, что администратору нужно что-то авторизовать? Чего мне не хватает?

Код: Выделить всё

[on_turn_error] unhandled error:  Operation returned an invalid status code 'Unauthorized'
Traceback (most recent call last):
File "working_dir\.venv\Lib\site-packages\botbuilder\core\bot_adapter.py", line 174, in run_pipeline
return await self._middleware.receive_activity_with_status(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\core\middleware_set.py", line 69, in receive_activity_with_status
return await self.receive_activity_internal(context, callback)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\core\middleware_set.py", line 79, in receive_activity_internal
return await callback(context)
^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\bot\bots\dialog_bot.py", line 31, in on_turn
await super().on_turn(turn_context)
File "working_dir\.venv\Lib\site-packages\botbuilder\core\activity_handler.py", line 70, in on_turn
await self.on_message_activity(turn_context)
File "working_dir\bot\bots\dialog_bot.py", line 38, in on_message_activity
await DialogHelper.run_dialog(
File "working_dir\bot\helpers\dialog_helper.py", line 16, in run_dialog
await dialog_context.begin_dialog(dialog.id)
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\dialog_context.py", line 121, in begin_dialog
return await dialog.begin_dialog(self, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\component_dialog.py", line 67, in begin_dialog
turn_result = await self.on_begin_dialog(inner_dc, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\bot\dialogs\logout_dialog.py", line 21, in on_begin_dialog
return await super().on_begin_dialog(inner_dc, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\component_dialog.py", line 221, in on_begin_dialog
return await inner_dc.begin_dialog(self.initial_dialog_id, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\dialog_context.py", line 121, in begin_dialog
return await dialog.begin_dialog(self, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\waterfall_dialog.py", line 64, in begin_dialog
return await self.run_step(dialog_context, 0, DialogReason.BeginCalled, None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\waterfall_dialog.py", line 154, in run_step
return await self.on_step(step_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\waterfall_dialog.py", line 130, in on_step
return await self._steps[step_context.index](step_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\bot\dialogs\main_dialog.py", line 51, in prompt_step
return await step_context.begin_dialog(OAuthPrompt.__name__)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\dialog_context.py", line 121, in begin_dialog
return await dialog.begin_dialog(self, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\prompts\oauth_prompt.py", line 168, in begin_dialog
output = await _UserTokenAccess.get_user_token(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botbuilder\dialogs\_user_token_access.py", line 27, in get_user_token
return await user_token_client.get_user_token(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botframework\connector\auth\_user_token_client_impl.py", line 44, in get_user_token
result = await self._client.user_token.get_token(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "working_dir\.venv\Lib\site-packages\botframework\connector\token_api\aio\operations_async\_user_token_operations_async.py", line 100, in get_token
raise models.ErrorResponseException(self._deserialize, response)
botframework.connector.token_api.models._models_py3.ErrorResponseException:  Operation returned an invalid status code 'Unauthorized'
Datetime with no tzinfo will be considered UTC.
  • попробовал войти в систему через эмулятор бота и получил ответ «Несанкционировано».. Это происходит еще до того, как отображается диалоговое окно входа в систему.


Подробнее здесь: https://stackoverflow.com/questions/784 ... -invalid-s
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»