Добавьте аутентификацию пользователя в тему, чтобы ваши клиенты могли войти прямо в разговор. Вы можете затем персонализировать разговор с помощью пользовательских переменных и получить доступ к серверным системам от имени пользователя.
Вам необходимо настроить аутентификацию пользователя с помощью Microsoft Entra ID, прежде чем вы сможете использовать аутентификацию в своих темах.
Выполните инструкции в разделе Настройка аутентификации пользователя с помощью Microsoft Entra ID.
Добавление проверки подлинности с системной темой "Вход"
Когда вы создаете помощника, Copilot Studio автоматически добавляет системную тему под названием Вход. Чтобы использовать ее, вы должны установить аутентификацию вашего помощника вручную и потребовать от пользователей входа в систему. Когда клиент начинает разговор с помощником, срабатывает тема Вход и предлагает пользователю войти в систему. Вы можете настроить тему Вход в соответствии с потребностями вашего помощника.
Важно
Рекомендуется, чтобы тема Вход использовалась только для предоставления метода аутентификации, предоставляемого Copilot Studio. Ее не следует изменять для вызова каких-либо других действий или потоков или других методов аутентификации.
Открыв помощник в Copilot Studio, выберите Настройки вверху страницы, затем выберите Безопасность.
Выберите Аутентификация.
Выберите Аутентификация вручную, а затем выберите Требовать входа для пользователей.
Настройте все поля ручной аутентификации по мере необходимости.
Выберите Сохранить.
Добавление проверки подлинности с пользовательской логикой
Тема Вход проверяет подлинность пользователя в начале разговора. Чтобы позволить пользователю войти в систему позже, вы можете добавить узел Аутентификация к любой пользовательской теме.
Когда клиенты вводят свое имя пользователя и пароль, им может быть предложено ввести код проверки. После входа в систему им больше не будет предложено ничего делать, даже если они достигнут другого узла Authenticate .
Выберите Параметры вверху страницы, затем выберите Безопасность.
Выберите плитку Проверка подлинности.
Заметка
Вы должны выбрать Аутентификация вручную, чтобы добавить аутентификацию пользователя в пользовательскую тему.
Снимите флажок Требовать входа для пользователей.
Настройте все поля ручной аутентификации по мере необходимости.
Выберите Сохранить.
Выберите Темы в верхней части страницы.
Выберите Добавить узел ( ) >Расширенные>Аутентификация.
Протестируйте свой тема с пользователем, настроенным с помощью вашего поставщика удостоверений.
Совет
Важно создать пути как для успешного входа, так и для неудачного. Вход может завершиться сбоем по многим причинам, в том числе из-за ошибок при входе в систему поставщика удостоверений.
Переменные аутентификации
При настройке аутентификации пользователя для второго пилота вы можете использовать переменные аутентификации в своих темах. В следующей таблице сравнивается доступность этих переменных в зависимости от выбранного варианта проверки подлинности.
Дополнительную информацию о переменных см. в разделе Работа с переменными.
Переменная аутентификации |
Без аутентификации |
Проверка подлинности через Майкрософт |
Проверка подлинности вручную |
Отображаемое имя пользователя |
Недоступно |
На месте |
На месте |
User.FirstName |
Недоступно |
На месте |
На месте |
User.LastName |
Недоступно |
На месте |
На месте |
User.PrincipalName |
Недоступно |
На месте |
На месте |
User.Email |
Недоступно |
На месте |
На месте |
User.Id |
Недоступно |
На месте |
На месте |
Пользователь.Вошел в систему |
Недоступно |
На месте |
На месте |
Пользователь.AccessToken |
Недоступно |
Недоступно |
На месте |
ВойтиПричина |
Недоступно |
На месте |
На месте |
User.DisplayName
Предупреждение
Эта переменная не обязательно содержит значение. Протестируйте с пользователем от вашего поставщика удостоверений, чтобы убедиться, что тема работает правильно.
Переменная User.DisplayName
содержит отображаемое имя, хранящийся у поставщика удостоверений. Используйте эту переменную для приветствия или обращения к пользователю без необходимости явно давать имя помощнику, что делает разговор более персонализированным.
Copilot Studio автоматически устанавливает значение User.DisplayName
из утверждения name
, предоставленного поставщиком удостоверений, при условии, что область действия profile
была определена при настройке ручной аутентификации. Дополнительную информацию об области действия см. в разделе Настройка аутентификации пользователя с помощью Microsoft Entra ID.
User.Id
Предупреждение
Эта переменная не обязательно содержит значение. Протестируйте с пользователем от вашего поставщика удостоверений, чтобы убедиться, что тема работает правильно.
Переменная User.Id
содержит идентификатор пользователя, хранящийся у поставщика удостоверений. Используйте это значение в потоках Power Automate для вызова API, которые принимают UserID в качестве значения.
Copilot Studio автоматически устанавливает значение User.DisplayName
из утверждения sub
, предоставленного поставщиком удостоверений.
User.IsLoggedIn
User.IsLoggedIn
— это переменная логический, в которой хранится статус входа пользователя. Значение true
указывает, что пользователь вошел в систему. Вы можете использовать эту переменную для создания логики ветвления в своих темах, которая проверяет успешный, или для извлечения информации о пользователе, только если пользователь вошел в систему.
User.AccessToken
Предупреждение
Убедитесь, что вы передаете переменную User.AccessToken
только для доверенных источников. Она содержит информацию об аутентификации пользователя, которая, если она скомпрометирована, может нанести вред пользователю.
Переменная User.AccessToken
содержит токен пользователя, полученный после входа пользователя в систему. Вы можете передать эту переменную в потоки Power Automate, чтобы они могли подключаться к серверным API-интерфейсам и получать информацию о пользователе или выполнять действия от имени пользователя.
Не используйте User.AccessToken
в узлах Сообщение или в потоках, которым вы не доверяете.
SignInReason
SignInReason
— это переменная выбора, которая указывает, когда пользователь должен войти в систему. Возможные значения:
SignInRequired
указывает, что пользователь должен войти в систему в начале разговора, используя log in системная тема. Требовать от пользователей входа в систему должно быть включено.
Initializer
указывает, что когда пользователь не вошел в систему и достигает точки в разговоре, в которой используются переменные аутентификации, ему предлагается войти в систему.
Переменные аутентификации
Если ваш второй пилот настроен с параметрами аутентификации Аутентификация с помощью Microsoft или Ручная , в ваших темах доступен набор переменных аутентификации. Для получения дополнительной информации о том, как настроить аутентификацию в вашем помощнике, см. раздел Настройка проверки подлинности пользователей в Copilot Studio.
В следующей таблице сравнивается доступность переменных аутентификации по параметрам конфигурации аутентификации:
Переменная аутентификации |
Без аутентификации |
Проверка подлинности через Майкрософт |
Вручную |
User.DisplayName |
❌ |
✔️ |
✔️ |
User.Id |
❌ |
✔️ |
✔️ |
User.IsLoggedIn |
❌ |
❌ |
✔️ |
User.AccessToken |
❌ |
❌ |
✔️ |
Переменная UserDisplayName
Переменная User.DisplayName
содержит отображаемое имя пользователя, хранящееся в поставщике удостоверений. Вы можете использовать эту переменную для приветствия или обращения к конечному пользователю без необходимости явно сообщать об этом помощнику, что делает его более персонализированным.
Это значение поля получается из утверждения Microsoft Entra ID name
. Для OAuth поставщиков это значение сохраняется в name
заявке. Copilot Studio автоматически извлекает это поле в переменную, поэтому убедитесь, что у вас есть profile
как часть настройки области аутентификации.
Переменная UserID
Переменная User.Id
содержит идентификатор пользователя, хранящийся в поставщике удостоверений. Power Automate Потоки могут использовать это значение для вызова API, которые принимают UserID в качестве значения.
Это значение поля получается из утверждения Microsoft Entra ID sub
. Для OAuth поставщиков это значение сохраняется в sub
заявке. Copilot Studio автоматически извлекает это поле в переменную.
Предупреждение
Заполнение переменных User.DisplayName
и User.Id
не гарантируется, и они могут быть пустыми строками в зависимости от конфигурации пользователя в поставщике удостоверений. Протестируйте с пользователем от вашего поставщика удостоверений, чтобы убедиться, что ваши темы работают правильно, даже если эти переменные пусты.
Переменная IsLoggedIn
Переменная User.IsLoggedIn
указывает, вошел ли пользователь в систему (в результате входа в систему или уже будучи входящим в систему, что также известно как путь успешного входа) или не вошел в систему (что приведет к пути неудачного входа).
User.IsLoggedIn
— это переменная логический, содержащая статус входа пользователя в систему. Вы можете использовать эту переменную для создания логики ветвления в своих темах, которая проверяет успешный вход (например, в шаблоне, уже предоставленном как часть добавления узла Проверить подлинность), или для рационального извлечения информации о пользователе, только если пользователь вошел в систему.
Переменная User.AccessToken
Переменная User.AccessToken
содержит токен пользователя, полученный после входа пользователя в систему. Вы можете передать эту переменную в потоки Power Automate, чтобы они могли подключаться к серверным API-интерфейсам и получать информацию о пользователе или выполнять действия от имени пользователя.
Предупреждение
Убедитесь, что вы передаете переменную User.AccessToken
только для доверенных источников. Она содержит информацию об аутентификации пользователя, которая, если она скомпрометирована, может нанести вред пользователю.
Не используйте User.AccessToken
внутри узлов Сообщение или в потоках, которым вы не доверяете.
Проверка переменных аутентификации
По умолчанию панель Тестирование бота использует учетную запись текущего вошедшего в систему пользователя для заполнения переменных User.DisplayName
и User.Id
. Однако при тестировании тем, в которых используется проверка подлинности, вы можете захотеть использовать другие значения для этих переменных (или даже пустое значение).
Например, вы можете захотеть проверить, как используются специальные символы или что происходит, если переменная пуста.
В следующей таблице перечислены команды для заполнения этих переменных. Эти команды применяются только к панели Тестирование бота ; их нельзя использовать в опубликованном втором пилоте, развернутом на канале.
Введите нужную команду в панель Тестирование бота так же, как если бы вы обычно общались со вторым пилотом. В случае успеха вы получите подтверждающее сообщение от помощника. Если ваш помощник не использует аутентификацию, вы получите сообщение об ошибке.
Если вы сбросите панель Тестирование бота (или внесете изменения в тема, которые приведут к автоматическому сбросу Тестирование бота ), вам придется отправить команды еще раз.
Переменная |
Команда настраиваемого значения |
Команда пустого (отсутствующего) значения |
User.DisplayName |
/debug set bot.UserDisplayName "Value" |
/debug set bot.UserDisplayName "" |
User.Id |
Недоступно |
/debug set bot.UserID "" |
Важно
По соображениям безопасности вы не можете заполнить User.Id
переменную пользовательским значением (кроме пустого или незаполненного значения).
Аутентификация при использовании «Аутентификация с помощью Microsoft»
Если для параметра аутентификации установлено значение Аутентификация с помощью Microsoft, вам не нужно явно добавлять аутентификацию в свои темы. В этой конфигурации любой пользователь в Microsoft Teams автоматически входит в систему с использованием учетных данных Teams, и ему не нужно явно входить в систему с помощью карточки аутентификации. Если ваш параметр аутентификации установлен на Вручную, то вам необходимо добавить узел Аутентификация (даже для канала Teams).
Заметка
Если для параметра аутентификации установлено значение Аутентификация с помощью Microsoft, у вас нет возможности явно добавлять аутентификацию в свои темы.
Добавление аутентификации конечных пользователей в тему
Узел Аутентификация предлагает пользователю войти в систему с помощью имени пользователя карточка. После того как пользователь вошел в систему, ему больше не будет предложено подтвердить свою личность, даже если он достигнет другого узла Authenticate .
Когда пользователь вводит свое имя пользователя и пароль в приглашении (размещенном у поставщика удостоверений), ему может быть предложено ввести проверочный код, в зависимости от канала. Некоторые каналы, такие как Microsoft Teams, не требуют от пользователя кода подтверждения.
Если у вашего помощника настроен SSO, пользователю не будет предлагаться войти в систему.
Чтобы добавить узел Authenticate в ваш тема:
Перейдите на страницу Темы для помощника, которого вы хотите редактировать.
Откройте тема, в который вы хотите добавить шаблон аутентификации.
Заметка
Если ваш помощник подключен к Dynamics 365 Customer Service, узел проверки подлинности не может быть частью пути разговора, которому следует помощник при первоначальном приветствии пользователей; в противном случае карточка входа будет показана дважды. Вместо этого следует добавить узел Authenticate к другому тема, который запускается пользователем ответ.
Выберите Добавить узел (+), чтобы добавить узел сообщения. Введите то, что помощник должен сказать, чтобы указать, что взаимодействие входа собирается произойти.
Под узлом сообщения выберите Добавить узел (+), выберите Вызвать действие, затем выберите Аутентификация.
Заметка
Узел Аутентифицировать доступен только в окне выбора действий в конце дерева диалога (как листовой узел). Его нельзя добавить в середину диалога. После добавления под ним могут быть добавлены другие узлы.
Новые узлы появляются автоматически: узел родительский элемент Authenticate , за которым следуют узлы для успешного пути и неудачного пути.
Использование User.AccessToken без узла Authenticate
Переменные User.IsLoggedIn
и User.AccessToken
доступны, даже если вы не используете шаблон, предоставленный пунктом меню Вызов действия . Если вы передадите переменную User.AccessToken
без предварительного прохождения пользователем узла Authenticate , пользователю будет предложено войти в систему на этом шаг.
Передача переменной User.AccessToken
может быть полезна, если вы всегда ожидаете, что пользователь войдет в систему, или если ваш пользователь перенаправляется с другого тема. Мы предлагаем вам использовать шаблон, предоставленный записью Вызов действия, для обработки случаев, когда пользователь не вошел в систему.
Заметка
Если пользователь выходит из системы во время разговора, ему будет предложено войти снова, если тема попадет на узел, использующий переменную User.AccessToken
.
Путь успеха
Путь успеха соответствует тому, где User.IsLoggedIn = True
и учитывает, когда пользователь успешно вошел в систему (или уже вошел в систему).
Если у вас есть логика, которая использует переменную User.AccessToken
(например, для подключения к внутренней системе с использованием потока для извлечения информации о пользователе), она должна проходить по этому пути.
Путь неудачи
Путь неудачи соответствует любому условию, кроме IsLoggedIn = True
. В большинстве случаев сбой происходит из-за того, что пользователь не смог войти в систему, использовал неправильный пароль или отменил вход.
Добавьте любую логику, которая может потребоваться для обработки этого случая. В качестве примера мы предоставили варианты для повторения или передачи агенту-человеку. Настройте действия пути сбоя для вашего конкретного сценария и использования.
Тестирование вашей темы
Обязательно проверьте свою тему с использованием реального пользователя, настроенного в вашем поставщике идентификации. Убедитесь, что реализованы как успешные, так и неудачные пути входа, чтобы не было никаких сюрпризов, если пользователь не сможет войти в систему или возникнет ошибка при входе в систему поставщика удостоверений.