Предоставление приложению разрешений RSC
Согласие для конкретных ресурсов (RSC) — это интеграция с API Microsoft Teams и Microsoft Graph, которая позволяет приложению использовать конечные точки API для управления определенными ресурсами, командами, чатами или пользователями в организации.
В этом разделе вы узнаете, как:
- Добавление разрешений RSC в приложение Teams
- Установка приложения в команде, чате или пользователе
- Проверка разрешения RSC приложения, предоставленного вашему приложению
Добавление разрешений RSC в приложение Teams
Чтобы добавить разрешения RSC в приложение, выполните следующие действия:
- Зарегистрируйте приложение на платформе удостоверений Майкрософт с помощью Центра администрирования Microsoft Entra.
- Обновите манифест приложения (ранее — манифест приложения Teams).
Регистрация приложения на платформе удостоверений Майкрософт с помощью Центра администрирования Microsoft Entra
Центр администрирования Microsoft Entra предоставляет центральную платформу для регистрации и настройки приложений. Необходимо зарегистрировать приложение в Центре администрирования Microsoft Entra, чтобы интегрироваться с платформой удостоверений и вызвать API Graph. Дополнительные сведения см. в разделе Регистрация приложения на платформе удостоверений.
Предупреждение
Вы не должны предоставлять общий доступ к идентификатору приложения Microsoft Entra в нескольких приложениях Teams. Между приложением Teams и приложением Microsoft Entra должно быть сопоставление 1:1. Установка нескольких приложений Teams, связанных с тем же идентификатором приложения Microsoft Entra, приведет к сбою установки или среды выполнения.
Обновление манифеста приложения
Необходимо объявить разрешения RSC в файле приложения manifest.json . Вам не нужно добавлять разрешения, отличные от RSC, в манифест приложения, так как они хранятся в Центре администрирования Microsoft Entra.
Запрос разрешений RSC для приложения Teams
Чтобы запросить разрешения RSC для приложения, укажите разрешения, необходимые приложению, в разделе авторизации манифеста приложения. Инструкции могут отличаться в зависимости от версии манифеста приложения.
Примечание.
Для делегированных разрешений используйте манифест приложения версии 1.12 или более поздней версии.
Всякий раз, когда авторизованный пользователь устанавливает приложение в Teams, пользователю отображаются разрешения RSC, запрошенные в манифесте приложения. Разрешения предоставляются в процессе установки приложения.
Разрешения RSC для манифеста приложения версии 1.12 или более поздней версии
Чтобы добавить разрешение RSC в манифест приложения, выполните следующие действия:
Добавьте ключ webApplicationInfo в манифест приложения со следующими значениями:
Имя Тип Описание id
String Идентификатор приложения Microsoft Entra. Дополнительные сведения см. в статье Регистрация приложения в Центре администрирования Microsoft Entra. resource
String Это поле не имеет операции в RSC, но необходимо добавить значение, чтобы избежать ответа об ошибке. В качестве значения можно добавить любую строку. Добавьте разрешения, необходимые приложению.
Имя Тип Описание authorization
Object Список разрешений, необходимых приложению для работы. Дополнительные сведения см. в разделе Авторизация в манифесте приложения. Если приложение предназначено для поддержки установки как в команде, так и в области чата, разрешения команды и чата можно указать в одном манифесте приложения в разделе
authorization
.
Пример разрешений RSC в команде:
"webApplicationInfo": {
"id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
"resource": "https://RscBasedStoreApp"
},
"authorization": {
"permissions": {
"resourceSpecific": [
{
"name": "TeamSettings.Read.Group",
"type": "Application"
},
{
"name": "TeamSettings.ReadWrite.Group",
"type": "Application"
},
{
"name": "ChannelSettings.Read.Group",
"type": "Application"
},
{
"name": "ChannelSettings.ReadWrite.Group",
"type": "Application"
},
{
"name": "Channel.Create.Group",
"type": "Application"
},
{
"name": "Channel.Delete.Group",
"type": "Application"
},
{
"name": "ChannelMessage.Read.Group",
"type": "Application"
},
{
"name": "TeamsAppInstallation.Read.Group",
"type": "Application"
},
{
"name": "TeamsTab.Read.Group",
"type": "Application"
},
{
"name": "TeamsTab.Create.Group",
"type": "Application"
},
{
"name": "TeamsTab.ReadWrite.Group",
"type": "Application"
},
{
"name": "TeamsTab.Delete.Group",
"type": "Application"
},
{
"name": "TeamMember.Read.Group",
"type": "Application"
},
{
"name": "TeamsActivity.Send.Group",
"type": "Application"
},
{
"name": "ChannelMeeting.ReadBasic.Group",
"type": "Delegated"
},
{
"name": "ChannelMeetingParticipant.Read.Group",
"type": "Delegated"
},
{
"name": "ChannelMeetingStage.Write.Group",
"type": "Delegated"
}
]
}
}
Пример разрешений RSC в чате:
"webApplicationInfo": {
"id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
"resource": "https://RscBasedStoreApp"
},
"authorization": {
"permissions": {
"resourceSpecific": [
{
"name": "ChatSettings.Read.Chat",
"type": "Application"
},
{
"name": "ChatSettings.ReadWrite.Chat",
"type": "Application"
},
{
"name": "ChatMessage.Read.Chat",
"type": "Application"
},
{
"name": "ChatMember.Read.Chat",
"type": "Application"
},
{
"name": "Chat.Manage.Chat",
"type": "Application"
},
{
"name": "TeamsTab.Read.Chat",
"type": "Application"
},
{
"name": "TeamsTab.Create.Chat",
"type": "Application"
},
{
"name": "TeamsTab.Delete.Chat",
"type": "Application"
},
{
"name": "TeamsTab.ReadWrite.Chat",
"type": "Application"
},
{
"name": "TeamsAppInstallation.Read.Chat",
"type": "Application"
},
{
"name": "OnlineMeeting.ReadBasic.Chat",
"type": "Application"
},
{
"name": "Calls.AccessMedia.Chat",
"type": "Application"
},
{
"name": "Calls.JoinGroupCalls.Chat",
"type": "Application"
},
{
"name": "TeamsActivity.Send.Chat",
"type": "Application"
},
{
"name": "MeetingStage.Write.Chat",
"type": "Delegated"
}
]
}
}
Пример разрешений RSC для пользователя:
"webApplicationInfo": {
"id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
"resource": "https://RscBasedStoreApp"
},
"authorization": {
"permissions": {
"orgWide": []
"resourceSpecific": [
{
"name": "InAppPurchase.Allow.User",
"type": "Delegated"
},
{
"name": "TeamsActivity.Send.User",
"type": "Application"
},
]
}
}
Разрешения RSC для манифеста приложения версии 1.11 или более ранней версии
Примечание.
Рекомендуется использовать манифест приложения версии 1.12 или более поздней версии.
Добавьте ключ webApplicationInfo в манифест приложения со следующими значениями:
Имя | Тип | Описание |
---|---|---|
id |
String | Идентификатор приложения Microsoft Entra. Дополнительные сведения см. в статье Регистрация приложения в Центре администрирования Microsoft Entra. |
resource |
String | Это поле не имеет операции в RSC, но необходимо добавить значение, чтобы избежать ответа об ошибке. В качестве значения можно добавить любую строку. |
applicationPermissions |
Массив строк | Разрешения RSC для приложения. Дополнительные сведения см. в разделе Поддерживаемые разрешения RSC. |
Если приложение предназначено для поддержки установки как в команде, так и в области чата, разрешения команды и чата можно указать в одном манифесте приложения в разделе applicationPermissions
.
Пример разрешений RSC в команде:
"webApplicationInfo": {
"id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
"resource": "https://RscBasedStoreApp",
"applicationPermissions": [
"TeamSettings.Read.Group",
"TeamSettings.ReadWrite.Group",
"ChannelSettings.Read.Group",
"ChannelSettings.ReadWrite.Group",
"Channel.Create.Group",
"Channel.Delete.Group",
"ChannelMessage.Read.Group",
"TeamsAppInstallation.Read.Group",
"TeamsTab.Read.Group",
"TeamsTab.Create.Group",
"TeamsTab.ReadWrite.Group",
"TeamsTab.Delete.Group",
"TeamMember.Read.Group",
"TeamsActivity.Send.Group"
]
}
Пример разрешений RSC в чате:
"webApplicationInfo": {
"id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
"resource": "https://RscBasedStoreApp",
"applicationPermissions": [
"ChatSettings.Read.Chat",
"ChatSettings.ReadWrite.Chat",
"ChatMessage.Read.Chat",
"ChatMember.Read.Chat",
"Chat.Manage.Chat",
"TeamsTab.Read.Chat",
"TeamsTab.Create.Chat",
"TeamsTab.Delete.Chat",
"TeamsTab.ReadWrite.Chat",
"TeamsAppInstallation.Read.Chat",
"OnlineMeeting.ReadBasic.Chat",
"Calls.AccessMedia.Chat",
"Calls.JoinGroupCalls.Chat",
"TeamsActivity.Send.Chat"
]
}
Пример разрешений RSC для пользователя:
"webApplicationInfo": {
"id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
"resource": "https://RscBasedStoreApp",
"applicationPermissions": [
"TeamsActivity.Send.User"
]
}
Установка приложения в команде, чате или пользователе
Чтобы установить приложение, для которого вы включили разрешение RSC в команде, чате или пользователе, выполните следующие действия.
- Убедитесь, что вы настроили параметры согласия для команды, чата или пользователя.
- Отправьте пользовательское приложение в Teams.
Примечание.
Чтобы просмотреть параметры RSC для команды или чата, пользователи должны иметь одну из следующих ролей Microsoft 365:
- Глобальный администратор
- Глобальный читатель
- Администратор Teams
- Администратор привилегированных ролей
Настройка параметров согласия
Элементы управления на уровне клиента разрешений RSC приложения зависят от типа ресурса.
Для делегированных разрешений любой авторизованный пользователь может предоставить согласие на разрешения, запрошенные приложением.
Предупреждение
Обновляется способ управления параметрами разрешений RSC для команды и чата. Период предварительного отбора для облаков для государственных организаций начался и продолжается до 14 мая 2024 года. В течение этого периода облачные организации государственных организаций могут продолжать использовать согласие владельца группы. Для всех других организаций ниже приведены инструкции по изменению параметров согласия в PowerShell.
Для организаций в облаках для государственных организаций вы можете управлять параметрами согласия с помощью параметров согласия владельца группы в Центре администрирования Microsoft Entra до 14 мая 2024 г.
Параметры RSC на уровне клиента управляются PowerShell и API Graph. Дополнительные сведения об управлении параметрами Microsoft Graph с помощью PowerShell см. в статье Начало работы с пакетом SDK Для Microsoft Graph PowerShell.
Вы можете использовать Connect-MgGraph
командлет и подключиться со следующими разрешениями:
TeamworkAppSettings.ReadWrite.All
Policy.ReadWrite.Authorization
Policy.ReadWrite.PermissionGrant
AppCatalog.Read.All
Ниже приведены доступные состояния для параметров PowerShell, и в каждом разделе приведены примеры использования этих состояний для настройки параметров.
Состояние PowerShell | Описание |
---|---|
ManagedByMicrosoft | Это состояние по умолчанию для всех клиентов. Он позволяет предоставить согласие на разрешения RSC для чата и команды для всех пользователей, но их можно изменить в любое время по усмотрению Корпорации Майкрософт. |
EnabledForAllApps | Любое приложение, запрашивающее разрешения RSC, может быть предоставлено согласием пользователей (владельцев ресурсов) в вашем клиенте. |
DisabledForAllApps | Пользователи не могут предоставить согласие на разрешения RSC. |
Настройка командной команды RSC с помощью командлетов PowerShell
Вы можете настроить, каким пользователям разрешено предоставлять согласие на доступ к приложениям, обращающимся к данным команд, с помощью доступных состояний PowerShell, таких как ManagedByMicrosoft, EnabledForAllApps и DisabledForAllApps.
В следующем примере показано, как включить командную RSC для всех приложений:
Set-MgBetaTeamRscConfiguration -State EnabledForAllApps
Настройка RSC чата с помощью командлетов PowerShell
Вы можете настроить, каким пользователям разрешено предоставлять согласие на доступ к данным своих чатов, используя доступные состояния PowerShell, такие как ManagedByMicrosoft, EnabledForAllApps и DisabledForAllApps.
В следующем примере показано, как включить RSC чата для всех приложений:
Set-MgBetaChatRscConfiguration -State EnabledForAllApps
Настройка параметров согласия владельца пользователя для RSC для пользователя с помощью API Graph
Вы можете включить или отключить RSC для пользователей с помощью API Graph. Свойство isUserPersonalScopeResourceSpecificConsentEnabled
teamsAppSettings определяет, включен ли RSC пользователя в клиенте.
Значение isUserPersonalScopeResourceSpecificConsentEnabled
свойства по умолчанию зависит от того, включено или отключено ли в клиенте параметры согласия пользователя при первом использовании RSC для пользователя. Значение по умолчанию определяется в следующих случаях:
- TeamsAppSettings извлекаются в первый раз.
- Приложение Teams с разрешениями RSC устанавливается для пользователя.
Примечание.
Элемент управления администратора добавляется для разрешения или блокировки параметров согласия RSC в зависимости от конфиденциальности данных, к которые обращаются. Он не основан на одном главном коммутаторе, который включает или отключает параметры согласия для разрешений RSC приложения для всех приложений в клиенте.
Отправка пользовательского приложения в Teams
Если администратор Teams разрешает отправку пользовательских приложений, вы можете отправить пользовательское приложение непосредственно в определенную команду, чат или пользователя.
Проверка разрешения RSC приложения, предоставленного вашему приложению
Чтобы проверить разрешения RSC приложения, выполните следующие действия.
- Получите маркер доступа на платформе удостоверений Майкрософт.
- Проверьте разрешения RSC, предоставленные конкретному ресурсу.
Получите токен доступа от платформы удостоверений Майкрософт.
Чтобы совершать вызовы Graph API, вы должны получить токен доступа для своего приложения на платформе идентификации. Прежде чем приложение сможет получить маркер с платформы удостоверений, необходимо зарегистрировать приложение в Центре администрирования Microsoft Entra. Маркер доступа содержит сведения о вашем приложении и его разрешениях для ресурсов и API, доступных через Microsoft Graph.
Чтобы получить маркер доступа из платформы удостоверений, необходимо иметь следующие значения из процесса регистрации Microsoft Entra:
- Идентификатор приложения: идентификатор приложения, назначенный центром администрирования Microsoft Entra вашему приложению. Если приложение поддерживает единый вход( SSO), необходимо использовать один и тот же идентификатор приложения для приложения и единого входа.
- Секрет клиента или сертификат: пароль для приложения или пара открытого или закрытого ключа, которая является сертификатом. Секрет клиента или сертификат не требуются для собственных приложений.
- URI перенаправления: URL-адрес, в который приложение будет получать ответы из идентификатора Microsoft Entra.
Подробности в разделе Получение доступа от имени пользователя и Получение доступа без пользователя.
Проверка разрешений RSC, предоставленных конкретному ресурсу
Вы можете проверить тип разрешения RSC, предоставленного ресурсу в приложении:
Чтобы получить разрешения RSC приложения, вызовите следующие API, чтобы получить список приложений, установленных в команде, чате или пользователе:
Это все разрешения RSC приложения, предоставленные этому конкретному ресурсу. Каждую запись в списке можно сопоставить с приложением Teams, сопоставив в списке
clientAppId
разрешений со свойствомwebApplicationInfo.Id
в манифесте приложения.Делегированные разрешения RSC — это разрешения только для клиента Teams. Вы не можете получить список приложений, установленных в команде или чате, так как эти разрешения предоставляются при взаимодействии пользователя с приложением.
Важно!
Разрешения RSC не приписывается пользователю. Вызовы выполняются с разрешениями приложений, а не с делегированными пользователями разрешениями. Приложению может быть разрешено выполнять действия, которые не могут быть у пользователя, например удалять вкладку. Прежде чем выполнять вызовы API RSC, необходимо проверить намерение владельца команды или владельца чата. Подробности в статье Обзор API Microsoft Teams.
После установки приложения в ресурс можно использовать Обозреватель Microsoft Graph для просмотра разрешений, предоставленных приложению в ресурсе.
Проверьте, есть ли у приложения добавленные разрешения RSC в команде
Получите groupId команды из Teams.
В Teams выберите Teams в области слева.
Выберите команду, в которую нужно установить приложение.
Выберите многоточие ●●● для этой команды.
Выберите Получить ссылку на команду в раскрывающемся списке.
Скопируйте и сохраните значение groupId во всплывающем диалоговом окне Получение ссылки на команду .
Войдите в Обозреватель Graph
Вызовите GET для этой конечной точки:
https://graph.microsoft.com/beta/teams/{teamGroupId}/permissionGrants
.Поле
clientAppId
в ответе должно сопоставляться сwebApplicationInfo.id
указанным в манифесте приложения.
Подробнее о том, как получить сведения о приложениях, установленных в определенной группе, см. в статье Получение имен и других сведений о приложениях, установленных в указанной группе.
Проверьте свое приложение на добавленные разрешения RSC в чате
Получите идентификатор потока чата из веб-клиента Teams.
В веб-клиенте Teams выберите Чат в области слева.
Выберите чат, в котором вы установили приложение, из раскрывающегося списка.
Скопируйте веб-URL и сохраните идентификатор цепочки чата из строки.
Войдите в Обозреватель Graph
Вызовите GET для следующей конечной точки:
https://graph.microsoft.com/beta/chats/{chatId}/permissionGrants
.Поле
clientAppId
в ответе должно сопоставляться сwebApplicationInfo.id
указанным в манифесте приложения.
Подробнее о том, как получить сведения о приложениях, установленных в определенном чате, см. в статье Получение имен и других сведений о приложениях, установленных в указанном чате.
Проверьте приложение на наличие добавленных разрешений RSC для пользователя
Используйте API получения пользователя. В URL-адресе запроса передайте имя участника-пользователя и в тексте
id
ответа используйте поле в качестве идентификатора пользователя.Войдите в Обозреватель Graph
Вызовите GET для этой конечной точки:
https://graph.microsoft.com/beta/users/{user-id}/permissionGrants
.Кроме того, можно передать имя участника-пользователя вместо
user-id
.Поле
clientAppId
в ответе должно сопоставляться сwebApplicationInfo.id
указанным в манифесте приложения Teams.
Дополнительные сведения о том, как получить сведения о приложениях, установленных для пользователя, см. в статье Получение имен и других сведений о приложениях, установленных для пользователя.
Пример кода
Название примера | Описание | .NET | Node.js | Манифест приложения |
---|---|---|---|---|
Согласие для определенного ресурса (RSC) | В этом примере кода описывается процесс использования RSC для вызова API Graph. | Просмотр | Просмотр | Просмотр |
Настройка разрешений RSC | В этом примере кода показано, как настроить разрешения RSC в манифесте приложения, использовать их для вызова Microsoft Graph и наблюдать за фактическим ответом с установленной областью. | Н/Д | Просмотр | Недоступно |
См. также
Platform Docs