Это было на самом деле предметом обсуждения, который возник на прошлой неделе внутри страны. Размещение ответа здесь, чтобы сообщество могло видеть раньше, прежде чем мы сможем получить официальную документацию MSFT там
Вопрос пользователя
Пользователь создал бота с ручной регистрацией приложения и продолжил получать «Внутренняя ошибка сервера»
"Мы попробовали несколько вещей, чтобы обойти это, и через испытание и
Ошибка, которую мы обнаружили, как только мы изменили настройку регистрации приложения для
Поддерживаемые типы учетных записей из «Счета в этой организации
только каталог »в« Аккаунты в любом каталоге организации », перезапущен
приложение, и бот снова начал работать. Я повторил это в моем
суб, а также. "
«Счета в любом организационном каталоге» Пояснение
Это необходимо для того, чтобы мы (в боте framework.com) могли запросить токен для бота. Вытащено из связанной темы:
Выпуск
Боты не работают с самого начала из-за ошибки ниже:
[Error] Microsoft.BotBuilderSamples.EchoWithCounterBot: Exception caught : Microsoft.Bot.Connector.Authentication.MicrosoftAppCredentials+OAuthException: Bad Request --->System.Net.Http.HttpRequestException: Response status code does not indicate success: 400 (Bad Request).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at Microsoft.Bot.Connector.Authentication.MicrosoftAppCredentials.<RefreshTokenAsync>d__36.MoveNext()
Это исключение возникло из-за того, что SDK Bot Framework пытался позвонить клиенту AAD botframework.com для получения токена, и AAD отвечал с ошибкой HTTP 400, указывая на проблему с приложением. учетные данные
Дальнейшее устранение неполадок обнаружило приведенную ниже конкретную ошибку от AAD:
Приложение с идентификатором «[appID]» не найдено в каталоге «botframework.com».
Context
У регистрации приложения есть три параметра / области действия для того, какие учетные записи могут использовать его:
- Учетные записи в текущем организационном каталоге (для вас это будет каталог xxx)
- Счета в любом организационном каталоге
- Учетные записи в любом каталоге организации и личные учетные записи Microsoft (например, Skype, Outlook.com, Xbox и т. Д.)
Я ссылаюсь на цифры, приведенные выше множество раз ниже.
По умолчанию, позволяя порталу Azure создавать собственную регистрацию приложения во время создания ресурса бота, он делает это с опцией 3 выше. Это верно, если вы выбираете автоматическое создание или нажимаете ссылку во время создания, чтобы вручную создать регистрацию - оба из них создают регистрацию с опцией 3.
Например, при создании бота веб-приложения на портале по умолчанию (внизу) используется следующий параметр:
Вы можете расширить эту часть, чтобы получить это:
Если щелкнуть ссылку «Создать идентификатор приложения…», вы попадете на текущий портал регистрации приложений с предварительно заполненным идентификатором и именем приложения.
Оба метода выше создают регистрацию приложения с областью # 3 выше.
Причина
На основании обсуждений с командой AAD и тестирования, которое я провел на ботах и регистрации на прошлой неделе, проблема была вызвана слишком узкой областью регистрации.
В вашем случае для регистрации приложений была настроена область # 1, описанная выше, которая ограничивает регистрацию, поэтому ее может использовать только xxx. Поскольку для использования этой регистрации для Bot Framework SDK требуется клиент AAD botframework.com, ему не удалось получить токен.
Разрешение
В качестве теста мы изменили существующую регистрацию с варианта № 1 на вариант № 2, используя блейд регистрации приложений (предварительный просмотр) на портале Azure (в разделе Azure Active Directory). Поскольку этот параметр открывает регистрацию, которая будет использоваться любой организацией AAD, в том числе botframework.com, у Bot SDK не возникло проблем с получением токена, и он сразу же начал работать.
Идем вперед
Так как вашорганизация использует отдельную систему управления / приложение для регистрации приложений, вам нужно убедиться, что регистрации, созданные для использования ботами, создаются с помощью параметра № 2 или № 3 или впоследствии изменяются, если создаются с помощью № 1.Бот не будет работать, гарантированно, если регистрацию может использовать только арендатор xxx, который является вариантом # 1.Существующие регистрации можно изменить на портале Azure:
Портал -> Azure Active Directory -> Регистрации приложений (предварительный просмотр) -> [выберите один] -> Блейд аутентификации
Если вы видите это, тогда регистрация уже ограничена для # 3 и должна быть в порядке:
Если вы видите это, то убедитесь, что выбран № 2: * 1097 1098 ** *