Настройка безопасности для веб-каналов и каналов Direct Line

При создании агента Copilot Studio любой, кто знает идентификатор агента, может немедленно получить доступ к агенту через каналы Демонстрационный сайт и канал Пользовательский сайт. Эти каналы доступны по умолчанию, и их настройка не требуется.

Для приложения Microsoft Teams вы можете настроить расширенные параметры безопасности веб-канала.

Заметка

Если у вас есть только лицензия Teams, вы не можете создавать секреты для обеспечения безопасного доступа. Токены безопасного доступа создаются автоматически, а безопасный доступ включен по умолчанию.

Пользователи могут найти идентификатор агента прямо в Copilot Studio или получить его от кого-то. Но, в зависимости от возможностей и конфиденциальности агента, такой доступ может быть нежелательным.

Безопасность на базе Direct Line позволяет разрешить доступ только в те места, которые вы контролируете, реализовав безопасный доступ с использованием секретов или токенов Direct Line.

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

Примечание.

Copilot Studio использует канал Bot Framework Direct Line для подключения вашей веб-страницы или приложения к агенту.

Включение или отключение безопасности веб-канала

Вы можете принудительно использовать секреты и токены для каждого отдельного агента.

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

Попытки получить доступ к агенту, который не реализует эту меру безопасности, будут безрезультатными.

  1. Перейдите на страницу Параметры агента, выберите Безопасность, а затем выберите Безопасность веб-канала.

Снимок экрана с выделенным пунктом

  1. Включите Требовать защищенный доступ.

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

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

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

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

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

Использование секретов или токенов

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

Если вы создаете приложение, в котором клиент работает в веб-браузере или мобильном приложении, или его код как-то иначе может быть виден клиентам, вы должны изменить свой секрет на токен. Если вы не используете токен, ваш секрет может быть скомпрометирован. Когда вы делаете запрос на получение токена в своей службе, укажите секрет в заголовке авторизации.

Токены работают только для одного разговора, и их срок действия истечет, если они не будут обновлены.

Выберите модель безопасности, которая лучше всего подходит для вашей ситуации.

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

Не раскрывайте секрет в каком-либо коде, который выполняется в браузере, — ни в жестко закодированном виде, ни путем передачи через сетевой вызов.

Получение токена с использованием секрета в вашем служебном коде — наиболее надежный способ защитить вашего агента Copilot Studio.

Получение секретов

Вам требуется секрет, чтобы вы могли указать его в запросах заголовка авторизации вашего приложения или аналогичных.

  1. В меню навигации в разделе Параметры выберите Безопасность. Затем выберите плитку Безопасность веб-канала.

  2. Выберите Копировать для Секрет 1 или Секрет 2, чтобы скопировать его в буфер обмена. Выберите значок видимости , чтобы показать секрет. Перед тем, как вы сможете ее показать, появляется предупреждение.

Обмен секретов

Если вам нужно изменить секрет, используемый агентом, вы можете сделать это без простоев или перерывов.

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

Повторно создать секрет

Чтобы повторно создать секрет, выберите Повторно создать рядом с секретом.

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

Профиль пользователя, подключенного с использованием исходного секрета или токена, полученного из этого секрета, отключается.

Генерация токена

Вы можете сгенерировать токен, используемый при запуске одного разговора с агентом. Подробнее см. в разделе Получение токена Direct Line в статье Публикация агента в мобильных или пользовательских приложениях.

  1. Получите секрет.

  2. В своем служебном коде отправьте следующий запрос, чтобы обменять секрет на токен. Замените <SECRET> значением секрета, полученным на шаге 1.

    POST https://directline.botframework.com/v3/directline/tokens/generate
    Authorization: Bearer <SECRET>
    

Следующие фрагменты кода содержат примеры сгенерированного запроса токена и его ответа.

Пример запроса на создание токена

POST https://directline.botframework.com/v3/directline/tokens/generate
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0

Пример ответа на запрос на создание токена

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
  "expires_in": 1800
}

Если запрос успешен, ответ содержит токен, действительный для одного разговора, и значение expires_in, указывающее количество секунд до истечения срока действия токена.

Чтобы токен оставался пригодным к использованию, необходимо обновить токен до истечения срока его действия.

Обновление токена

Токен можно обновлять неограниченное количество раз, пока не истечет срок его действия.

Обновить просроченный токен невозможно.

Чтобы обновить токен, отправьте следующий запрос и замените <TOKEN TO BE REFRESHED> токеном, который вы хотите обновить.

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer <TOKEN TO BE REFRESHED>

Следующие фрагменты кода содержат примеры запроса на обновление токена и его ответа.

Пример запроса на обновление

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer CurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn

Пример ответа на запрос обновления

Если запрос успешен, ответ содержит новый токен, действительный для того же разговора, что и предыдущий токен, и значение expires_in, указывающее количество секунд до истечения срока действия нового токена.

Чтобы токен оставался пригодным к использованию, обновляйте токен снова, пока не истечет срок его действия.

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xniaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0",
  "expires_in": 1800
}

Дополнительные сведения об обновлении токена см. в разделе Обновление токена Direct Line в статье Direct Line API — Аутентификация.