Gewähren von RSC-Berechtigungen für Ihre App

Die ressourcenspezifische Zustimmung (Resource-Specific Consent, RSC) ist eine Integration von Microsoft Teams und Microsoft Graph-API, die es Ihrer App ermöglicht, API-Endpunkte zum Verwalten bestimmter Ressourcen zu verwenden, entweder Teams, Chats oder Benutzer innerhalb eines organization.

In diesem Abschnitt lernen Sie Folgendes:

  1. Hinzufügen von RSC-Berechtigungen zu Ihrer Teams-App
  2. Installieren Ihrer App in einem Team, Chat oder Benutzer
  3. Überprüfen der App-RSC-Berechtigung, die Ihrer App gewährt wurde

Hinzufügen von RSC-Berechtigungen zu Ihrer Teams-App

Führen Sie die folgenden Schritte aus, um Ihrer App RSC-Berechtigungen hinzuzufügen:

  1. Registrieren Sie Ihre App über das Azure AD-Portal bei Microsoft Identity Platform.
  2. Aktualisieren Sie Ihr App-Manifest (zuvor als Teams-App-Manifest bezeichnet).

Registrieren Ihrer App bei Microsoft Identity Platform über das Azure AD-Portal

Das Azure Active Directory-Portal (Azure AD) bietet eine zentrale Plattform, auf der Sie Ihre Apps registrieren und konfigurieren können. Sie müssen Ihre App im Azure AD-Portal registrieren, damit sie in die Identity Platform integriert werden kann, und Graph-APIs aufrufen. Weitere Informationen finden Sie unter Registrieren einer App bei der Identity Platform.

Warnung

Sie dürfen Ihre Azure AD-App-ID nicht für mehrere Teams-Apps freigeben. Es muss eine 1:1 Zuordnung zwischen einer Teams-App und einer Azure AD-App vorhanden sein. Die Installation mehrerer Teams-Apps, die derselben Azure AD-App-ID zugeordnet sind, führt zu Installations- oder Laufzeitfehlern.

Aktualisieren Ihres App-Manifests

Sie müssen RSC-Berechtigungen in Ihrer App-Datei manifest.json deklarieren. Sie müssen dem App-Manifest keine Nicht-RSC-Berechtigungen hinzufügen, da sie im Azure AD-Portal gespeichert werden.

Anfordern von RSC-Berechtigungen für die Teams-App

Um RSC-Berechtigungen für eine App anzufordern, listen Sie die Berechtigungen, die die App benötigt, im Autorisierungsabschnitt des App-Manifests auf. Die Anweisungen können je nach App-Manifestversion der App variieren.

Hinweis

Verwenden Sie für delegierte Berechtigungen App-Manifest v1.12 oder höher.

Wenn ein autorisierter Benutzer Ihre App in Teams installiert, werden dem Benutzer die im App-Manifest angeforderten RSC-Berechtigungen angezeigt. Die Berechtigungen werden im Rahmen des App-Installationsvorgangs erteilt.


RSC-Berechtigungen für App-Manifest v1.12 oder höher

So fügen Sie die RSC-Berechtigung im App-Manifest hinzu:

  1. Fügen Sie dem App-Manifest den Schlüssel webApplicationInfo mit den folgenden Werten hinzu:

    Name Typ Beschreibung
    id Zeichenfolge Ihre Azure AD App-ID. Weitere Informationen finden Sie unter App im Azure AD-Portal registrieren.
    resource Zeichenfolge Dieses Feld hat keinen Vorgang in RSC, aber Sie müssen einen Wert hinzufügen, um eine Fehlerantwort zu vermeiden. Sie können eine beliebige Zeichenfolge als Wert hinzufügen.
  2. Fügen Sie berechtigungen hinzu, die für Ihre App erforderlich sind.

    Name Typ Beschreibung
    authorization Object Liste der Berechtigungen, welche die App benötigt, um zu funktionieren. Weitere Informationen finden Sie unter Autorisierung im App-Manifest.

    Wenn eine App die Installation sowohl im Team- als auch im Chatbereich unterstützen soll, können sowohl Team- als auch Chatberechtigungen im selben App-Manifest unter authorizationangegeben werden.

Beispiel für RSC-Berechtigungen in einem Team:

"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"
            }
        ]
    }
}

Beispiel für RSC-Berechtigungen in einem Chat:

"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"
            }
        ]
    }
}

Beispiel für RSC-Berechtigungen für Benutzer:

"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-Berechtigungen für App-Manifest v1.11 oder früher

Hinweis

Es wird empfohlen, App-Manifest v1.12 oder höher zu verwenden.

Fügen Sie dem App-Manifest den Schlüssel webApplicationInfo mit den folgenden Werten hinzu:

Name Typ Beschreibung
id Zeichenfolge Ihre Azure AD App-ID. Weitere Informationen finden Sie unter App im Azure AD-Portal registrieren.
resource Zeichenfolge Dieses Feld hat keinen Vorgang in RSC, aber Sie müssen einen Wert hinzufügen, um eine Fehlerantwort zu vermeiden. Sie können eine beliebige Zeichenfolge als Wert hinzufügen.
applicationPermissions Array aus Zeichenfolgen RSC-Berechtigungen für Ihre App. Weitere Informationen finden Sie unter Unterstützte RSC-Berechtigungen.

Wenn eine App die Installation sowohl im Team- als auch im Chatbereich unterstützen soll, können sowohl Team- als auch Chatberechtigungen im selben App-Manifest unter applicationPermissionsangegeben werden.

Beispiel für RSC-Berechtigungen in einem Team:

"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"
    ]
  }

Beispiel für RSC-Berechtigungen in einem Chat:

"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"
    ]
  }

Beispiel für RSC-Berechtigungen für einen Benutzer:

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp",
    "applicationPermissions": [
        "TeamsActivity.Send.User"
    ]
  }

Installieren Ihrer App in einem Team, Chat oder Benutzer

Führen Sie die folgenden Schritte aus, um Ihre App zu installieren, für die Sie die RSC-Berechtigung in einem Team, Chat oder Benutzer aktiviert haben:

  1. Stellen Sie sicher, dass Sie die Zustimmungseinstellungen für Team, Chat oder Benutzer konfiguriert haben.
  2. Laden Sie Ihre App in Teams quer.

Die Steuerungen der RSC-Berechtigungen für Anwendungen auf Mandantenebene variieren je nach Ressourcentyp.

Bei delegierten Berechtigungen kann jeder autorisierte Benutzer den von der App angeforderten Berechtigungen zustimmen.


Konfigurieren der Zustimmungseinstellungen für Gruppenbesitzer für RSC in einem Team mithilfe des Azure AD-Portals

Sie können die Zustimmung des Gruppenbesitzers direkt im Azure AD-Portal aktivieren oder deaktivieren:

  1. Melden Sie sich beim Azure AD-Portal als globaler Administrator an.

  2. Wählen Sie Azure Active Directory-Unternehmens-Apps>>Zustimmung und Berechtigungen>Einstellungen für benutzerspezifische Zustimmung aus.

  3. Aktivieren, deaktivieren oder beschränken Sie die Benutzereinwilligung mit dem Steuerelement mit der Bezeichnung Gruppeneigentümereinwilligung für Apps, die auf Daten zugreifen. Standardmäßig ist die Option Zustimmung des Gruppenbesitzers für alle Gruppenbesitzer zulassen ausgewählt. Damit ein Teambesitzer eine App mithilfe von RSC installieren kann, aktivieren Sie die Gruppenbesitzerzustimmung für diesen Benutzer.

    Screenshot: Konfiguration des Azure RSC-Teams

Darüber hinaus können Sie die Zustimmung von Gruppenbesitzern mithilfe von PowerShell aktivieren oder deaktivieren. Führen Sie die schritte aus, die unter Konfigurieren der Zustimmung des Gruppenbesitzers mithilfe von PowerShell beschrieben sind.


Konfigurieren der Zustimmungseinstellungen des Chatbesitzers für RSC in einem Chat mithilfe der Graph-APIs

Sie können RSC für Chats mithilfe von Graph-API aktivieren oder deaktivieren. Die Eigenschaft isChatResourceSpecificConsentEnabled in teamsAppSettings bestimmt, ob chat RSC im Mandanten aktiviert ist.

Screenshot: Graph RSC-Teamkonfiguration

Der Standardwert der Eigenschaft isChatResourceSpecificConsentEnabled basiert darauf, ob die Einstellungen für die Benutzerwilligung im Mandanten aktiviert oder deaktiviert sind, wenn RSC für Chats zum ersten Mal verwendet wird. Der Standardwert wird in folgenden Fällen definiert:

  • TeamsAppSettings werden zum ersten Mal abgerufen.
  • Die Teams-App mit RSC-Berechtigungen wird in einem Chat oder einer Besprechung installiert.

Hinweis

Admin-Steuerelement wird hinzugefügt, um RSC-Einstellungen basierend auf der Vertraulichkeit der abgerufenen Daten zuzulassen oder zu blockieren. Das Steuerelement ist unabhängig von den organisationsweiten App-Einstellungen für RSC, die RSC-Berechtigungen für alle Apps im Mandanten zulässt oder blockiert.



Konfigurieren der Zustimmungseinstellungen des Benutzerbesitzers für RSC für einen Benutzer mithilfe der Graph-APIs

Sie können RSC für Benutzer mithilfe von Graph-API aktivieren oder deaktivieren. Die Eigenschaft isUserPersonalScopeResourceSpecificConsentEnabled in teamsAppSettings bestimmt, ob benutzer-RSC im Mandanten aktiviert ist.

Der Screenshot zeigt die Graph RSC-Benutzerkonfiguration.

Der Standardwert der Eigenschaft isUserPersonalScopeResourceSpecificConsentEnabled basiert darauf, ob die Einstellungen für die Benutzerwilligung im Mandanten aktiviert oder deaktiviert sind, wenn RSC für Benutzer zum ersten Mal verwendet wird. Der Standardwert wird in folgenden Fällen definiert:

  • TeamsAppSettings werden zum ersten Mal abgerufen.
  • Die Teams-App mit RSC-Berechtigungen wird für einen Benutzer installiert.

Hinweis

Admin-Steuerelement wird hinzugefügt, um RSC-Zustimmungseinstellungen basierend auf der Vertraulichkeit der abgerufenen Daten zuzulassen oder zu blockieren. Es basiert nicht auf dem einzelnen master Switch, der Zustimmungseinstellungen für App-RSC-Berechtigungen für alle Apps im Mandanten aktiviert oder deaktiviert.


Querladen der App in Microsoft Teams

Wenn Ihr Teams-Administrator benutzerdefinierte App-Uploads zulässt, können Sie Ihre App direkt an ein bestimmtes Team, einen Chat oder einen bestimmten Benutzer querladen .

Überprüfen der App-RSC-Berechtigung, die Ihrer App gewährt wurde

Führen Sie die folgenden Schritte aus, um die RSC-Berechtigungen der App zu überprüfen:

  1. Rufen Sie ein Zugriffstoken vom Microsoft Identity Platform ab.
  2. Überprüfen Sie die RSC-Berechtigungen, die einer bestimmten Ressource gewährt werden.

Rufen Sie ein Zugriffstoken von der Microsoft Identity Platform ab

Um Graph-API-Aufrufe durchzuführen, müssen Sie ein Zugriffstoken für Ihre App von der Identitätsplattform erhalten. Bevor Ihre App ein Token von der Identity Platform abrufen kann, müssen Sie Ihre App im Azure AD-Portal registrieren. Das Zugriffstoken enthält Informationen zu Ihrer App und deren Berechtigungen für die Ressourcen und APIs, die über Microsoft Graph verfügbar sind.

Sie benötigen die folgenden Werte aus dem Azure AD-Registrierungsprozess, um ein Zugriffstoken von der Identitätsplattform abzurufen:

  • Anwendungs-ID: Die App-ID, die Ihrer App vom Azure AD-Portal zugewiesen wird. Wenn Ihre App einmaliges Anmelden (Single Sign-On, SSO) unterstützt, müssen Sie die gleiche App-ID für Ihre App und SSO verwenden.
  • Geheimer Clientschlüssel oder Zertifikat: Das Kennwort für Ihre App oder das öffentliche oder private Schlüsselpaar, bei dem es sich um das Zertifikat handelt. Der geheime Clientschlüssel oder das Zertifikat ist für native Apps nicht erforderlich.
  • Umleitungs-URI: Die URL für Ihre App zum Empfangen von Antworten von Azure AD.

Weitere Informationen finden Sie unter Zugriff im Auftrag eines Benutzers erhalten und Zugriff ohne Benutzer erhalten.

Überprüfen der RSC-Berechtigungen, die einer bestimmten Ressource gewährt werden

Sie können den Typ der RSC-Berechtigung überprüfen, die einer Ressource in der App gewährt wird:

  • Rufen Sie für RsC-Berechtigungen für Anwendungen die folgenden APIs auf, um die Liste der apps abzurufen, die in einem Team, Chat oder Benutzer installiert sind:

    Dies sind alle RSC-Anwendungsberechtigungen, die für diese bestimmte Ressource erteilt werden. Jeder Eintrag in der Liste kann mit der Teams-App korreliert werden, indem der clientAppId in der Berechtigungsgewährungsliste mit der webApplicationInfo.Id -Eigenschaft im App-Manifest abgegleicht wird.

  • Delegierte RSC-Berechtigungen sind nur Teams-Clientberechtigungen. Sie können die Liste der in einem Team oder Chat installierten Apps nicht abrufen, da diese Berechtigungen erteilt werden, wenn ein Benutzer mit der App interagiert.

Wichtig

Die RSC-Berechtigungen werden keinem Benutzer zugewiesen. Aufrufe erfolgen mit Anwendungsberechtigungen, nicht mit delegierten Benutzerberechtigungen. Die App kann Aktionen ausführen, die der Benutzer nicht ausführen kann, z. B. das Löschen einer Registerkarte. Sie müssen die Absicht des Teambesitzers oder Chatbesitzers für Ihre Verwendung überprüfen, bevor Sie RSC-API-Aufrufe ausführen. Weitere Informationen finden Sie unter Übersicht über die Microsoft Teams-API.

Nachdem die App in einer Ressource installiert wurde, können Sie microsoft Graph Explorer verwenden, um die Berechtigungen anzuzeigen, die der App in der Ressource gewährt wurden.

Überprüfen Sie Ihre App auf hinzugefügte RSC-Berechtigungen in einem Team

  1. Rufen Sie die Gruppen-ID des Teams von Teams ab.

  2. Wählen Sie in Teams im linken Bereich Die Option Teams aus.

  3. Wählen Sie das Team aus, in dem die App installiert werden soll.

  4. Wählen Sie die Auslassungspunkte ●●● für dieses Team aus.

  5. Wählen Sie in der Dropdownliste Get link to team (Link zum Team abrufen ) aus.

  6. Kopieren Und speichern Sie den GroupId-Wert aus dem Popupdialogfeld Link abrufen zum Team .

  7. Melden Sie sich bei Graph Explorer an.

  8. Führen Sie einen GET Aufruf an diesen Endpunkt durch: https://graph.microsoft.com/beta/teams/{teamGroupId}/permissionGrants.

    Das clientAppId Feld in der Antwort muss dem webApplicationInfo.id im App-Manifest angegebenen zugeordnet werden.

    Screenshot: Antwort des Graph-Explorers auf GET-Aufruf für TEAM-RSC-Berechtigungen

Weitere Informationen zum Abrufen von Details zu den in einem bestimmten Team installierten Apps finden Sie unter Abrufen der Namen und anderer Details von Apps, die in einem bestimmten Team installiert sind.

Überprüfen Sie Ihre App auf hinzugefügte RSC-Berechtigungen in einem Chat

  1. Rufen Sie die Chat-Thread-ID vom Teams-Webclient ab.

  2. Wählen Sie im Teams-Webclient im linken Bereich Chat aus.

  3. Wählen Sie in der Dropdownliste den Chat aus, in dem Sie die App installiert haben.

  4. Kopieren Sie die Web-URL und speichern Sie die Chat-Thread-ID aus der Zeichenfolge.

    Screenshot: Chatthread-ID von Web-URL

  5. Melden Sie sich bei Graph Explorer an.

  6. Führen Sie einen GET-Aufruf an den folgenden Endpunkt durch: https://graph.microsoft.com/beta/chats/{chatId}/permissionGrants.

    Das clientAppId Feld in der Antwort muss dem webApplicationInfo.id im App-Manifest angegebenen zugeordnet werden.

    Screenshot: Antwort des Graph-Explorers auf GET-Anruf für Chat-RSC-Berechtigungen

Weitere Informationen zum Abrufen von Details zu Apps, die in einem bestimmten Chat installiert sind, finden Sie unter Abrufen der Namen und anderer Details von Apps, die in einem bestimmten Chat installiert sind.

Überprüfen Ihrer App auf hinzugefügte RSC-Berechtigungen für einen Benutzer

  1. Verwenden Sie die API zum Abrufen von Benutzern. Übergeben Sie in der Anforderungs-URL den UPN des Benutzers, und verwenden Sie aus dem Antworttext das id Feld als BENUTZER-ID.

  2. Melden Sie sich bei Graph Explorer an.

  3. Führen Sie einen GET Aufruf an diesen Endpunkt durch: https://graph.microsoft.com/beta/users/{user-id}/permissionGrants.

    Alternativ können Sie den UPN des Benutzers anstelle von user-idübergeben.

    Das clientAppId Feld in der Antwort muss dem webApplicationInfo.id im Teams-App-Manifest angegebenen zugeordnet werden.

    Screenshot: Antwort des Graph-Explorers auf GET-Aufruf für BENUTZER-RSC-Berechtigungen

Weitere Informationen zum Abrufen von Details zu den für den Benutzer installierten Apps finden Sie unter Abrufen der Namen und anderer Details der für den Benutzer installierten Apps.

Codebeispiel

Beispielname Beschreibung .NET Node.js App-Manifest
Resource-Specific Zustimmung (RSC) Dieser Beispielcode beschreibt den Prozess zum Verwenden von RSC zum Aufrufen von Graph-APIs. View View Anzeigen

Siehe auch