Упражнение. Интеграция подключаемого модуля API с API, защищенным с помощью ключа
Подключаемые модули API для Microsoft 365 Copilot позволяют интегрироваться с API, защищенными с помощью ключа. Вы защищаете ключ API, регистрируя его в хранилище Teams. Во время выполнения Microsoft 365 Copilot выполняет подключаемый модуль, извлекает ключ API из хранилища и использует его для вызова API. После выполнения этого процесса ключ API остается безопасным и никогда не предоставляется клиенту.
Создание проекта
Начните с создания подключаемого модуля API для Microsoft 365 Copilot. Откройте Visual Studio Code.
В Visual Studio Code:
- На панели действий (боковая панель) активируйте расширение Microsoft 365 Agents Toolkit.
- На панели расширения Microsoft 365 Agents Toolkit выберите Создать новое приложение.
- В списке шаблонов проектов выберите Агент Copilot.
- В списке функций приложения выберите Декларативный агент.
- Выберите параметр Добавить подключаемый модуль .
- Выберите параметр Начать с нового API .
- В списке типов проверки подлинности выберите Ключ API (проверка подлинности маркера носителя).
- В качестве языка программирования выберите TypeScript.
- Выберите папку для хранения проекта.
- Присвойте проекту имя da-repairs-key.
Microsoft 365 Agents Toolkit создает новый проект, включающий декларативный агент, подключаемый модуль API и API, защищенный ключом.
Изучение конфигурации проверки подлинности с помощью ключа API
Прежде чем продолжить, изучите конфигурацию проверки подлинности ключа API в созданном проекте.
Изучение определения API
Во-первых, ознакомьтесь с определением проверки подлинности ключа API в определении API.
В Visual Studio Code:
Откройте файл appPackage/apiSpecificationFile/repair.yml . Этот файл содержит определение OpenAPI для API.
В разделе components.securitySchemes обратите внимание на свойство apiKey :
components: securitySchemes: apiKey: type: http scheme: bearerСвойство определяет схему безопасности, которая использует ключ API в качестве маркера носителя в заголовке запроса авторизации.
Найдите свойство paths./repairs.get.security . Обратите внимание, что он ссылается на схему безопасности apiKey .
[...] paths: /repairs: get: operationId: listRepairs [...] security: - apiKey: [] [...]
Изучение реализации API
Затем ознакомьтесь с тем, как API проверяет ключ API при каждом запросе.
В Visual Studio Code:
Откройте файл src/functions/repairs.ts .
В функции обработчика исправлений найдите следующую строку, которая отклоняет все несанкционированные запросы:
if (!isApiKeyValid(req)) { // Return 401 Unauthorized response. return { status: 401, }; }Функция isApiKeyValid реализована далее в файле repairs.ts:
function isApiKeyValid(req: HttpRequest): boolean { const apiKey = req.headers.get("Authorization")?.replace("Bearer ", "").trim(); return apiKey === process.env.API_KEY; }Функция проверяет, содержит ли заголовок авторизации токен носителя, и сравнивает его с ключом API, определенным в переменной среды API_KEY .
В этом коде показана упрощенная реализация безопасности ключей API, но в нем показано, как работает безопасность ключей API на практике.
Изучение конфигурации задачи хранилища
В этом проекте вы используете Microsoft 365 Agents Toolkit для добавления ключа API в хранилище. Microsoft 365 Agents Toolkit регистрирует ключ API в хранилище с помощью специальной задачи в конфигурации проекта.
В Visual Studio Code:
Откройте файл ./teampsapp.local.yml .
В разделе подготовка найдите задачу apiKey/register .
# Register API KEY - uses: apiKey/register with: # Name of the API Key name: apiKey # Value of the API Key primaryClientSecret: ${{SECRET_API_KEY}} # Teams app ID appId: ${{TEAMS_APP_ID}} # Path to OpenAPI description document apiSpecPath: ./appPackage/apiSpecificationFile/repair.yml # Write the registration information of API Key into environment file for # the specified environment variable(s). writeToEnvironmentFile: registrationId: APIKEY_REGISTRATION_IDЗадача принимает значение переменной проекта SECRET_API_KEY , хранящейся в файле env/.env.local.user, и регистрирует его в хранилище. Затем он принимает идентификатор записи хранилища и записывает его в файл среды env/.env.local. Результатом этой задачи является переменная среды с именем APIKEY_REGISTRATION_ID. Microsoft 365 Agents Toolkit записывает значение этой переменной в файл appPackages/ai-plugin.json , содержащий определение подключаемого модуля. Во время выполнения декларативный агент, загружающий подключаемый модуль API, использует этот идентификатор для получения ключа API из хранилища и безопасного вызова API.
Настройка ключа API для локальной разработки
Прежде чем протестировать проект, необходимо определить ключ API для API. Затем сохраните ключ API в хранилище и запишите идентификатор записи хранилища в подключаемом модуле API. Для локальной разработки сохраните ключ API в проекте и используйте microsoft 365 Agents Toolkit, чтобы зарегистрировать его в хранилище.
В Visual Studio Code:
Откройте панель Терминал .
В командной строке:
- Восстановите зависимости проекта, запустив
npm install. - Создайте новый ключ API, выполнив команду :
npm run keygen. - Скопируйте созданный ключ в буфер обмена.
- Восстановите зависимости проекта, запустив
Откройте файл env/.env.local.user .
Обновите свойство SECRET_API_KEY до только что созданного ключа API. Обновленное свойство выглядит следующим образом:
SECRET_API_KEY=your_keyСохраните изменения.
Каждый раз, когда вы создаете проект, Microsoft 365 Agents Toolkit автоматически обновляет ключ API в хранилище и обновляет проект с помощью идентификатора записи хранилища.
Протестируйте декларативный агент с помощью подключаемого модуля API в Microsoft 365 Copilot
Последним шагом является тестирование декларативного агента с помощью подключаемого модуля API в Microsoft 365 Copilot.
В Visual Studio Code:
На панели действий активируйте расширение Microsoft 365 Agents Toolkit .
На панели расширения Microsoft 365 Agents Toolkit в разделе Учетные записи убедитесь, что вы вошли в клиент Microsoft 365 с включенным Copilot.
На панели действий переключитесь в представление Запуск и отладка.
В списке конфигураций выберите Отладка в Copilot (Edge) и нажмите кнопку воспроизведения, чтобы начать отладку.
Visual Studio Code откроется новый веб-браузер с Microsoft 365 Copilot. При появлении запроса войдите в свою учетную запись Microsoft 365.
В веб-браузере:
На боковой панели выберите агент da-repairs-keylocal .
В текстовом поле запроса введите
What repairs are assigned to Karin?и отправьте запрос.Убедитесь, что вы хотите отправить данные в подключаемый модуль API с помощью кнопки Всегда разрешать .
Дождитесь ответа агента.
Остановите сеанс отладки в Visual Studio Code после завершения тестирования.