Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете настроить проверку подлинности для подключаемых модулей API в агентах, работающих в Microsoft 365 Copilot, с помощью любой из четырех поддерживаемых схем проверки подлинности, чтобы легко подключиться к серверным API:
- Поток кода авторизации OAuth 2.0
- проверка подлинности Microsoft Entra ID единого входа
- Проверка подлинности с помощью ключа API
- Без проверки подлинности (анонимная)
Поток кода авторизации OAuth 2.0
Подключаемый модуль может получить доступ к API с помощью маркера носителя, полученного с помощью потока кода авторизации OAuth 2.0, с необязательной поддержкой ключа proof для Code Exchange (PKCE).
Прежде чем начать, необходимо зарегистрироваться у поставщика OAuth 2.0, чтобы получить идентификатор и секрет клиента. Если поставщик OAuth требует указать разрешенные URI перенаправления во время регистрации приложения, обязательно включите https://teams.microsoft.com/api/platform/v1.0/oAuthRedirect в список.
Важно!
Поддержка подключаемых модулей API для OAuth 2.0 имеет следующие ограничения.
- Подключаемые модули API поддерживают только поток кода авторизации для OAuth 2.0.
- Серверы OAuth 2.0, возвращающие
307 Temporary Redirectкоды состояния HTTP из конечной точки маркера, не поддерживаются.
Эту схему можно определить в свойстве securitySchemes документа OpenAPI. Дополнительные сведения см. в разделе OAuth 2.0.
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: <authorization_url>
tokenUrl: <token_url>
refreshUrl: <refresh_url>
scopes:
scope: description
Чтобы включить проверку подлинности OAuth 2.0, необходимо зарегистрировать клиент OAuth на портале разработчика Teams. Вы можете зарегистрировать клиент OAuth в Microsoft 365 Agents Toolkit в Visual Studio Code или вручную зарегистрируясь на портале разработчика Teams.
Примечание.
Декларативные агенты не предоставляют пользователям встроенный способ очистки сохраненных учетных данных OAuth вручную. Служба токенов Bot Framework централизованно управляет маркерами, и они могут продолжать сохраняться после удаления агента из-за кэширования единого входа, параметров клиента или различий в клиентах.
Чтобы принудительно выполнить повторную проверку подлинности, используйте выход на стороне сервера, вызвав недействительные SignOutUserAsync маркеры бота. Для полного сброса при необходимости можно объединить этот метод с API Microsoft Graph revokeSignInSessions или удалить согласие пользователя.
Чтобы улучшить взаимодействие с пользователем, рассмотрите возможность добавления действия входа и переключения учетной записи , которое активирует эти потоки выхода на стороне сервера, чтобы пользователям было предложено снова войти.
Регистрация клиента OAuth с помощью набора средств агентов
Agents Toolkit регистрирует клиент OAuth и обновляет пакет приложения при создании агента с подключаемым модулем API из существующего документа OpenAPI. Свойство должно быть определено в документе securitySchemes OpenAPI.
Если поставщик OAuth поддерживает PKCE, раскомментируйте следующую строку кода в m365agents.yml в проекте агента перед подготовкой агента.
# isPKCEEnabled: true
Регистрация клиента OAuth на портале разработчика Teams
Откройте портал разработчика Teams. Выберите Сервис ->Регистрация клиента OAuth.
Если у вас нет существующих регистраций, выберите Зарегистрировать клиента. Если у вас есть существующие регистрации, выберите Создать регистрацию клиента OAuth.
Заполните следующие поля.
- Имя регистрации: понятное имя для регистрации.
-
Базовый URL-адрес: базовый URL-адрес API. Это значение должно соответствовать записи в массиве
serversв документе OpenAPI. - Идентификатор клиента: идентификатор клиента или идентификатор приложения, выданный поставщиком OAuth 2.0.
- Секрет клиента: секрет клиента, выданный поставщиком OAuth 2.0.
- Конечная точка авторизации: URL-адрес поставщика OAuth 2.0, который приложения используют для запроса кода авторизации.
- Конечная точка маркера: URL-адрес поставщика OAuth 2.0, который приложения используют для активации кода для маркера доступа.
- Конечная точка обновления: URL-адрес поставщика OAuth 2.0, который приложения используют для обновления маркера доступа.
- Область: область разрешений, определенный API, который разрешает доступ.
- Включить ключ проверки подлинности для Code Exchange (PKCE): включите этот параметр, если поставщик OAuth поддерживает PKCE.
Выберите Сохранить.
После завершения регистрации создается идентификатор регистрации клиента OAuth.
Добавление идентификатора регистрации клиента в манифест подключаемого модуля
Чтобы использовать проверку подлинности OAuth 2.0 для подключаемого модуля API, задайте type для свойства объекта OAuthPluginVaultпроверки подлинности среды выполнения значение , а для — reference_id идентификатор регистрации клиента на портале разработчика Teams.
"auth": {
"type": "OAuthPluginVault",
"reference_id": "auth registration ID"
},
проверка подлинности единого входа Microsoft Entra ID
Microsoft Entra ID проверка подлинности единого входа обеспечивает простую интеграцию единого входа, позволяя пользователям проходить проверку подлинности с помощью имеющихся учетных данных Microsoft Entra ID. Такая интеграция упрощает управление доступом и обеспечивает безопасные подключения к API без дополнительных учетных данных. Api должен использовать Microsoft Entra ID для управления доступом.
Регистрация клиента единого входа на портале разработчика Teams
Откройте портал разработчика Teams. Выберите Сервис ->Microsoft Entra регистрация идентификатора клиента единого входа.
Если у вас нет регистраций, выберите Зарегистрировать идентификатор клиента. Если у вас есть существующие регистрации, выберите Новая регистрация клиента.
Заполните следующие поля.
- Имя регистрации: понятное имя для регистрации.
-
Базовый URL-адрес: базовый URL-адрес API. Это значение должно соответствовать записи в массиве
serversв документе OpenAPI. - Ограничение использования по организациям. Выберите, какая организация Microsoft 365 имеет доступ к вашему приложению для доступа к конечным точкам API.
- Ограничение использования по приложениям. Выберите Любое приложение Teams , если вы не знаете свой окончательный идентификатор приложения. После публикации приложения привяжите эту регистрацию к опубликованному идентификатору приложения.
- Идентификатор клиента: идентификатор клиента приложения, зарегистрированного в Microsoft Entra.
Выберите Сохранить.
После завершения регистрации создается идентификатор регистрации Microsoft Entra единого входа и универсальный код ресурса (URI) идентификатора приложения.
Обновление регистрации приложения Microsoft Entra
Откройте Центр администрирования Microsoft Entra. Обновите Microsoft Entra регистрации приложения, который защищает API, с помощью URI идентификатора приложения, созданного порталом разработчика Teams. Если у вас есть существующий универсальный код ресурса (URI) идентификатора приложения, сопоставленный с регистрацией приложения, можно использовать редактор манифеста, чтобы добавить еще один универсальный код ресурса (URI) в раздел identifierUris .
"identifierUris": [ "<<URI1>>" "<<URI2>>" ]Примечание.
Добавление нескольких URI не поддерживается в пользовательском интерфейсе Центр администрирования Microsoft Entra. Пользовательский интерфейс отображает только первый URI в списке. Добавление нескольких URI не влияет на существующие URI и области, даже если они отображаются по-разному в пользовательском интерфейсе.
Выберите пункт Проверка подлинности в разделе Управление. Добавьте
https://teams.microsoft.com/api/platform/v1.0/oAuthConsentRedirectв URI перенаправления на веб-платформе .Выберите пункт Предоставление API в разделе Управление. Выберите Добавить клиентское приложение и добавьте идентификатор клиента корпоративного хранилища маркеров Майкрософт.
ab3be6b7-f5df-413d-ac2d-abf1e3fd9c0b
Добавление идентификатора регистрации единого входа в манифест подключаемого модуля
type Задайте для свойства объекта OAuthPluginVaultпроверки подлинности среды выполнения значение , а для — reference_idидентификатор регистрации Microsoft Entra единого входа на портале разработчика Teams.
"auth": {
"type": "OAuthPluginVault",
"reference_id": "SSO registration ID"
},
Добавление новой аудитории маркеров в API
Обновите API, чтобы разрешить новый URI идентификатора в качестве аудитории маркеров. Если API проверяет идентификатор клиентского приложения, убедитесь, что идентификатор клиента хранилища корпоративных токенов Майкрософт (ab3be6b7-f5df-413d-ac2d-abf1e3fd9c0b) добавлен в качестве разрешенного клиентского приложения.
Совет
Если ваш API использует поток on-behalf-of для получения доступа к другому веб-API, требующего от пользователя предоставления согласия, верните ошибку 401 Unauthorized , из-за чего агент запросит пользователя на вход для предоставления согласия.
Проверка подлинности с помощью ключа API
Некоторые API используют ключи API для авторизации. Ключ API — это общий секрет, который клиент включает в запросы API для проверки подлинности и получения доступа. Подключаемые модули API поддерживают отправку ключа API тремя способами:
- В качестве маркера носителя в заголовке
Authorization - Как значение в пользовательском заголовке
- Как параметр запроса
Добавление ключа API в документ OpenAPI
Microsoft 365 Copilot определяет способ отправки ключа API на securitySchemes основе записи в документе OpenAPI.
Токен носителя
Если API принимает ключ API в качестве маркера носителя, включите проверку подлинности bearer в документе OpenAPI. Дополнительные сведения см. в разделе Проверка подлинности носителя.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
Пользовательский заголовок
Если API принимает ключ API в пользовательском заголовке, включите проверку подлинности ключа API в документе OpenAPI, указав in свойству значение header , а свойству name — имя заголовка. Дополнительные сведения см. в разделе Ключи API.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
Параметр запроса
Если API принимает ключ API в параметре запроса, включите проверку подлинности ключа API в документе OpenAPI, in указав свойству значение query , а свойству name — имя параметра запроса. Дополнительные сведения см. в разделе Ключи API.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: query
name: api_key
Регистрация ключа API
Чтобы включить проверку подлинности по ключу API, необходимо зарегистрировать ключ API на портале разработчика Teams. Вы можете зарегистрировать ключ API в Средстве агентов в Visual Studio Code или вручную на портале разработчика Teams.
Регистрация ключа API с помощью набора средств агентов
Agent Toolkit регистрирует ключ API и обновляет пакет приложения при создании агента с подключаемым модулем API из существующего документа OpenAPI. Свойство должно быть определено в документе securitySchemes OpenAPI.
Регистрация ключа API на портале разработчика Teams
Откройте портал разработчика Teams. Выберите Сервис ->регистрация ключа API.
Если у вас нет существующих регистраций, выберите Создать ключ API. Если у вас есть существующие регистрации, выберите Новый ключ API.
Выберите Добавить секрет и введите ключ API.
Заполните следующие поля.
- Имя ключа API: понятное имя для регистрации.
-
Базовый URL-адрес: базовый URL-адрес API. Это значение должно соответствовать записи в массиве
serversв документе OpenAPI. - Целевой клиент. Ограничьте доступ API к домашнему клиенту или нет.
- Целевое приложение Teams: выберите Любое приложение Teams , если вы не знаете свой окончательный идентификатор приложения. После публикации приложения привяжите эту регистрацию к опубликованному идентификатору приложения.
Выберите Сохранить.
После завершения регистрации создается идентификатор регистрации ключа API.
Добавление идентификатора регистрации ключа API в манифест подключаемого модуля
- В файле манифеста подключаемого модуля задайте
typeдля свойства объектаApiKeyPluginVaultпроверки подлинности среды выполнения значение , а для —reference_idидентификатор регистрации ключа API на портале разработчика Teams.
"auth": {
"type": "ApiKeyPluginVault",
"reference_id": "app key registration ID"
},
Без проверки подлинности (анонимная)
Для API, для которых не требуется проверка подлинности, или для сред разработчиков, где проверка подлинности еще не реализована, подключаемые модули могут обращаться к API анонимно. В этом случае задайте type для свойства объекта проверки подлинности среды выполнения значение None.
"auth": {
"type": "None"
},