page_type | description | products | languages | extensions | urlFragment | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sample |
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. |
|
|
|
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.10 Preview 4 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)
- In Visual Studio, right-click your TeamsApp project and Select Teams Toolkit > Prepare Teams App Dependencies
- Using the extension, sign in with your Microsoft 365 account where you have permissions to upload custom apps.
- Select Debug > Start Debugging or F5 to run the menu in Visual Studio.
- In the browser that launches, select the Add button to install the app to Teams.
If you do not have permission to upload custom apps (sideloading), Teams 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.All
as 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-rsc
folder - Select
RSCDemo.sln
file - 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
,MicrosoftAppPassword
andTenantId
which was generated while doing Microsoft Entra ID app registration in your Azure Portal.
- Update configuration for
-
Run the bot from Visual Studio:
- Press
F5
to run the project
- Press
-
Setup the
manifest.json
in the/appPackage
folder 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.app
then your domain-name will be1234.ngrok-free.app
and if you are using dev tunnels then your domain will be like:12345.devtunnels.ms
.- Zip up the contents of the
appPackage
folder to create amanifest.zip
- Upload the
manifest.zip
to Teams (in the Apps view click "Upload a custom app")
- Replace
- Graph RSC
- Upload app manifest file (zip file) to your team.