Часто задаваемые вопросы о безопасности и конфиденциальности Bot Framework

В этой статье содержатся ответы на часто задаваемые вопросы о безопасности и конфиденциальности.

применимо к: Пакет SDK v4APPLIES TO: SDK v4

Собирают ли боты, зарегистрированные в Bot Framework, личную информацию? Если да, то как можно убедиться в том, что данные сохранены надежно и безопасно? Как насчет конфиденциальности?

Каждый бот имеет собственную службу, и разработчики этих служб обязаны предоставлять условия обслуживания и заявление о конфиденциальности в соответствии с правилами поведения разработчиков. См. руководство по программированию ботов.

Могу ли я разместить бот на своих серверах?

Да. Вы можете разместить свой бот в любом расположении в Интернете. На собственных серверах, в Azure или в любом другом центре обработки данных. Нужно только, чтобы бот предоставлял общедоступную конечную точку HTTPS.

Как вы блокируете или удаляете боты из службы?

Пользователи могут сообщить о некорректно работающем боте с помощью карты контакта бота в каталоге. Разработчики должны соблюдать условия предоставления услуг Майкрософт, чтобы участвовать в предоставлении службы.

Какие конкретные URL-адреса нужно разрешить в моем корпоративном брандмауэре для доступа к службам платформы Bot?

Если у вас есть исходящий брандмауэр, блокирующий трафик от программы-робота к Интернету, необходимо разрешить в этом брандмауэре перечислить следующие URL-адреса:

  • login.botframework.com (аутентификация бота)
  • login.microsoftonline.com (аутентификация бота)
  • westus.api.cognitive.microsoft.com (для интеграции Luis.ai NLP)
  • *.botframework.com (каналы)
  • state.botframework.com (обратная совместимость)
  • login.windows.net (имя входа Windows)
  • login.windows.com (имя входа Windows)
  • sts.windows.net (имя входа Windows)
  • Дополнительные URL-адреса для конкретных каналов Bot Framework

Примечание

Вы можете использовать, <channel>.botframework.com Если вы не хотите допустить вывод URL-адреса со звездочкой. <channel> равен любому каналу, используемому вашим ботом, например directline.botframework.com, webchat.botframework.com и slack.botframework.com. Кроме того, при тестировании бота важно наблюдать за трафиком, поступающим в брандмауэр, проверяя, чтобы ничего лишнего не было заблокировано.

Можно ли заблокировать весь входящий трафик бота, кроме трафика от Bot Framework Service?

Службы платформы Bot размещаются в общедоступных центрах обработки данных Azure, и список IP-адресов Azure постоянно меняется. Это означает, что список определенных IP-адресов может работать в течение одного дня и разрывать его после изменения IP-адресов Azure.

Какая роль RBAC нужна для создания и развертывания бота?

Для создания бота на портала Azure требуется доступ уровня участника в подписке или соответствующей группе ресурсов. Пользователь с ролью Участник в группе ресурсов может создавать боты только в этой конкретной группе ресурсов. Пользователь с ролью Участник в подписке может создать боты в любой существующей или новой группе ресурсов.

Управление доступом на основе ролей при работе с Azure CLI может поддерживать пользовательские роли. Если вы хотите создать пользовательскую роль с более ограниченными разрешениями, указанный ниже набор позволяет пользователю создать и развернуть робот, который также поддерживает LUIS, QnA Maker и Application Insights.

"Microsoft.Web/ ", "Microsoft.BotService/ ", "Microsoft.Storage/ ", "Microsoft.Resources/deployments/ ", "Microsoft.CognitiveServices/ ", "Microsoft.Search/searchServices/ ", "Microsoft.Insights/ ", "Microsoft.Insights/components/ "

Примечание

Для LUIS и QnA Maker требуются разрешения Cognitive Services. Для QnA Maker также требуются разрешения на поиск. При создании пользовательской роли Помните, что все унаследованные разрешения Deny будут заменять эти разрешения .

Какие есть способы защиты от клиентов, олицетворяющих Bot Framework Service?

  1. Все подлинные запросы к платформе Bot сопровождаются маркером JWT, криптографическую подпись которого можно проверить, следуя руководству по проверке подлинности . Этот маркер разработан таким образом, что злоумышленники не могут олицетворять доверенные службы.
  2. Маркер безопасности, который указан в каждом запросе к боту содержит закодированный URL-адрес службы (ServiceUrl). Это означает, что даже если злоумышленник получит доступ к маркеру, он не сможет перенаправить диалог на новый URL-адрес службы. Это реализовано во всех пакетах SDK и описано в наших справочных материалах по аутентификации.
  3. Если входящий маркер отсутствует или имеет неправильный формат, пакет SDK для Bot Framework не создаст маркер в ответ. Это позволяет ограничить ущерб, если бот настроен неправильно.
  4. В боте вы можете вручную проверить, указан ли параметр ServiceUrl в маркере. В результате бот станет более уязвимым, если топология службы изменится. То есть это возможно, но не рекомендуется.

Примечание

Это исходящие подключения из программы-робота к Интернету. Списка IP-адресов или DNS-имен, которые служба Bot Framework Connector будет использовать для обращения к боту, нет. Список разрешений входящих IP-адресов не поддерживается.

Какова цель волшебного кода во время проверки подлинности?

В элементе управления "веб-чат" есть два механизма, которые гарантируют, что пользователь вошел в подходящую учетную запись.

  1. Волшебный код. В конце процесса входа пользователю предоставляется случайный код из 6 цифр (волшебный код). Пользователь должен ввести этот код в диалоге, чтобы завершить процесс входа. Это приводит к неправильному опыту пользователя. Кроме того, он обычно подвергается фишинговым атакам. Злоумышленник может обманным путем вынудить другого пользователя выполнить вход, чтобы получить магический код путем фишинга.

    Предупреждение

    Использование волшебного кода является устаревшим. Вместо этого следует использовать прямую линейную проверку подлинности, описанную ниже.

  2. Прямая строка Расширенная проверка подлинности. Из-за проблем с методом волшебного кода служба Azure Bot удалила свою потребность. Служба Azure Bot гарантирует, что процесс входа может выполняться только в том же сеансе браузера, в котором запущен экземпляр Web Chat. Чтобы включить эту защиту, необходимо запустить веб-чат с прямым маркером , который содержит список доверенных источников, также известных как доверенные домены, на которых может размещаться клиент Интернет-чата. С помощью расширенных параметров проверки подлинности можно статически указать список доверенных источников на странице конфигурации с прямой линией. Дополнительные сведения см. в разделе Прямая строка Расширенная проверка подлинности.

Как с помощью платформы Bot управлять удостоверениями и доступом?

Управление удостоверениями и доступом (IAM) — это платформа (политики и технологии), позволяющая соответствующим пользователям иметь доступ к технологическим ресурсам. Дополнительные сведения см. в разделе Управление удостоверениями.

Платформа Bot предоставляет следующие механизмы идентификации:

  • Проверка подлинности с помощью Bot. Определяет, поступил ли запрос от легального источника. Он управляется службой соединителя Bot и обеспечивает безопасный обмен данными между Bot и каналом. Дополнительные сведения см. в статье Bot Authentication.

  • Проверка подлинности пользователя. Он позволяет Bot получать доступ к защищенным сетевым ресурсам от имени пользователя. Стандарт OAuth отраслевого стандарта используется для проверки подлинности пользователя и авторизации программы-робота для доступа к ресурсам. Дополнительные сведения см. в разделе Проверка подлинности пользователя.

В целом, платформа Bot обрабатывает проверку подлинности между службами (Bot-аутентификация), по сути проверяя, что запрос действительно был получен из правильного канала. Bot отвечает за обработку более низких уровней проверки подлинности. Вы можете применить фильтр, чтобы ваш Bot принимал запросы только от конкретного идентификатора клиента, или потребовать от пользователей пройти проверку подлинности с помощью определенной службы OAuth (проверка подлинности пользователя).

Разделы справки запретить использование программы Bot пользователям, принадлежащим только к моему клиенту?

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

  • При работе с защищенными данными для проверки подлинности пользователей определенно рекомендуется использовать OAuth.

  • Использование по промежуточного слоя является еще одним хорошим вариантом. Например, в случае канала команд добавьте TeamsTenantFilteringMiddleware класс в Bot и подпишите его в методе запуска. См. следующие примеры: версия C#, версия JavaScript.

    Предупреждение

    Нельзя запретить командам отправлять вам сообщения от разных клиентов, а также предотвратить установку программы-робота, если у них есть манифест приложения. Все, что можно сделать, — предотвратить обработку нежелательных сообщений программой Bot.