#botframework #amazon-cognito #microsoft-teams
#botframework #amazon-cognito #microsoft-teams
Вопрос:
Я собрал этот образец для интеграции бота в Microsoft Teams:
https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/46.teams-auth
Хорошая новость в том, что он отлично работает из коробки с подключением к Azure AD в качестве входа в OAuth2.
Мы используем пользовательские пулы Amazon Cognito, и для того, чтобы вызывать запросы и другие вещи, мне нужно войти в систему по понятным причинам. Поэтому я попытался настроить другое соединение, на этот раз с общим поставщиком OAuth2, поскольку Cognito отсутствует в списке.
Это мои настройки подключения для общего поставщика
Я скрыл фактические идентификаторы по понятным причинам, но основные URL-адреса присутствуют, как указано в документах Cognito.
Я также добавил «token.botframework.com » и «*.amazoncognito.com » в списке допустимых доменов манифеста.
Теперь, когда я нажимаю на кнопку «Войти в карточку», открывается всплывающее окно, но я получаю ошибку redirect_mismatch в URL, вот так
Я посмотрел причину этой ошибки, и указано, что URL перенаправления должен соответствовать по крайней мере одному из URL обратного вызова в клиенте приложения Cognito, соответствующему предоставленному идентификатору.
Однако в коде примера для бота я, похоже, не вижу, где вы указываете такой URL обратного вызова при работе с запросом OAuth напрямую.
У каких-либо мастеров здесь есть идеи по этому поводу? Я был бы очень признателен за любую помощь.
Спасибо!
ОТРЕДАКТИРУЙТЕ в соответствии с запросом, вот страница настроек для клиента приложения
Учитывая, что это приложение MS Teams, у меня настроены туннели ngrok для трафика, поэтому я добавляю туда оба URL-адреса на всякий случай… localhost: 3000 на самом деле является местом, где находится ngrok.туннель ввода-вывода указывает на.
И вот доказательство того, что наш размещенный пользовательский интерфейс при открытии из пула пользователей действительно отображается и в redirect_uri локального хоста: 3000/
Комментарии:
1. Добавили ли вы URL своего веб-приложения в URL обратного вызова клиента Cognito App? Это находится в консоли Cognito в разделе Интеграция приложений -> Настройки клиента приложения
2. @Дилан, спасибо за быстрый ответ. Я добавил его, как указано на добавленных скриншотах в OP
3. Не уверен, поможет ли это, но вы пробовали удалять косую черту в конце URL-адреса локального хостинга?
4. Я пробовал с и без, к сожалению, безрезультатно.
5. При использовании встроенной поддержки аутентификации в службе Azure Bot Service она полностью обрабатывает перенаправления аутентификации. Итак, ваш зарегистрированный URL перенаправления («URL обратного вызова» в Amazon Cognito?) должно быть
https://token.botframework.com/.auth/web/redirect
. Это должен был быть ваш URL-адрес перенаправления, когда вы пробовали его и с AAD.
Ответ №1:
(Публикую мой комментарий выше в качестве ответа, поскольку он, похоже, решил проблему.)
При использовании встроенной поддержки аутентификации в Azure Bot Service, он полностью обрабатывает перенаправления аутентификации. Итак, ваш зарегистрированный URL перенаправления («URL обратного вызова» в Amazon Cognito?) должно быть https://token.botframework.com/.auth/web/redirect
. Это должен был быть ваш URL-адрес перенаправления, когда вы пробовали его и с AAD, как указано в документации Bot Framework для добавления аутентификации к боту.