| page_type | sample | ||||
|---|---|---|---|---|---|
| description | This sample application demonstrates how to request Resource Specific Consent (RSC) permissions, use them to call Microsoft Graph, and enumerate permission grants through a Teams tab. | ||||
| products |
|
||||
| languages |
|
||||
| extensions |
|
||||
| urlFragment | officedev-microsoft-teams-samples-graph-rsc-csharp |
This sample application showcases how to implement Resource Specific Consent (RSC) for accessing Microsoft Graph APIs within Microsoft Teams. It provides capabilities for requesting permissions, interacting through a Teams tab, and managing user notifications, enhancing the app's integration and usability.
- Tabs
- RSC Permissions
Please find below demo manifest which is deployed on Microsoft Azure and you can try it yourself by uploading the app manifest (.zip file link below) to your teams and/or as a personal app. (Sideloading must be enabled for your tenant, see steps here).
RSC with Graph API: Manifest
-
.NET Core SDK version 6.0
# determine dotnet version dotnet --version
The simplest way to run this sample in Teams is to use Teams Toolkit for Visual Studio.
- Install Visual Studio 2022 Version 17.14 or higher Visual Studio
- Install Teams Toolkit for Visual Studio Teams Toolkit extension
- In the debug dropdown menu of Visual Studio, select default startup project > Microsoft Teams (browser)
- Right-click the 'M365Agent' project in Solution Explorer and select Microsoft 365 Agents Toolkit > Select Microsoft 365 Account
- Sign in to Microsoft 365 Agents Toolkit with a Microsoft 365 work or school account
- Set
Startup ItemasMicrosoft Teams (browser). - Press F5, or select Debug > Start Debugging menu in Visual Studio to start your app

- In the opened web browser, select Add button to install the app in Teams
If you do not have permission to upload custom apps (sideloading), Microsoft 365 Agents Toolkit will recommend creating and using a Microsoft 365 Developer Program account - a free program to get your own dev environment sandbox that includes Teams.
-
Register your app with Microsoft identity platform via the Microsoft Entra ID portal (Microsoft Entra ID app registration)
- Your app must be registered in the Microsoft Entra ID portal to integrate with the Microsoft identity platform and call Microsoft Graph APIs. See Register an application with the Microsoft identity platform.
Note - Make sure you have added
TeamsAppInstallation.ReadForUser.Allas Application level
- Your app must be registered in the Microsoft Entra ID portal to integrate with the Microsoft identity platform and call Microsoft Graph APIs. See Register an application with the Microsoft identity platform.
Note - Make sure you have added
-
Clone the repository
git clone https://github.com/OfficeDev/microsoft-teams-samples.git
-
Build your solution
- Launch Visual Studio
- File -> Open -> Project/Solution
- Navigate to
samples/graph-rscfolder - Select
RSCDemo.slnfile - Build the solution
-
Run ngrok - point to port 3978
ngrok http 3978 --host-header="localhost:3978"Alternatively, you can also use the
dev tunnels. Please follow Create and host a dev tunnel and host the tunnel with anonymous user access command as shown below:devtunnel host -p 3978 --allow-anonymous
-
Update appsettings.json
- Update configuration for
<<Client Id>>,<<Client Secret>>and<<Tenant Id>>with theMicrosoftAppId,MicrosoftAppPasswordandTenantIdwhich was generated while doing Microsoft Entra ID app registration in your Azure Portal.
- Update configuration for
-
Run the bot from Visual Studio:
- Press
F5to run the project
- Press
-
Setup the
manifest.jsonin the/appPackagefolder Replace the following details:- Replace
<<Your Microsoft APP Id>>at all the places with your MicrosoftAppId received while doing Microsoft Entra ID app registration in Azure portal [Your tunnel Domain]with base Url domain. E.g. if you are using ngrok it would behttps://1234.ngrok-free.appthen your domain-name will be1234.ngrok-free.appand if you are using dev tunnels then your domain will be like:12345.devtunnels.ms.- Zip up the contents of the
appPackagefolder to create amanifest.zip - Upload the
manifest.zipto Teams (in the Apps view click "Upload a custom app")
- Replace
- Graph RSC
- Upload app manifest file (zip file) to your team.






