Модель удостоверений
Службы коммуникации Azure — это служба, не зависящая от удостоверений, которая предлагает несколько преимуществ:
- Повторно используйте существующие удостоверения из системы управления удостоверениями и просто сопоставите их с удостоверениями Службы коммуникации Azure.
- Обеспечивает гибкость интеграции, так как модель, не зависящая от удостоверений, хорошо работает с существующей системой удостоверений.
- Вы можете сохранить данные пользователя, такие как их имя, закрытые, так как не нужно дублировать его в Службы коммуникации Azure.
Службы коммуникации Azure модель идентификации работает с двумя ключевыми понятиями.
Удостоверение пользователя и сопоставление
Уникально идентифицирует пользователя с помощью идентификатора пользователя, который создается Службы коммуникации Azure при создании пользователя. Внешние идентификаторы, такие как номера телефонов, пользователи, устройства, приложения и идентификаторы GUID, нельзя использовать для идентификации в Службах коммуникации Azure. Вы можете бесплатно создавать удостоверения пользователей Службы коммуникации Azure. Плата взимается только в том случае, если пользователь использует модальности связи, например чат или звонок. Удостоверение пользователей можно сопоставить с Службы коммуникации Azure удостоверения пользователя в конфигурациях 1:1, 1:N, N:1, N:N. Пользователь может участвовать в нескольких сеансах связи, одновременно используя несколько устройств. Сопоставление между удостоверением пользователя Службы коммуникации Azure и частным удостоверением пользователя клиента сохраняется и поддерживается клиентом. Например, клиенты могут добавить CommunicationServicesId
столбец в таблицу пользователей для хранения связанного удостоверения Службы коммуникации Azure.
Маркеры доступа
После создания удостоверения пользователя пользователь получает возможность участвовать в взаимодействии с помощью чата или звонков с помощью маркеров доступа. Например, только пользователь с маркером чата может участвовать в чате, а пользователь с токеном VoIP может участвовать в вызове VoIP. Пользователь может одновременно иметь несколько маркеров. Службы коммуникации Azure поддерживает несколько типов маркеров для учетной записи пользователей, которым требуется полный доступ и ограниченный доступ. Маркеры доступа имеют следующие свойства.
Свойство | Description |
---|---|
Идентификация | Уникально идентифицирует токен |
Истечение срока действия | Маркер доступа действителен в течение периода времени от 1 до 24 часов. После истечения срока действия маркер доступа становится недействительным и не может быть использован для получения доступа к примитивам. Чтобы создать маркер с пользовательским сроком действия, укажите требуемый срок действия при создании маркера. Если пользовательский срок действия не указан, маркер будет действителен в течение 24 часов. Мы рекомендуем использовать короткие маркеры времени существования для одноуровневых собраний и более длительных маркеров времени существования для агентов, использующих приложение в течение длительного периода времени. |
Область | Параметр область определяет непустый набор примитивов (Chat/VoIP), который можно использовать. |
Маркер доступа — это веб-токен JSON (JWT) и имеет защиту целостности. Это значит, что после выдачи маркера его утверждения нельзя изменить. Изменение свойств, таких как удостоверение, срок действия или области, делает маркер недействительным. Использование примитивов с помощью с недействительных маркеров приведет к запрету доступа. Службы коммуникации Azure поддерживают следующие области для маркеров доступа.
Маркер чата область
Поддерживаются три типа маркеров чата область. Ниже описаны разрешения для каждого маркера.
- чат
- chat.join
- chat.join.limited
Возможность / область маркера | чат | chat.join | chat.join.limited |
---|---|---|---|
Создание потока чата | Y | N | N |
Обновление потока чата с идентификатором | Y | N | N |
Удаление потока чата с идентификатором | 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 InProgress | Y | Y |
Присоединение вызова VoIP InProgress в виртуальных комнатах, когда пользователь уже приглашен в комнату | Y | Y |
Все остальные операции в вызове, такие как отключение или отключение звука, общий доступ к экрану и т. д. | Y | Y |
Все остальные операции в вызове, такие как отключение или отключение звука, общий доступ к экрану и т. д. в виртуальных комнатах. | Определяется ролью пользователя | Определяется ролью пользователя |
Отзыв или обновление маркера доступа
- Службы коммуникации Azure библиотеку удостоверений можно использовать для отзыва маркера доступа до истечения срока действия. Отзыв маркера не производится немедленно. Для распространения может потребоваться до 15 минут.
- Удаление удостоверения, ресурса или подписки отменяет все маркеры доступа.
- Чтобы удалить для пользователя возможность доступа к определенным функциям, отмените все маркеры доступа. Затем выдайте новый маркер доступа с ограниченным набором областей.
- Смена ключей доступа отменяет все активные маркеры доступа, созданные с помощью бывшего ключа доступа. В этом случае все удостоверения теряют доступ к Службы коммуникации Azure, и они должны выдавать новые маркеры доступа.
Рекомендации
- Рекомендуется выдавать маркеры доступа в службе на стороне сервера, а не в приложении клиента, Причина заключается в том, что для выдачи требуется ключ доступа или проверка подлинности Microsoft Entra. По соображениям безопасности не рекомендуется предоставлять общий доступ к секретам приложения клиента.
- Клиентское приложение должно использовать конечную точку доверенной службы, которая может проходить проверку подлинности клиентов. Конечная точка должна выдавать маркеры доступа от их имени. Дополнительные сведения см. в статье Архитектура клиента и сервера.
- При кэшировании маркеров доступа в резервное хранилище рекомендуется использовать шифрование. Маркер доступа содержит конфиденциальные данные. При отсутствии защиты он может быть использован для совершения вредоносных действий. Злоумышленник, получивший маркер доступа, может запустить пакет SDK и получить доступ к API. Права доступа API ограничены только областью действия, установленной для маркера доступа.
- Рекомендуется выдавать маркеры доступа, которые включают в себя только необходимые области.
Следующие шаги
- Общие сведения об управлении маркерами доступа см. в статье Создание маркеров доступа и управление ими.
- Общие сведения о проверке подлинности см. в статье Аутентификация в Службах коммуникации Azure.
- Общие сведения о месте расположения и конфиденциальности данных см. в разделе Доступность в регионах и место расположения данных.
- Чтобы научиться быстро создавать удостоверения для тестирования, ознакомьтесь с кратким руководством по созданию удостоверений.