Настройка параметров проверки подлинности

Многоканальное взаимодействие для Customer Service предлагает набор возможностей, которые расширяют возможности Dynamics 365 Customer Service Enterprise, позволяя организациям мгновенно подключаться и взаимодействовать со своими клиентами по каналам обмена цифровыми сообщениями. Для доступа к многоканальному взаимодействию для Customer Service требуется дополнительная лицензия. Для получения дополнительной информации см. страницы Обзор цен на Dynamics 365 Customer Service и План цен на Dynamics 365 Customer Service.

Можно сформировать параметры проверки подлинности для проверки выполнившего вход клиента из домена и извлекать информацию на основе определенных переменных контекста. Вы можете различать своих анонимных клиентов от клиентов с проверкой подлинности и создавать правила на основе переменных контекста.

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

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

  • Чат
  • Apple Messages for Business

Агент получает уведомление в разделе Сводка разговора независимо от того, прошел проверку подлинности клиент или нет. Поле Проверка подлинности выполнена устанавливается на Да или Нет на основе проверки подлинности клиента. Подробнее: Сводка разговоров

Предварительные условия

Создание записи параметров проверки подлинности для чата

Вы можете создать запись настройки проверки подлинности чата в приложении администрирования:

  1. Перейдите в одно из приложений для администрирования и выполните следующие действия.

    1. В карте сайта выберите Параметры клиентов в пункте Служба поддержки клиентов. Открывается страница Параметры клиентов.
    2. В разделе Параметры проверки подлинности выберите Управление.

    Отображается страница Параметры проверки подлинности.

  2. Выберите Создать параметры проверки подлинности и укажите следующие сведения на странице Добавить параметр проверки подлинности:

    • Имя: введите имя параметра проверки подлинности.

    • Владелец: примите значение по умолчанию или измените значение на необходимое.

    • Тип проверки подлинности: по умолчанию это неявный поток OAuth 2.0, который нельзя изменить.

    • URL-адрес открытого ключа: укажите URL-адрес открытого ключа домена. Этот URL-адрес используется для проверки информации, получаемой от веб-токена (JWT) JavaScript Object Notation (JSON) домена, в который выполнил вход клиент.

    • Функция клиента JavaScript: определите функцию клиента JavaScript для использования для проверки подлинности. Эта функция извлекает токен из конечной точки токена.

      Настройка записи параметров проверки подлинности чата.

    Дополнительные сведения о том, как найти URL-адрес открытого ключа и функцию клиента JavaScript, см. в разделе Настройка для порталов Power Apps или Настройка для настраиваемых порталов далее в данной статье.

  3. Выберите Сохранить.

Создание записи настройки с аутентификацией для чата с помощью OAuth 2.0

  1. Выполните шаги с 1 по 3 в разделе Создание записи настройки с аутентификацией для чата и введите следующие данные на странице Добавить настройку аутентификации:

    • Имя: имя параметра проверки подлинности.
    • Тип канала: чат в реальном времени.
    • Тип аутентификации: неявный поток OAuth 2.0
  2. Выберите Далее и на странице Сведения введите следующую информацию:

    • Пользовательское действие токена: ссылка на пользовательский код для проверки токенов, предоставленных вашим поставщиком удостоверений, и возврата идентификатора пользователя, прошедшего проверку подлинности.
    • URL-адрес токена: URL-адрес, который будет использоваться для обмена вашего кода авторизации на токен, переданный в ваше настраиваемое действие для получения идентификатора пользователя.
    • URL-адрес перенаправления: URL-адрес, передаваемый в исходный запрос кода авторизации, который является обязательным параметром при вызовах к конечной точке обмена токенов.
    • Идентификатор клиента: идентификатор клиента, переданный в конечные точки обмена токенов.
    • Секрет клиента: секрет, который аутентифицирует клиента, переданный в конечные точки обмена токенов.
    • Область: области, для которых пользователь авторизован с помощью токена, полученного в потоке.
  3. Сохраните изменения.

Добавить проверку подлинности в мини-приложение чата

  1. В центре администрирования Customer Service отредактируйте мини-приложение чата в настройках рабочего потока и перейдите на вкладку Поведение.

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

Когда выполнивший вход клиент на портале открывает мини-приложение чата, функция клиента JavaScript передает JWT от клиента к серверу. JWT расшифровывается и проверяется с использованием открытого ключа, а затем информация передается агенту чата в многоканальном взаимодействии для обслуживания клиентов. Как администратор, вы также можете передавать дополнительную информацию о выполнившем вход клиенте в JWT путем определения настраиваемых переменных контекста. Переменные контекста должны определяться точно так же, как они определены в рабочем потоке, связанном с мини-приложением чата. Дополнительные сведения: Управление переменными контекста

Настройка для порталов Power Apps

При добавлении проверки подлинности для мини-приложения чата на веб-сайте, разработанном с использованием порталов Power Apps, URL-адрес открытого ключа и функция клиента JavaScript доступны по умолчанию. Вам нужно будет загрузить пользовательский сертификат, чтобы на порталах Power Apps был действительный URL-адрес открытого ключа.

  • URL-адрес открытого ключа: <portal_base_URL>/_services/auth/publickey
  • Функция клиента JavaScript: auth.getAuthenticationToken

Портал Power Apps попытается автоматически связать запись контакта с разговором через контекст, переданный в его клиентской функции JavaScript.

Настройка для пользовательских порталов

Если вы добавляете чат с аутентификацией на настраиваемый веб-сайт, который не был разработан с использованием порталов Power Apps, ваша рабочая группа веб-разработчиков должна выполнить следующие действия, прежде чем ваши администраторы смогут настроить чат с аутентификацией:

  1. Создайте пару из открытого и закрытого ключей на своих серверах аутентификации. Ключи должны быть сгенерированы с использованием алгоритма 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
    
  2. Создайте конечную точку, который вернет ваши открытые ключи. Серверы Многоканального взаимодействия будут использовать открытые ключи для проверки токена 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 обозначает идентификатор ключа. Пары идентификаторов ключей должны быть уникальными. kid нужно будет передать в токен JWT на шаге 4. Если вы используете несколько ключей, ваша конечная точка открытого ключа должна возвращать что-то похожее на это. Открытый ключ кодируется в кодировке Base64.

 [
      { 
          "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp4in7hu4=",
          "publicKey": LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",
          "expiry": 1608495423
      },
 {
          "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp__valid=",
          "publicKey": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",
          "expiry": 1608495423
      } 
 ]
  1. Вам понадобится служба, которая генерирует 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" : "87b4d06c-abc2-e811-a9b0-000d3a10e09e",  
          "lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\", \"portalcontactid\":\"87b4d06c-abc2-e811-a9b0-000d3a10e09e\"}", 
          "iat" : 1542622071, 
          "iss" : "contosohelp.com", 
          "exp" : 1542625672, 
          "nbf" : 1542622072 
      } 
    

    c. Подпись JWT должна быть подписана вашим закрытым ключом.

    Заметка

    • Если срок действия токена истек или он недействителен, мини-приложение чата выдаст событие ошибки.
    • Метод setContextProvider method не поддерживается для аутентифицированного чата. Вы должны передавать свои lwicontext как часть полезных данных JWT.
  2. Создайте на своем веб-сайте функцию JavaScript, которая будет принимать функцию обратного вызова и возвращать JWT в функцию обратного вызова. Чтобы избежать тайм-аута, эта функция JavaScript должна возвращать JWT в течение 10 секунд. Этот JWT должен:

    • Будет содержать заголовок, полезные данные и подпись из шага 3.

    • Будет подписан закрытым ключом из пары ключей на шаге 1.

      (Мы рекомендуем сгенерировать ваш JWT на вашем веб-сервере.)

      Имя этого метода JavaScript будет использоваться для создания записи настроек аутентификации в приложении администрирования многоканального взаимодействия.

      // 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(); 
      } 
      
  3. Ваш разработчик должен будет предоставить вашему администратору многоканального взаимодействия следующую информацию:

    a. URL-адрес службы открытого ключа из шага 2.

    Пример: https://www.contoso.com/auth/publickey

    b. Имя клиентской функции JavaScript из шага 4. Мини-приложение чата будет использовать внутренний вызов этого имени во время начала чата.

    Пример: auth.getAuthenticationToken

    Заметка

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

    Следующий рисунок демонстрирует такую настройку.

    Настройка чата с аутентификацией.

    Затем вы можете настроить чат с аутентификацией, выполнив следующие действия:

Настройка чата с аутентификацией

  1. Перейдите в приложение администрирования и создайте запись настроек аутентификации с информацией из шага 5 из предыдущего раздела. Дополнительные сведения: Создание записи настройки аутентификации для чата

  2. Свяжите настройки аутентификации с мини-приложением чата, которое будет использовать аутентификацию. Дополнительные сведения: Добавление аутентификации в мини-приложение чата

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

    Среда выполнения чата с аутентификацией.

Создание параметров проверки подлинности для Apple Messages for Business

Предварительные условия

  • Администраторам, которые настраивают параметры проверки подлинности, потребуются дополнительные разрешения безопасности. Дополнительные сведения: Настройка разрешений безопасности для поля

  • Убедитесь, что ваша организация имеет практические знания о потоке OAuth 2.0 code flow или потоке OAuth 2.0 OpenID Connect. Шаги для обоих типов описаны в следующих разделах.

  • Убедитесь, что в вашей организации есть хотя бы одно Функциональное сообщение типа проверки подлинности Apple Messages for Business. Это функциональное сообщение требуется для установки.

Создание записи настроек проверки подлинности для Apple Messages for Business с использованием потока OAuth 2.0 code flow

  1. В центре администрирования Customer Service или на карте сайта центра администрирования многоканального взаимодействия выберите Параметры клиентов, а затем выберите Управление для параметров проверки подлинности. Отображается список существующих параметров проверки подлинности.

  2. Выберите Новый параметр проверки подлинности и на странице Добавить параметр проверки подлинности укажите следующие данные:

    1. На странице Тип канала введите имя и выберите Apple Messages for Business в качестве типа канала.
      По умолчанию тип аутентификации — OAuth 2.0 code flow.

    2. На странице Добавить параметр проверки подлинности укажите следующие сведения:

      • ID клиента: идентификатор клиента OAuth 2.0, выданный сервером авторизации.
      • Секрет клиента: секрет клиента, используемый для проверки подлинности запросов, отправляемых на сервер авторизации.
      • Область: каждая добавленная область будет указывать, какие части пользовательских данных вы запросили у клиента. Содержимое области должно точно соответствовать тому, которое доступно через вашего поставщика услуг.
      • URL-адрес маркера доступа: конечная точка поставщика услуг, где можно запросить маркер доступа.
      • Расшифрованный URL-адрес токена: конечная точка, где API OAuth 2.0 может получить информацию о клиенте, запрошенную в области действия.
    3. На странице Дополнительные сведения вы можете дополнительно указать время истечения срока действия токена доступа в секундах. Срок действия по умолчанию составляет один час.
      После указанного времени поле Проверка подлинности выполнена в разделе Активный разговор ранее аутентифицированного разговора изменится на Нет.

    4. На странице Функциональные сообщения выберите Добавить, затем выберите одно или несколько функциональных сообщений, чтобы связать их с этим параметром аутентификации.

    5. Проверьте страницу Сводка, затем выберите Готово. Параметр проверки подлинности настроен.

Создание записи настроек проверки подлинности для Apple Messages for Business с использованием потока OAuth 2.0 OpenID Connect

  1. На карте сайта приложения Центр администрирования Customer Service или Центр администрирования многоканального взаимодействия выберите Параметры клиентов, а затем выберите Управление для Дополнительные параметры. Отображается список существующих параметров проверки подлинности.

  2. Выберите Новый параметр проверки подлинности и на странице Добавить параметр проверки подлинности укажите следующие данные:

    1. На странице Тип канала введите имя и выберите Apple Messages for Business в качестве типа канала.

    2. Измените тип аутентификации Поток OAuth 2.0 OpenID Connect.

    3. На странице Добавить параметр проверки подлинности укажите следующие сведения:

      • ID клиента: идентификатор клиента OAuth 2.0, выданный сервером авторизации.
      • Секрет клиента: секрет клиента, используемый для проверки подлинности запросов, отправляемых на сервер авторизации.
      • Область: каждая добавленная область будет указывать, какие части пользовательских данных вы запросили у клиента. Содержимое области должно точно соответствовать тому, которое доступно через вашего поставщика услуг.
      • URL-адрес маркера доступа: конечная точка поставщика услуг, где можно запросить маркер доступа.
      • Расшифрованный URL-адрес токена: конечная точка, где API OAuth 2.0 может получить информацию о клиенте, запрошенную в области действия.
      • Дополнительные параметры: позволяет службам проверки подлинности получать дополнительные параметры из запроса.
    4. На странице Дополнительные сведения вы можете дополнительно указать время истечения срока действия токена доступа в секундах. Срок действия по умолчанию составляет один час.
      По истечении указанного времени поле Аутентифицировано в разделе Сводка по клиентам ранее аутентифицированного разговора изменится на Нет.

    5. На странице Функциональные сообщения выберите Добавить, затем выберите одно или несколько функциональных сообщений, чтобы связать их с этим параметром аутентификации.

    6. Просмотрите страницу Сводка, затем выберите Далее. Параметр проверки подлинности настроен.

    7. На странице Сведения о перенаправлении скопируйте URL-адрес. Вы добавите этот URL-адрес на веб-сайт поставщика услуг аутентификации в разделе разрешенных URL-адресов обратного вызова.

    8. Выберите Готово.

Добавление проверки подлинности в канал Apple Messages for Business

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

  2. На странице Поведения настроек канала перейдите к пункту Параметры проверки подлинности, включите эту возможность и выберите правильный параметр в раскрывающемся меню. Дополнительные сведения: Настройка канала Apple Messages for Business

  3. Просмотрите или обновите параметры проверки подлинности для каждого экземпляра канала, выбрав Изменить.

См. также

Добавление мини-приложения чата
Настройка опроса перед разговором
Создать быстрые ответы
Создание и управление рабочими часами
Внедрение мини-приложения чат в порталы Power Apps
Автоматическая идентификация клиентов