Интеграция функции Azure

Введение

В этом руководстве содержатся подробные инструкции по настройке функции Azure для получения сведений, связанных с пользователем. Настоятельно рекомендуется настроить функцию Azure. Это помогает избежать параметров приложения жесткого программирования в приложении Contoso (например, идентификатор пользователя и маркер пользователя). Эта информация является строго конфиденциальной. Более важно, что мы периодически обновляем маркеры пользователей на серверной части. Для жесткого написания кода пользователя и сочетания маркеров требуется изменить значение после каждого обновления.

Необходимые компоненты

Перед началом работы нужно сделать следующее:

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

  1. Установите расширение функции Azure в Visual Studio Code. Его можно установить в браузере подключаемого модуля Visual Studio Code или по этой ссылке
  2. Настройте локальное приложение-функцию Azure, выполнив следующую ссылку. Необходимо создать локальную функцию с помощью шаблона триггера HTTP в JavaScript.
  3. Установите библиотеки Службы коммуникации Azure. Мы будем использовать библиотеку удостоверений для создания маркеров доступа пользователей. Выполните команду установки npm в локальном каталоге приложения-функции Azure, чтобы установить пакет SDK для удостоверений Службы коммуникации Azure для JavaScript.
    npm install @azure/communication-identity --save
  1. Измените index.js файл, чтобы он выглядел следующим образом:
    const { CommunicationIdentityClient } = require('@azure/communication-identity');
    const connectionString = '<your_connection_string>'
    const acsEndpoint = "<your_ACS_endpoint>"
    
    module.exports = async function (context, req) {
        let tokenClient = new CommunicationIdentityClient(connectionString);
    
        const userIDHolder = await tokenClient.createUser();
        const userId = userIDHolder.communicationUserId
    
        const userToken = await (await tokenClient.getToken(userIDHolder, ["chat"])).token;
    
        context.res = {
            body: {
                acsEndpoint,
                userId,
                userToken
            }
        };
    }

Объяснение приведенного выше кода: первая строка импортирует интерфейс для CommunicationIdentityClient. Строка подключения во второй строке можно найти в ресурсе Службы коммуникации Azure в портал Azure. Это ACSEndpoint URL-адрес созданного ресурса Службы коммуникации Azure.

  1. Откройте локальную папку функций Azure в Visual Studio Code. index.js Откройте и запустите локальную функцию Azure. Локальная конечная точка функции Azure будет создана и напечатана в терминале. Печатное сообщение выглядит примерно так:
Functions:
HttpTrigger1: [GET,POST] http://localhost:7071/api/HttpTrigger1

Откройте ссылку в браузере. Результат будет аналогичен следующему примеру:

    {
      "acsEndpoint": "<Azure Function endpoint>",
      "userId": "8:acs:a636364c-c565-435d-9818-95247f8a1471_00000014-f43f-b90f-9f3b-8e3a0d00c5d9",
      "userToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOmE2MzYzNjRjLWM1NjUtNDM1ZC05ODE4LTk1MjQ3ZjhhMTQ3MV8wMDAwMDAxNC1mNDNmLWI5MGYtOWYzYi04ZTNhMGQwMGM1ZDkiLCJzY3AiOjE3OTIsImNzaSI6IjE2Njc4NjI3NjIiLCJleHAiOjE2Njc5NDkxNjIsImFjc1Njb3BlIjoiY2hhdCIsInJlc291cmNlSWQiOiJhNjM2MzY0Yy1jNTY1LTQzNWQtOTgxOC05NTI0N2Y4YTE0NzEiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY3ODYyNzYyfQ.t-WpaUUmLJaD0V2vgn3M5EKdJUQ_JnR2jnBUZq3J0zMADTnFss6TNHMIQ-Zvsumwy14T1rpw-1FMjR-zz2icxo_mcTEM6hG77gHzEgMR4ClGuE1uRN7O4-326ql5MDixczFeIvIG8s9kAeJQl8N9YjulvRkGS_JZaqMs2T8Mu7qzdIOiXxxlmcl0HeplxLaW59ICF_M4VPgUYFb4PWMRqLXWjKyQ_WhiaDC3FvhpE_Bdb5U1eQXDw793V1_CRyx9jMuOB8Ao7DzqLBQEhgNN3A9jfEvIE3gdwafpBWlQEdw-Uuf2p1_xzvr0Akf3ziWUsVXb9pxNlQQCc19ztl3MIQ"
    }
  1. Разверните локальную функцию в облаке. Дополнительные сведения см. в этой документации.

  2. Проверьте развернутую функцию Azure. Сначала найдите функцию Azure в портал Azure. Затем нажмите кнопку "Получить URL-адрес функции", чтобы получить конечную точку функции Azure. Результат, который вы видите, должен быть похож на то, что было показано на шаге 5. Конечная точка функции Azure будет использоваться в приложении для инициализации параметров приложения.

  3. РеализацияUserTokenClient, которая используется для вызова целевого ресурса функции Azure и получения конечной точки Службы коммуникации Azure, идентификатора пользователя и маркера пользователя из возвращаемого объекта JSON. Ознакомьтесь с примером приложения для использования.

Руководство по устранению неполадок

  1. Если расширение функции Azure не удалось развернуть локальную функцию в облаке Azure, скорее всего, это связано с версией Visual Studio Code и расширением функции Azure, использующий ошибку. Эта комбинация версий протестирована для работы: версия 1.68.1 Visual Studio Code и версия 1.2.1расширения функции Azure.
  2. Место для инициализации констант приложений является сложным, но важным. Дважды проверка краткое руководство по чату Android. В частности, заметка о выделении в разделе "Настройка констант приложений" и сравнение с примером приложения используемой версии.

Защита конечной точки функции Azure (необязательно)

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

С дополнительной конфигурацией этот пример поддерживает подключение к защищенной конечной точке Microsoft Entra, чтобы журнал пользователей требовался для получения маркера Службы коммуникации Azure. Пользователю потребуется войти с помощью учетной записи Майкрософт для доступа к приложению. Эта настройка повышает уровень безопасности во время входа пользователей. Определите, следует ли включить его в зависимости от вариантов использования.

Обратите внимание, что в настоящее время мы не поддерживаем идентификатор Microsoft Entra в примере кода. Следуйте приведенным ниже ссылкам, чтобы включить его в приложении и функции Azure:

Зарегистрируйте приложение в разделе Идентификатора Microsoft Entra (с помощью параметров платформы Android).

Настройте приложение Служба приложений или Функции Azure для использования входа в систему идентификатора Microsoft Entra.