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:
- Hinzufügen von RSC-Berechtigungen zu Ihrer Teams-App
- Installieren Ihrer App in einem Team, Chat oder Benutzer
- Ü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:
- Registrieren Sie Ihre App über das Azure AD-Portal bei Microsoft Identity Platform.
- 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:
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. 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
authorization
angegeben 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 applicationPermissions
angegeben 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:
- Stellen Sie sicher, dass Sie die Zustimmungseinstellungen für Team, Chat oder Benutzer konfiguriert haben.
- Laden Sie Ihre App in Teams quer.
Konfigurieren von Zustimmungseinstellungen
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:
Melden Sie sich beim Azure AD-Portal als globaler Administrator an.
Wählen Sie Azure Active Directory-Unternehmens-Apps>>Zustimmung und Berechtigungen>Einstellungen für benutzerspezifische Zustimmung aus.
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.
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.
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 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:
- Rufen Sie ein Zugriffstoken vom Microsoft Identity Platform ab.
- Ü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 derwebApplicationInfo.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
Rufen Sie die Gruppen-ID des Teams von Teams ab.
Wählen Sie in Teams im linken Bereich Die Option Teams aus.
Wählen Sie das Team aus, in dem die App installiert werden soll.
Wählen Sie die Auslassungspunkte ●●● für dieses Team aus.
Wählen Sie in der Dropdownliste Get link to team (Link zum Team abrufen ) aus.
Kopieren Und speichern Sie den GroupId-Wert aus dem Popupdialogfeld Link abrufen zum Team .
Melden Sie sich bei Graph Explorer an.
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 demwebApplicationInfo.id
im App-Manifest angegebenen zugeordnet werden.
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
Rufen Sie die Chat-Thread-ID vom Teams-Webclient ab.
Wählen Sie im Teams-Webclient im linken Bereich Chat aus.
Wählen Sie in der Dropdownliste den Chat aus, in dem Sie die App installiert haben.
Kopieren Sie die Web-URL und speichern Sie die Chat-Thread-ID aus der Zeichenfolge.
Melden Sie sich bei Graph Explorer an.
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 demwebApplicationInfo.id
im App-Manifest angegebenen zugeordnet werden.
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
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.Melden Sie sich bei Graph Explorer an.
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 demwebApplicationInfo.id
im Teams-App-Manifest angegebenen zugeordnet werden.
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 |