Включение единого входа для приложения

Благодаря единому входу в Teams пользователи приложений могут использовать Teams для доступа к приложениям-ботам или приложениям расширения сообщений. После входа в Teams с помощью учетной записи Майкрософт или Microsoft 365 пользователи приложения могут использовать ваше приложение без необходимости снова выполнять вход. Приложение доступно для пользователей приложения на любом устройстве с доступом, предоставленным через Microsoft Entra идентификатор.

Примечание.

Единый вход для приложения бота в Teams поддерживается только в одном чате.

В этом разделе описывается настройка единого входа, необходимая для ботов и приложений расширения для обмена сообщениями.

Пользовательский интерфейс единого входа в Teams

Пользователи приложения входят в Teams с помощью личной учетной записи Майкрософт или учетной записи Microsoft 365. Вы можете воспользоваться этим и использовать единый вход для проверки подлинности и авторизации пользователей приложения. Microsoft Entra идентификатор предоставляет пользователям приложения доступ к боту или приложению расширения сообщений.

  • Teams выполняет проверку подлинности и сохраняет удостоверение пользователя приложения.
  • Бот использует хранимый идентификатор пользователя приложения, который уже проверен Teams.
  • Пользователь приложения должен дать согласие Teams на использование удостоверения для доступа к боту.
  • Пользователь приложения может получить доступ к приложению, используя веб-интерфейс, классическое приложение или мобильный клиент.

Примечание.

Пользователи приложений не могут предоставлять разрешения для некоторых областей разрешений, таких как Sites.ReadWrite.All (в этом случае пользователи приложения получили бы доступ на чтение и запись для всех ресурсов SharePoint и OneDrive в клиенте). Для таких областей только администратор клиента может предоставить согласие от имени пользователя приложения.

Теперь посмотрим, что происходит в серверной части во время выполнения для поддержки единого входа в среде Teams.

Единый вход в Teams во время выполнения

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

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

Единый вход для ботов и расширения сообщений во время выполнения

# Взаимодействие Что происходит?
1 Служба бота → клиента Teams Сообщение, которое пользователь приложения отправляет, получает клиент Teams, который отправляет его боту.
Если пользователь приложения ранее вошел в систему, маркер сохраняется в хранилище токенов Bot Framework. Бот вызывает службу токенов Bot Framework, которая проверяет наличие маркера для пользователя приложения в хранилище токенов Bot Framework.
• Если маркер существует, пользователю приложения предоставляется доступ.
• Если маркер недоступен, бот активирует поток проверки подлинности.
2 Служба bot → Служба токенов Bot Framework Бот вызывает службу токенов Bot Framework, чтобы получить ссылку для входа для пользователя.
3 Служба маркеров Bot Framework → клиент Teams Для приложения бота: служба маркеров Bot Framework отправляет запрос на вход в службу бота, которая перенаправит ее клиенту Teams в карта OAuth.
Для приложения расширения сообщений: вместо карта OAuth служба маркеров Bot Framework отправляет запрос на вызов.
4 Клиент Teams → служба Bot → Идентификатор → Microsoft Entra службы маркеров Bot Framework После того как клиент Teams получит карта OAuth для пользователя приложения, если единый вход включен, он отправляет боту запрос на обмен маркерами для пользователя приложения. Бот вызывает службу токенов Bot Framework, пытаясь обменять полученный маркер с Microsoft Entra идентификатора.
5 идентификатор Microsoft Entra клиента Teams → Для пользователя приложения, который впервые использует службу бота, обмен маркерами может происходить только после того, как пользователь приложения даст свое согласие. Клиент Teams отображает пользователю приложения сообщение о предоставлении согласия.
В случае сбоя согласия:
1. Проверка подлинности возвращается к запросу на вход, и пользователь приложения должен войти, чтобы использовать приложение бота. Кнопка входа появится в клиенте Teams, и когда пользователь приложения выбирает ее, отрисовывается страница Microsoft Entra входа.
2. Пользователь приложения входит в систему и предоставляет доступ к службе бота.
6 Служба bot → Служба токенов Bot Framework Маркер для пользователя приложения хранится в хранилище токенов Bot Framework.

Для бота или приложения расширения сообщений приложение бота отправляет карточку OAuth в клиент Teams. Этот карта используется для получения маркера доступа из идентификатора Microsoft Entra с помощью tokenExchangeResource. После согласия пользователя приложения клиент Teams отправляет маркер, полученный от Microsoft Entra идентификатора, в приложение бота с помощью tokenExchange. Затем приложение-бот может проанализировать маркер, чтобы получить сведения о пользователе приложения, например адрес электронной почты.

Важно!

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

Включение единого входа для приложения Teams

Приложения расширения ботов и сообщений используют Bot Framework для обработки взаимодействия с пользователями приложения.

  • Приложение-бот. Также называется чат-ботом или ботом для общения, это служба, которая выполняет простые и повторяющиеся задачи для пользователей приложения. Боты могут быть частью более крупного приложения или автономной службой.

  • Приложение расширения сообщений. Это веб-служба, которую вы размещаете, которую можно вызвать из клиента Teams. Он использует схему обмена сообщениями бота для обеспечения безопасного обмена данными. Вам потребуется зарегистрировать веб-службу в качестве бота, чтобы включить единый вход для приложения расширения сообщений.

В этом разделе описаны задачи, связанные с реализацией единого входа для бота Teams или приложения расширения сообщений. Чтобы включить единый вход для бота Teams или приложения расширения сообщений, выполните приведенные далее действия.

  1. Настройка приложения с идентификатором Microsoft Entra. Создайте приложение Microsoft Entra для создания идентификатора приложения и URI идентификатора приложения. Для создания маркера доступа необходимо настроить области и авторизовать доверенные клиентские приложения. Конфигурация, необходимая в идентификаторе Microsoft Entra для включения единого входа в боте и приложениях расширения сообщений, одинакова. Создайте ресурс бота и настройте секрет клиента, конечную точку обмена сообщениями и подключение OAuth, чтобы включить единый вход.

  2. Добавить код. Добавьте код для обработки маркера доступа, чтобы отправить этот маркер в код сервера приложения в заголовке Authorization и проверить маркер доступа при его получении. Код, необходимый для включения единого входа в приложении-боте, отличается от кода, необходимого для приложения расширения сообщений.

    Примечание.

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

  3. Обновление манифеста приложения (ранее — манифест приложения Teams): обновите манифест приложения, указав идентификатор приложения и URI идентификатора приложения, созданные в Microsoft Entra идентификаторе, чтобы разрешить Teams запрашивать маркеры доступа от имени вашего приложения. Обновление, необходимое в файле манифеста приложения, совпадает с ботом и приложениями расширения сообщений.

  4. Настройка областей и разрешений Graph. Вы можете добавить в приложение дополнительные области, расширив приложение разрешениями и областями Microsoft Graph.

Следующее действие

См. также

Глоссарий