Настройка параметров проверки подлинности
Многоканальное взаимодействие для Customer Service предлагает набор возможностей, которые расширяют возможности Dynamics 365 Customer Service Enterprise, позволяя организациям мгновенно подключаться и взаимодействовать со своими клиентами по каналам обмена цифровыми сообщениями. Для доступа к многоканальному взаимодействию для Customer Service требуется дополнительная лицензия. Для получения дополнительной информации см. страницы Обзор цен на Dynamics 365 Customer Service и План цен на Dynamics 365 Customer Service.
Относится к: Dynamics 365 Contact Center — встроенный, Dynamics 365 Contact Center — автономный и Dynamics 365 Customer Service
Можно сформировать параметры проверки подлинности для проверки выполнившего вход клиента из домена и извлекать информацию на основе определенных переменных контекста. Вы можете различать своих анонимных клиентов от клиентов с проверкой подлинности и создавать правила на основе переменных контекста.
Например, можно создать отдельные очереди для анонимных клиентов и клиентов с проверкой подлинности. Поскольку у вас будет больше информации о ваших клиентах с проверкой подлинности, вы также можете назначить им приоритеты на основе определенных переменных, например значения корзины или привилегированное статус.
После создания записи параметров проверки подлинности необходимо добавить ее в экземпляр канала в настройках канала рабочего потока, чтобы она заработала. Аутентификация поддерживается для следующих каналов:
- Чат
- Apple Messages for Business
Чтобы указать, прошел ли клиент проверку подлинности, агент получает уведомление в разделе Сводка разговора. Поле Проверка подлинности выполнена устанавливается на Да или Нет на основе статуса проверки подлинности клиента. Подробнее см. в разделе Сводка разговоров
Предварительные требования
- Убедитесь, что в вашей организации есть практические знания по OAuth 2.0 и веб-токенам JSON Web Token (JWT).
- Убедитесь, что у вас есть разрешения на защищенные столбцы. Дополнительные сведения см. в статье Настройка разрешений на доступ к защищенным столбцам
Создание записи параметров проверки подлинности для чата
Вы можете создать запись настройки проверки подлинности чата в приложении администрирования:
На карте сайта центра администрирования Customer Service выберите Параметры клиентов в разделе Служба поддержки клиентов. Открывается страница Параметры клиентов.
В разделе Параметры проверки подлинности выберите Управление. Откроется страница Параметры проверки подлинности.
Выберите Создать параметры проверки подлинности и введите следующие сведения на странице Добавление параметров проверки подлинности:
Имя: введите имя параметра проверки подлинности.
Владелец: примите значение по умолчанию или измените значение на необходимое.
Тип аутентификации: по умолчанию OAuth 2.0, редактировать нельзя.
URL-адрес открытого ключа: укажите URL-адрес открытого ключа домена. Этот URL-адрес используется для проверки информации, получаемой от веб-токена (JWT) JavaScript Object Notation (JSON) домена, в который выполнил вход клиент.
Функция клиента JavaScript: определите функцию клиента JavaScript для использования для проверки подлинности. Эта функция извлекает токен из конечной точки токена.
Подробнее о том, как найти URL-адрес открытого ключа и функцию клиента JavaScript, см. в разделах Настройка для порталов Power Apps или Настройка для настраиваемых порталов далее в данной статье.
Выберите Сохранить.
Создание записи параметров проверки подлинности для чата с помощью OAuth 2.0
Выполните шаги с 1 по 3 раздела Создание записи параметров проверки подлинности для чата и введите следующие сведения на странице Добавление параметра проверки подлинности:
- Имя: имя параметра проверки подлинности.
- Тип канала: чат в реальном времени.
- Тип проверки подлинности: OAuth 2.0
Выберите Далее и на странице Сведения введите следующую информацию:
- Пользовательское действие токена: ссылка на пользовательский код для проверки токенов, предоставленных вашим поставщиком удостоверений, и возврата идентификатора пользователя, прошедшего проверку подлинности.
- URL-адрес токена: URL-адрес, используемый для обмена кода авторизации на токен, переданный вашему пользовательскому действию для получения идентификатора пользователя.
- URL-адрес перенаправления: URL-адрес, переданный в исходный запрос кода авторизации, который является обязательным параметром в вызовах конечной точки обмена токенами.
- Идентификатор клиента: идентификатор клиента, переданный в конечную точку обмена токенами.
- Секрет клиента: секрет, который аутентифицирует клиента, переданного в конечную точку обмена токенами.
- Область: области, для которых пользователь авторизован с помощью токена, полученного в потоке.
Сохраните изменения.
Добавить проверку подлинности в мини-приложение чата
В Центре администрирования Customer Service отредактируйте мини-приложение чата в настройках рабочего потока, затем перейдите на вкладку Поведение.
В поле Параметры проверки подлинности найдите и выберите запись аутентификации для чата.
Когда выполнивший вход клиент на портале открывает мини-приложение чата, функция клиента JavaScript передает JWT от клиента к серверу. JWT расшифровывается и проверяется с использованием открытого ключа, а затем информация передается агенту чата в многоканальном взаимодействии для обслуживания клиентов. Как администратор, вы также можете передавать дополнительную информацию о выполнившем вход клиенте в JWT путем определения настраиваемых переменных контекста. Переменные контекста должны определяться точно так же, как они определены в рабочем потоке, связанном с мини-приложением чата. Подробнее см. в разделе Управление переменными контекста
Настройка для порталов Power Apps
При добавлении проверки подлинности для мини-приложения чата на веб-сайте, разработанном с использованием порталов Power Apps, URL-адрес открытого ключа и функция клиента JavaScript доступны по умолчанию. Необходимо отправить пользовательский сертификат, чтобы иметь действительный URL-адрес открытого ключа на порталах Power Apps.
-
URL-адрес открытого ключа:
<portal_base_URL>/_services/auth/publickey
-
Функция клиента JavaScript:
auth.getAuthenticationToken
Для готового портала Power Apps клиентская функция JavaScript возвращает маркер, который по умолчанию имеет соответствующее утверждение для связывания записи контакта с разговором. Этот маркер содержит утверждение sub с идентификатором контакта вошедшего в систему пользователя. Это вложенное утверждение предоставляет уникальный идентификатор для многоканального взаимодействия для автоматической идентификации и связывания записи контакта из вашей среды Dataverse. Дополнительные сведения см. в таблице следующего раздела.
Настройка для пользовательских порталов
Если вы добавляете чат с аутентификацией на настраиваемый веб-сайт, который не был разработан с использованием порталов Power Apps, вашей рабочей группе веб-разработчиков необходимо выполнить следующие шаги, прежде чем ваш администратор сможет настроить чат с аутентификацией:
Создайте пару из открытого и закрытого ключей на своих серверах аутентификации. Ключи должны быть сгенерированы с использованием алгоритма RSA256.
Следующий пример кода предназначен для генерации пар закрытого/открытого ключа.
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048 openssl rsa -pubout -in private_key.pem -out public_key.pem
Создайте конечную точку, который возвращает ваши открытые ключи. Серверы Многоканального взаимодействия используют открытые ключи для проверки токена JWT, переданного как часть авторизации запроса чата. Вы вводите URL-адрес этой конечной точки в приложение администрирования при создании записи настройки аутентификации.
Ваша конечная точка открытого ключа выглядит аналогично этому примеру:
-----BEGIN PUBLIC KEY----- NIIBIjANBgkqhkiG9w0BAQEFABCOPQ8AMIIBCgKCAQEAn+BjbrY5yhSpLjcV3seP mNvAvtQ/zLwkjCbpc8c0xVUOzEdH8tq4fPi/X5P/Uf2CJomWjdOf1wffmOZjFasx ELG+poTqy5uX2dNhH6lOMUsV31QGG36skLivpLBCSK6lWlzsV6WGkb/m8r86aGzp jtNhw8yvoTYB4updDrJ8pC+tx4EWK0WEmKn1GsW6TjUtxJjcTLI1puSbmcGHbkSi RSbWkKPqaEVFALprw+W5ZCung5QX3KOkY/rJd+2JwULm7okyQCQaF7qwa5i9Uf65 7M6ZL4vsDevq7E/v3tf6qxpSSHzt4XspXVQty9QHhqDqBEY3PfI4L2JjgIGuPhfS YQIDAQAB -----END PUBLIC KEY-----
Если вам нужно использовать несколько открытых ключей, ваша конечная точка открытого ключа может возвращать набор пар <kid, publickey>
, где kid
обозначает идентификатор ключа. Пары идентификаторов ключей должны быть уникальными. Идентификатор ключа должен быть передан в маркере JWT на шаге 4. Если вы используете несколько ключей, ваша конечная точка открытого ключа должна возвращать что-то похожее на следующий пример. Открытый ключ кодируется в кодировке Base64.
[
{
"kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp4in7hu4=",
"publicKey": LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",
"expiry": 1608495423
},
{
"kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp__valid=",
"publicKey": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",
"expiry": 1608495423
}
]
Вам нужная служба, которая генерирует JWT для отправки на серверы многоканального взаимодействия как часть запуска чата для аутентифицированного пользователя.
a. Заголовок JWT выглядит аналогично следующему примеру.
{ "alg": "RS256", "typ": "JWT", }
Если вы используете несколько открытых ключей, вам необходимо передать идентификатор ключа (KID). Ваш заголовок выглядит аналогично следующему примеру:
{ "alg": "RS256", "typ": "JWT", "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp4in7hu4=" }
b. Полезные данные JWT должны включать:
Как минимум, следующие утверждения:
Утверждение Определение iss Издатель токена. iat Дата выпуска токена в числовом формате даты. exp Дата истечения срока действия этого токена, в числовом формате даты. дочерний объект Тема утверждения.
ПРИМЕЧАНИЕ. Мы рекомендуем передать GUID записи контакта или учетной записи в Customer Service для вошедшего в систему пользователя. Этот GUID используется для идентификации и связывания записи контакта с разговором. Поиск записей позволяет идентифицировать записи с активным кодом состояния для контактов или организаций. Идентификация записей не работает при использовании пользовательских кодов состояния.lwicontexts Переменные контекста, которые передаются как часть разговора либо для целей маршрутизации, либо для отображения агенту.
Дополнительные сведения см. на странице
Управление пользовательским контекстом
Метод setAuthTokenProvider
Автоматическая идентификация записей с помощью переменных контекстаЛюбые другие данные, которые вы хотите передать.
Ваши полезные данные должны выглядеть аналогично следующему примеру:
{ "sub" : "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\", \"portalcontactid\":\"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb\"}", "iat" : 1542622071, "iss" : "contosohelp.com", "exp" : 1542625672, "nbf" : 1542622072 }
c. Подпись JWT должна быть подписана вашим закрытым ключом.
Заметка
- Если срок действия токена истек или он недействителен, мини-приложение чата выдает событие ошибки.
- Метод setContextProvider не поддерживается для аутентифицированного чата. Вы должны передавать свои lwicontext как часть полезных данных JWT.
Создайте на своем веб-сайте функцию JavaScript, которая принимает функцию обратного вызова и возвращает JWT в функцию обратного вызова. Чтобы избежать тайм-аута, эта функция JavaScript должна возвращать JWT в течение 10 секунд. Этот маркер JWT должен отвечать следующим условиям:
Он должен содержать заголовок, полезные данные и подпись из шага 3.
Он должен быть подписан закрытым ключом из пары ключей на шаге 1.
Мы рекомендуем сгенерировать ваш JWT на вашем веб-сервере.
Имя этого метода JavaScript используется для создания записи настроек аутентификации в приложении администрирования Customer Service.
// This is a sample JavaScript client function auth.getAuthenticationToken = function(callback){ var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { callback(xhttp.responseText); } }; xhttp.onerror = function(error) { callback(null); }; //Replace this with a call to your token generating service xhttp.open("GET", "https://contosohelp.com/token", true); xhttp.send(); }
Ваш разработчик должен предоставить вашему администратору многоканального взаимодействия следующую информацию:
a. URL-адрес службы открытого ключа из шага 2.
Пример: https://www.contoso.com/auth/publickey
b. Имя клиентской функции JavaScript из шага 4. Мини-приложение чата производит внутренний вызов этого имени во время начала чата.
Пример: auth.getAuthenticationToken
Заметка
Если ваш пользовательский интерфейс открывает кнопку чата до того, как пользователи будут аутентифицированы, обязательно перенаправьте их на свою страницу аутентификации по мере необходимости. Вы можете настроить это перенаправление в методе на шаге 4 или на более раннем этапе пользовательского потока.
Следующий рисунок демонстрирует такую настройку.
Затем вы можете настроить чат с аутентификацией, выполнив следующие действия:
Настройка чата с аутентификацией
Перейдите в приложение администрирования и создайте запись настроек аутентификации с информацией из шага 5 из предыдущего раздела. Подробнее см. в разделе Создание записи параметров проверки подлинности для чата
Свяжите настройки аутентификации с мини-приложением чата, в котором используется аутентификация. Дополнительные сведения см. в разделе Добавление аутентификации в мини-приложение чата
На следующем рисунке показана последовательность вызовов, когда пользователь обращается к вашему чату в настройке с аутентификацией.
Создание параметров проверки подлинности для Apple Messages for Business
Предварительные требования
Администраторам, которые настраивают параметры проверки подлинности, требуются дополнительные разрешения безопасности. Подробнее см. в разделе Настройка разрешений безопасности для поля
Убедитесь, что в вашей организации есть практический опыт работы с потоком OpenID Connect OAuth 2.0. Шаги рассматриваются в следующем разделе.
Убедитесь, что в вашей организации есть хотя бы одно Функциональное сообщение типа проверки подлинности Apple Messages for Business. Эта расширенная конфигурация сообщений необходима для настройки.
Создание записи параметров проверки подлинности для Apple Messages for Business с помощью потока OpenID connect OAuth 2.0
На карте сайта центра администрирования Customer Service выберите Параметры клиентов, а затем выберите Управление параметрами аутентификации. Отображается список существующих параметров проверки подлинности.
Выберите Новый параметр проверки подлинности и на странице Добавить параметр проверки подлинности укажите следующие данные:
На странице Тип канала введите имя, затем выберите Apple Messages for Business в качестве типа канала.
Измените тип проверки подлинности Поток OAuth 2.0 OpenID Connect.
На странице Добавить параметр проверки подлинности укажите следующие сведения:
-
Идентификатор клиента: идентификатор клиента OAuth 2.0, выданный сервером авторизации.
-
Секрет клиента: секрет клиента, используемый для проверки подлинности запросов, отправляемых на сервер авторизации.
-
Область: каждая добавленная область определяет, какие фрагменты пользовательских данных вы запросили у клиента. Содержимое области должно точно соответствовать тому, которое доступно через вашего поставщика услуг.
- URL-адрес маркера доступа: конечная точка поставщика услуг, где можно запросить маркер доступа.
-
URL-адрес расшифрованного маркера: конечная точка, в которой API-интерфейс OAuth 2.0 может получить сведения о клиенте, запрошенные в области.
- Дополнительные параметры: позволяет службам проверки подлинности получать дополнительные параметры из запроса.
-
Идентификатор клиента: идентификатор клиента OAuth 2.0, выданный сервером авторизации.
На странице Дополнительные сведения вы можете дополнительно указать время истечения срока действия токена доступа в секундах. Срок действия по умолчанию составляет один час.
По истечении указанного времени поле Аутентифицировано в разделе Сводка по клиенту ранее прошедшего проверку подлинности разговора изменится на Нет.На странице Функциональные сообщения нажмите кнопку Добавить, затем выберите одно или несколько функциональных сообщений, которые необходимо связать с этим параметром проверки подлинности.
Просмотрите страницу Сводка, затем выберите Далее. Параметр проверки подлинности настроен.
На странице Сведения о перенаправлении скопируйте URL-адрес. Этот URL-адрес добавляется на веб-сайт поставщика услуг проверки подлинности в разделе разрешенных URL-адресов обратного вызова.
Выберите Готово.
Добавление проверки подлинности в канал Apple Messages for Business
Откройте рабочий поток, содержащий экземпляр канала, для которого требуется добавить проверку подлинности.
На странице Поведение параметров канала перейдите в раздел Параметры проверки подлинности, включите эту возможность и выберите правильный параметр в раскрывающемся меню. Подробнее см. в разделе Настройка канала Apple Messages for Business
Чтобы просмотреть или обновить параметры проверки подлинности для каждого экземпляра канала, выберите Изменить.
Дополнительные сведения
Добавление мини-приложения чата
Настройка опроса перед разговором
Создать быстрые ответы
Создание и управление рабочими часами
Внедрение мини-приложения чат в порталы Power Apps
Автоматическая идентификация клиентов