Поделиться через


Модель идентификации

Службы коммуникации Azure — это служба, независимая от идентификации, которая предлагает несколько преимуществ:

  • Внедрение собственной модели удостоверений (BYOI) позволяет повторно использовать существующие удостоверения из системы управления удостоверениями и сопоставлять их с удостоверениями Служб коммуникации Azure.
  • Хорошо работает с любой существующей системой удостоверений и не зависит от конкретного поставщика удостоверений.
  • Сохраняйте данные пользователя, такие как их имя, частные, так как не нужно дублировать их в Службы коммуникации Azure.
  • Организации, использующие Microsoft Entra ID для управления идентификацией и доступом, теперь могут получить доступ к ресурсам Azure Communication Services напрямую с пользователями Microsoft Entra ID. Эта новая поддержка аутентификации с Entra ID устраняет необходимость разработки или эксплуатации собственной службы управления идентификацией или прокси-службы авторизации. Эта функция сейчас доступна в общедоступной предварительной версии.

Модель идентификации в службах коммуникации Azure работает с двумя ключевыми понятиями.

Принести собственное удостоверение (BYOI): интеграция с системой управления удостоверениями

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

** В следующих разделах вас направят через ключевые концепции модели использования собственной идентификации (BYOI):

Сопоставление удостоверений пользователя в модели «Используй свою идентификацию» (BYOI)

Службы коммуникации Azure создают уникальный идентификатор пользователя при создании удостоверения пользователя с помощью пакета SDK или REST API. Нельзя использовать внешние идентификаторы, такие как номера телефонов, идентификаторы пользователей и устройств или приложений или имена пользователей непосредственно в Службах коммуникации Azure. Вместо этого необходимо использовать удостоверения служб коммуникации и поддерживать сопоставление с собственной системой идентификаторов пользователя по мере необходимости.

Вы можете бесплатно создавать удостоверения пользователей Службы коммуникации Azure. Только плата взимается, если пользователь использует службы коммуникации, такие как чат или звонок. Использование созданного удостоверения Служб коммуникации зависит от вашего сценария. Например, можно сопоставить идентификатор 1:1, 1:N, N:1 или N:N, а также использовать его для пользователей-человек или приложений. Конечный пользователь может участвовать в нескольких сеансах обмена данными с несколькими устройствами одновременно.

Управление сопоставлением между удостоверениями пользователей Службы коммуникации Azure и собственной системой удостоверений является вашей ответственностью в качестве разработчика и не предоставляется по умолчанию. Например, можно добавить столбец CommunicationServicesId в существующую таблицу пользователей для хранения связанного идентификатора Служб коммуникации Azure. Подробное описание разработки сопоставления находится в разделе «Клиент-серверная архитектура для модели «принеси своё собственное удостоверение» (BYOI).

(Предварительная версия) Упрощение сопоставления идентификаций с помощью customId

Important

Эта функция доступна начиная с версии 1.4.0-beta1 пакета SDK для управления идентификацией и версии 2025-03-02-preview REST API.

Note

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

Ранее разработчики отвечали за поддержание сопоставления между собственной системой удостоверений пользователей и удостоверениями Служб коммуникации Azure. Введя параметр customId, теперь можно связать собственные идентификаторы пользователей, такие как адреса электронной почты или внутренние идентификаторы пользователей, непосредственно во время создания удостоверения служб коммуникации.

При создании пользователя с customIdпомощью Служб коммуникации Azure возвращает то же удостоверение, если метод снова вызывается с тем же customId. Это устраняет необходимость хранения и управления сопоставлением самостоятельно.

Эта функция поддерживается как в пакете SDK, так и в REST API, и особенно полезна для сценариев, в которых требуется поддерживать согласованное удостоверение между сеансами, устройствами или службами без дополнительных затрат на хранилище.

Токены доступа

После создания удостоверения пользователя конечному пользователю необходимо получить токен доступа с определенными правами для участия в коммуникациях через чат или звонки. Например, только пользователь с маркером chat области может участвовать в чате. Только пользователь с маркером voip области может участвовать в вызове VoIP.

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

Property Description
Subject Идентификация пользователя, представленная токеном.
Expiration Маркер доступа действителен по крайней мере на 1 час и до 24 часов. После истечения срока действия маркер доступа является недопустимым и не может использоваться для доступа к службе. Чтобы создать маркер с настраиваемым сроком действия, укажите нужную действительность в минутах (>=60, <1440). По умолчанию маркер действителен в течение 24 часов. Мы рекомендуем использовать токены с коротким сроком действия для отдельных собраний и токены с более длительным сроком действия для пользователей, которым требуется ваше приложение в течение длительного времени.
Scopes Области определяют, к каким службам (Chat/VoIP) можно получить доступ с помощью токена.

Маркер доступа — это веб-токен JSON (JWT) и имеет защиту целостности. То есть его утверждения не могут быть изменены без недопустимого маркера доступа, так как подпись маркера больше не совпадает. Если примитивы связи используются с недопустимыми маркерами, доступ запрещен. Несмотря на то, что токены не шифруются или не обфусцируются, ваше приложение не должно зависеть от формата токена или его утверждений. Формат токена может измениться и не является частью официального контракта API. Службы коммуникации Azure поддерживают следующие области для маркеров доступа.

Области маркера чата

Модель идентификации поддерживает три разных пространства токенов чата. Разрешения для каждой области описаны в следующей таблице.

  • chat
  • chat.join
  • chat.join.limited
Возможность / область маркера chat chat.join chat.join.limited
Создание потока чата Y N N
Обновление темы чата с идентификатором Y N N
Удаление темы чата с ID Y N N
Добавление участника в поток чата Y Y N
Удаление участника из потока чата Y Y N
Получить темы чата Y Y Y
Получить поток чата с идентификатором Y Y Y
Получение ReadReceipt Y Y Y
Создание ReadReceipt Y Y Y
Создание сообщения для потока чата с идентификатором Y Y Y
Получение сообщения с идентификатором сообщения Y Y Y
Обновление собственного сообщения с идентификатором сообщения Y Y Y
Удалите свое собственное сообщение с идентификатором сообщения Y Y Y
Отправить индикатор ввода текста Y Y Y
Получение участника для идентификатора потока Y Y Y

Области токенов VoIP

Модель идентификации поддерживает две области применимости токенов VoIP. Разрешения для каждой области описаны в следующей таблице.

  • voip
  • voip.join
Возможность / область маркера voip voip.join
Запуск вызова VoIP Y N
Запустите вызов VoIP в виртуальных комнатах, когда пользователь уже приглашен в комнату Y Y
Присоединитесь к текущему вызову VoIP Y Y
Присоединитесь к вызову VoIP InProgress в виртуальных комнатах, если вас уже пригласили в комнату. Y Y
Все другие операции в вызове, такие как отключение и включение звука, общий доступ к экрану и т. д. Y Y
Все другие операции в вызове, такие как отключение и отключение звука, общий доступ к экрану и т. д., в виртуальных комнатах Определяется ролью пользователя Определяется ролью пользователя

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

Отзыв или обновление маркера доступа

  • Библиотеку удостоверений службы коммуникации Azure можно использовать для аннулирования токена доступа до истечения срока его действия. Отзыв токена не производится немедленно. Для распространения может потребоваться до 15 минут.
  • Удаление удостоверения, ресурса или подписки отменяет все токены доступа.
  • Если вы хотите удалить возможность доступа пользователя к определенным функциям, отмените все маркеры доступа для пользователя. Затем выдайте новый маркер доступа с ограниченным набором областей.
  • Смена ключей доступа отменяет все активные маркеры доступа, созданные с помощью бывшего ключа доступа. Поэтому все удостоверения теряют доступ к Службам коммуникации Azure и нуждаются в новых маркерах доступа.

Клиент-серверная архитектура для модели «принеси собственное удостоверение» (BYOI)

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

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

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

Схема, демонстрирующая архитектуру маркера доступа пользователей.

  1. Пользователь запускает клиентское приложение.
  2. Клиентское приложение обращается к службе управления удостоверениями.
  3. Служба управления удостоверениями проверяет подлинность пользователя приложения. Вы можете пропустить проверку подлинности в сценариях, где пользователь является анонимным, но будьте осторожны и добавьте другие защитные меры, такие как ограничение скорости и CORS, в вашу службу для предотвращения злоупотребления токенами.
  4. Создайте или найдите удостоверение служб коммуникации для пользователя.
    1. Стабильный сценарий идентификации: служба управления удостоверениями поддерживает сопоставление удостоверений приложений и удостоверений служб коммуникации. (Удостоверения приложений включают пользователей и другие адресные объекты, такие как службы или боты.) Если удостоверение приложения является новым, создается новое удостоверение связи и сохраняется сопоставление.
    2. Эфемерный сценарий идентификации: служба управления удостоверениями создает новое удостоверение для связи. В этом сценарии один и тот же пользователь получает другое удостоверение связи для каждого сеанса.
  5. Служба управления удостоверениями выдает маркер доступа пользователя для соответствующего удостоверения и возвращает его клиентскому приложению.

Приложения Azure App Service и Azure Functions являются двумя альтернативами для функционирования службы управления удостоверениями. Эти службы легко масштабируется и имеют встроенные функции для проверки подлинности пользователей. Они интегрированы с OpenID и сторонними поставщиками удостоверений, такими как Facebook.

Microsoft Entra ID: интеграция с Entra ID

Important

Эта функция Службы коммуникации Azure сейчас доступна в предварительной версии. Функции в предварительной версии общедоступны и могут использоваться всеми новыми и существующими клиентами Майкрософт.

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

Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

Службы коммуникации Azure теперь поддерживают аутентификацию с помощью Microsoft Entra ID, позволяя вам получать доступ к ресурсам Служб коммуникации Azure непосредственно через пользователей Entra ID. Эта новая поддержка аутентификации с помощью Entra ID устраняет необходимость разработки или эксплуатации собственной службы управления удостоверениями или прокси-службы авторизации, упомянутых в разделе «Архитектура клиента-сервера».

В следующих разделах описаны основные аспекты интеграции идентификатора Microsoft Entra ID.

Токены доступа с идентификатором Microsoft Entra ID

Поддерживаются только маркеры доступа к Службам коммуникации Azure для проверки подлинности и авторизации в Службах коммуникации Azure, включая функции чата и звонков. Дополнительные сведения о структуре маркеров и управлении ими см. в разделе "Маркеры доступа". Во время открытого предварительного просмотра Microsoft Entra ID, только области маркеров доступа для вызовов (VoIP) поддерживаются посредством интеграции Entra ID.

Интеграция Microsoft Entra ID позволяет выполнять проверку подлинности пользователей с помощью Entra ID, получать токен доступа пользователя Entra ID с разрешениями API для приложения клиентов Служб коммуникации Azure и обменять его на токен доступа к Службам коммуникации Azure. Общие пакеты SDK для Служб коммуникации Azure предлагают простую проверку подлинности, автоматически получая маркер доступа к Службам коммуникации Azure для пользователя Entra ID. Дополнительные сведения о реализации логики с помощью общего пакета SDK служб коммуникации Azure см. в статье "Получение маркеров доступа для пользователей идентификатора Microsoft Entra ID"

Разрешения API для приложения клиентов Служб коммуникации Azure называются последовательно с областями маркеров доступа к Службам коммуникации Azure, описанными в разделах области маркеров чата и области маркеров VoIP. В следующей таблице показано сопоставление разрешений API и областей маркера доступа.

Important

Разрешения API чата (Chat, Chat.Join, Chat.Join.Limited) пока не поддерживаются через Microsoft Entra ID в общедоступной предварительной версии. На данный момент доступны только разрешения, связанные с VoIP (VoIP, VoIP.Join). Поддержка чата планируется в будущем обновлении.

Разрешение API клиентов Служб коммуникации Azure Область маркера доступа к Azure Communication Services
Chat (Общедоступная предварительная версия Entra ID: только VoIP — чат будет доступен) chat
Chat.Join (Общедоступная предварительная версия Entra ID: только VoIP — чат вскоре) chat.join
Chat.Join.Limited (Публичная предварительная версия Entra ID: только VoIP — функция чата появится позже) chat.join.limited
VoIP voip
VoIP.Join voip.join

Маркеры доступа к службам коммуникации Azure выдаются с тем же сроком действия, что и маркер доступа пользователя Идентификатора Microsoft Entra.

Архитектура клиента для идентификатора Microsoft Entra

Интеграция Microsoft Entra ID позволяет упростить архитектуру, непосредственно используя Entra ID для проверки подлинности и авторизации. Ниже описан процесс.

Схема, показывающая архитектуру интеграции идентификатора Microsoft Entra.

  1. Пользователь запускает клиентское приложение.
  2. Клиентское приложение проверяет подлинность пользователя с помощью идентификатора Microsoft Entra. Клиентское приложение получает маркер доступа пользователя Entra ID с разрешениями API для приложения клиентов Служб коммуникации Azure.
  3. Клиентское приложение получает маркер доступа к Службам коммуникации Azure для пользователя Entra ID с помощью одного из следующих методов:
    • Использование общих SDK служб коммуникации Azure: клиент инициализирует CommunicationTokenCredential с параметрами учетных данных токена Entra ID, которые автоматически обрабатывают получение токена доступа Служб коммуникации Azure для пользователя Entra ID в фоновом режиме. Затем приложение использует эти учетные данные для доступа к API служб коммуникации Azure.
    • Настраиваемая реализация: Клиентское приложение обращается к API обмена токенов Entra ID для получения токена доступа к Службам коммуникации Azure. Затем полученный маркер доступа к службам коммуникации Azure используется для доступа к API Служб коммуникации Azure.

Эта архитектура устраняет необходимость отдельной службы управления удостоверениями, так как идентификатор Microsoft Entra обрабатывает проверку подлинности пользователей и авторизацию напрямую.

Ограничения

Интеграция идентификатора Microsoft Entra в настоящее время находится в предварительной версии и имеет следующие ограничения:

  • Непрерывная оценка доступа недоступна. Чтобы немедленно отозвать маркеры доступа, следуйте инструкциям в разделе "Отмена маркеров доступа".
  • При удалении пользователя Entra ID связанные данные не удаляются автоматически из ресурса Служб связи. Чтобы убедиться, что все данные удалены, следуйте инструкциям в разделе "Удаление удостоверения".
  • Разрешения API чата (сообщений) (Chat, Chat.Join, Chat.Join.Limited) нельзя предоставлять или использовать через интеграцию Microsoft Entra ID в общедоступной предварительной версии. Поддерживаются только разрешения, связанные с VoIP (VoIP, VoIP.Join). Используйте модель идентификации BYOI для получения токенов доступа к чату до генеральной доступности.

Дальнейшие шаги