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


Предоставление приложению разрешений RSC

Согласие для конкретных ресурсов (RSC) — это интеграция Microsoft Teams и Microsoft API Graph, которая позволяет приложению использовать конечные точки API для управления определенными ресурсами, командами, чатами или пользователями в организации.

В этом разделе вы узнаете, как:

  1. Добавление разрешений RSC в приложение Teams
  2. Установка приложения в команде, чате или пользователе
  3. Проверка разрешения RSC приложения, предоставленного вашему приложению

Добавление разрешений RSC в приложение Teams

Чтобы добавить разрешения RSC в приложение, выполните следующие действия:

  1. Зарегистрируйте приложение в платформа удостоверений Майкрософт с помощью Центр администрирования Microsoft Entra.
  2. Обновите манифест приложения (ранее — манифест приложения 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 в манифест приложения, выполните следующие действия:

  1. Добавьте ключ webApplicationInfo в манифест приложения со следующими значениями:

    Имя Тип Описание
    id String Идентификатор приложения Microsoft Entra. Дополнительные сведения см. в разделе Регистрация приложения в Центр администрирования Microsoft Entra.
    resource String Это поле не имеет операции в RSC, но необходимо добавить значение, чтобы избежать ответа об ошибке. В качестве значения можно добавить любую строку.
  2. Добавьте разрешения, необходимые приложению.

    Имя Тип Описание
    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 в команде, чате или пользователе, выполните следующие действия.

  1. Убедитесь, что вы настроили параметры согласия для команды, чата или пользователя.
  2. Отправьте пользовательское приложение в 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 командлет и подключиться со следующими разрешениями:

  1. TeamworkAppSettings.ReadWrite.All
  2. Policy.ReadWrite.Authorization
  3. Policy.ReadWrite.PermissionGrant
  4. 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. Свойство isUserPersonalScopeResourceSpecificConsentEnabledteamsAppSettings определяет, включен ли RSC пользователя в клиенте.

Снимок экрана: конфигурация пользователя Graph RSC.

Значение isUserPersonalScopeResourceSpecificConsentEnabled свойства по умолчанию зависит от того, включено или отключено ли в клиенте параметры согласия пользователя при первом использовании RSC для пользователя. Значение по умолчанию определяется в следующих случаях:

  • TeamsAppSettings извлекаются в первый раз.
  • Приложение Teams с разрешениями RSC устанавливается для пользователя.

Примечание.

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


Отправка пользовательского приложения в Teams

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

Проверка разрешения RSC приложения, предоставленного вашему приложению

Чтобы проверить разрешения RSC приложения, выполните следующие действия.

  1. Получите маркер доступа из платформа удостоверений Майкрософт.
  2. Проверьте разрешения RSC, предоставленные конкретному ресурсу.

Получите токен доступа от платформы удостоверений Майкрософт.

Чтобы совершать вызовы Graph API, вы должны получить токен доступа для своего приложения на платформе идентификации. Прежде чем приложение сможет получить маркер с платформы удостоверений, необходимо зарегистрировать приложение в Центр администрирования Microsoft Entra. Маркер доступа содержит сведения о вашем приложении и его разрешениях для ресурсов и API, доступных через Microsoft Graph.

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

  • Идентификатор приложения: идентификатор приложения, назначенный Центр администрирования Microsoft Entra вашему приложению. Если приложение поддерживает единый вход( SSO), необходимо использовать один и тот же идентификатор приложения для приложения и единого входа.
  • Секрет клиента или сертификат: пароль для приложения или пара открытого или закрытого ключа, которая является сертификатом. Секрет клиента или сертификат не требуются для собственных приложений.
  • URI перенаправления: URL-адрес, в который приложение будет получать ответы от Microsoft Entra ID.

Подробности в разделе Получение доступа от имени пользователя и Получение доступа без пользователя.

Проверка разрешений RSC, предоставленных конкретному ресурсу

Вы можете проверка тип разрешения RSC, предоставленного ресурсу в приложении:

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

    Это все разрешения RSC приложения, предоставленные этому конкретному ресурсу. Каждую запись в списке можно сопоставить с приложением Teams, сопоставив в списке clientAppId разрешений со свойством webApplicationInfo.Id в манифесте приложения.

  • Делегированные разрешения RSC — это разрешения только для клиента Teams. Вы не можете получить список приложений, установленных в команде или чате, так как эти разрешения предоставляются при взаимодействии пользователя с приложением.

Важно!

Разрешения RSC не приписывается пользователю. Вызовы выполняются с разрешениями приложений, а не с делегированными пользователями разрешениями. Приложению может быть разрешено выполнять действия, которые не могут быть у пользователя, например удалять вкладку. Прежде чем выполнять вызовы API RSC, необходимо проверить намерение владельца команды или владельца чата. Подробности в статье Обзор API Microsoft Teams.

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

Проверьте, есть ли у приложения добавленные разрешения RSC в команде

  1. Получите groupId команды из Teams.

  2. В Teams выберите Teams в области слева.

  3. Выберите команду, в которую нужно установить приложение.

  4. Выберите многоточие ●●● для этой команды.

  5. Выберите Получить ссылку на команду в раскрывающемся списке.

  6. Скопируйте и сохраните значение groupId во всплывающем диалоговом окне Получение ссылки на команду .

  7. Войдите в Обозреватель Graph

  8. Вызовите GET для этой конечной точки: https://graph.microsoft.com/beta/teams/{teamGroupId}/permissionGrants.

    Поле clientAppId в ответе должно сопоставляться с webApplicationInfo.id указанным в манифесте приложения.

    Снимок экрана: ответ обозревателя Graph на вызов GET для разрешения RSC команды.

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

Проверьте свое приложение на добавленные разрешения RSC в чате

  1. Получите идентификатор потока чата из веб-клиента Teams.

  2. В веб-клиенте Teams выберите Чат в области слева.

  3. Выберите чат, в котором вы установили приложение, из раскрывающегося списка.

  4. Скопируйте веб-URL и сохраните идентификатор цепочки чата из строки.

    Снимок экрана: идентификатор потока чата из URL-адреса веб-сайта.

  5. Войдите в Обозреватель Graph

  6. Вызовите GET для следующей конечной точки: https://graph.microsoft.com/beta/chats/{chatId}/permissionGrants.

    Поле clientAppId в ответе должно сопоставляться с webApplicationInfo.id указанным в манифесте приложения.

    Снимок экрана: ответ обозревателя Graph на вызов GET для разрешений RSC чата.

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

Проверьте приложение на наличие добавленных разрешений RSC для пользователя

  1. Используйте API получения пользователя. В URL-адресе запроса передайте имя участника-пользователя и в тексте id ответа используйте поле в качестве идентификатора пользователя.

  2. Войдите в Обозреватель Graph

  3. Вызовите GET для этой конечной точки: https://graph.microsoft.com/beta/users/{user-id}/permissionGrants.

    Кроме того, можно передать имя участника-пользователя вместо user-id.

    Поле clientAppId в ответе должно сопоставляться с webApplicationInfo.id указанным в манифесте приложения Teams.

    Снимок экрана: ответ обозревателя Graph на вызов GET для разрешений RSC пользователя.

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

Пример кода

Название примера Описание .NET Node.js Манифест приложения
Согласие для определенного ресурса (RSC) В этом примере кода описывается процесс использования RSC для вызова API Graph. Просмотр Просмотр Просмотр

Дополнительные ресурсы