Oktatóanyag: A Microsoft Graph elérése biztonságos .NET-alkalmazásból alkalmazásként
Megtudhatja, hogyan érheti el a Microsoft Graphot egy Azure-alkalmazás Service-en futó webalkalmazásból.
A Microsoft Graphot szeretné meghívni a webalkalmazáshoz. A webalkalmazás biztonságosan hozzáférhet az adatokhoz, ha egy rendszer által hozzárendelt felügyelt identitást használ. A Microsoft Entra-azonosítóból származó felügyelt identitás lehetővé teszi, hogy az App Service szerepköralapú hozzáférés-vezérléssel (RBAC) férhessen hozzá az erőforrásokhoz alkalmazás hitelesítő adatainak megkövetelése nélkül. Miután hozzárendelt egy felügyelt identitást a webalkalmazáshoz, az Azure gondoskodik a tanúsítványok létrehozásáról és terjesztéséről. Nem kell aggódnia a titkos kódok vagy az alkalmazás hitelesítő adatainak kezelése miatt.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Rendszer által hozzárendelt felügyelt identitás létrehozása webalkalmazásban.
- Microsoft Graph API-engedélyek hozzáadása felügyelt identitáshoz.
- A Microsoft Graph meghívása webalkalmazásból felügyelt identitások használatával.
If you don't have an Azure subscription, create an Azure free account before you begin.
Előfeltételek
- A Azure-alkalmazás Service-en futó webalkalmazás, amelyen engedélyezve van az App Service hitelesítési/engedélyezési modulja.
Felügyelt identitás engedélyezése az alkalmazásban
Ha a webalkalmazást a Visual Studióban hozza létre és teszi közzé, a felügyelt identitás engedélyezve lett az alkalmazásban.
Az app service-ben válassza az Identitás lehetőséget a bal oldali panelen, majd válassza a Hozzárendelt rendszer lehetőséget.
Ellenőrizze, hogy az állapot be van-e kapcsolva. Ha nem, válassza a Mentés , majd az Igen lehetőséget a rendszer által hozzárendelt felügyelt identitás engedélyezéséhez. Ha a felügyelt identitás engedélyezve van, az állapot Be értékre van állítva, és az objektumazonosító elérhető.
Jegyezze fel az objektumazonosító értékét, amelyre a következő lépésben szüksége lesz.
Hozzáférés biztosítása a Microsoft Graphhoz
A Microsoft Graph elérésekor a felügyelt identitásnak megfelelő engedélyekkel kell rendelkeznie a végrehajtani kívánt művelethez. Jelenleg nincs lehetőség ilyen engedélyek hozzárendelésére a Microsoft Entra felügyeleti központban.
Futtassa a következő szkriptet a kért Microsoft Graph API-engedélyek hozzáadásához a felügyelt identitásszolgáltatás egyszerű objektumához.
# Install the module. # Install-Module Microsoft.Graph -Scope CurrentUser # The tenant ID $TenantId = "11111111-1111-1111-1111-111111111111" # The name of your web app, which has a managed identity. $webAppName = "SecureWebApp-20201106120003" $resourceGroupName = "SecureWebApp-20201106120003ResourceGroup" # The name of the app role that the managed identity should be assigned to. $appRoleName = "User.Read.All" # Get the web app's managed identity's object ID. Connect-AzAccount -Tenant $TenantId $managedIdentityObjectId = (Get-AzWebApp -ResourceGroupName $resourceGroupName -Name $webAppName).identity.principalid Connect-MgGraph -TenantId $TenantId -Scopes 'Application.Read.All','AppRoleAssignment.ReadWrite.All' # Get Microsoft Graph app's service principal and app role. $serverApplicationName = "Microsoft Graph" $serverServicePrincipal = (Get-MgServicePrincipal -Filter "DisplayName eq '$serverApplicationName'") $serverServicePrincipalObjectId = $serverServicePrincipal.Id $appRoleId = ($serverServicePrincipal.AppRoles | Where-Object {$_.Value -eq $appRoleName }).Id # Assign the managed identity access to the app role. New-MgServicePrincipalAppRoleAssignment ` -ServicePrincipalId $managedIdentityObjectId ` -PrincipalId $managedIdentityObjectId ` -ResourceId $serverServicePrincipalObjectId ` -AppRoleId $appRoleId
A szkript végrehajtása után a Microsoft Entra felügyeleti központban ellenőrizheti, hogy a kért API-engedélyek hozzá vannak-e rendelve a felügyelt identitáshoz.
Nyissa meg az Alkalmazások lehetőséget, majd válassza a Vállalati alkalmazások lehetőséget. Ez a panel megjeleníti a bérlő összes szolgáltatásnevét. Adjon hozzá egy szűrőt az "Application type==Managed Identityes" kifejezéshez, és válassza ki a felügyelt identitás szolgáltatásnevét.
Ha ezt az oktatóanyagot követi, két azonos megjelenítendő névvel rendelkező szolgáltatásnév található (például SecureWebApp2020094113531). A kezdőlap URL-címével rendelkező szolgáltatásnév a bérlőben lévő webalkalmazást jelöli. A felügyelt identitásokban megjelenő szolgáltatásnév nem rendelkezhet kezdőlap URL-címével, és az objektumazonosítónak meg kell egyeznie a felügyelt identitás előző lépésben megadott objektumazonosító-értékével.
Válassza ki a felügyelt identitás szolgáltatásnevét.
Az Áttekintés területen válassza az Engedélyek lehetőséget, és látni fogja a Microsoft Graphhoz hozzáadott engedélyeket.
A Microsoft Graph meghívása
A ChainedTokenCredential, ManagedIdentityCredential és EnvironmentCredential osztályokkal jogkivonat-hitelesítő adatokat kap a kódhoz a Microsoft Graph felé irányuló kérelmek engedélyezéséhez. Hozza létre a ChainedTokenCredential osztály egy példányát, amely a felügyelt identitást használja az App Service-környezetben vagy a fejlesztési környezeti változókban a jogkivonatok lekéréséhez és a szolgáltatásügyfélhez való csatolásához. Az alábbi példakód lekéri a hitelesített jogkivonat hitelesítő adatait, és egy szolgáltatásügyfél-objektum létrehozásához használja, amely beolvasja a csoport felhasználóit.
Ha ezt a kódot egy mintaalkalmazás részeként szeretné megtekinteni, tekintse meg a következőt:
A Microsoft.Identity.Web.MicrosoftGraph ügyféloldali kódtárcsomag telepítése
Telepítse a Microsoft.Identity.Web.MicrosoftGraph NuGet-csomagot a projektbe a .NET Core parancssori felületével vagy a Visual Studio Csomagkezelő konzoljával.
.NET Core parancssor
Nyisson meg egy parancssort, és váltson a projektfájlt tartalmazó könyvtárra.
Futtassa a telepítési parancsokat.
dotnet add package Microsoft.Identity.Web.MicrosoftGraph
dotnet add package Microsoft.Graph
Package Manager konzol
Nyissa meg a projektet/megoldást a Visual Studióban, és nyissa meg a konzolt a Tools>NuGet Csomagkezelő> Csomagkezelő Console paranccsal.
Futtassa a telepítési parancsokat.
Install-Package Microsoft.Identity.Web.MicrosoftGraph
Install-Package Microsoft.Graph
.NET-példa
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
using Microsoft.Graph;
using Azure.Identity;
...
public IList<MSGraphUser> Users { get; set; }
public async Task OnGetAsync()
{
// Create the Graph service client with a ChainedTokenCredential which gets an access
// token using the available Managed Identity or environment variables if running
// in development.
var credential = new ChainedTokenCredential(
new ManagedIdentityCredential(),
new EnvironmentCredential());
string[] scopes = new[] { "https://graph.microsoft.com/.default" };
var graphServiceClient = new GraphServiceClient(
credential, scopes);
List<MSGraphUser> msGraphUsers = new List<MSGraphUser>();
try
{
//var users = await graphServiceClient.Users.Request().GetAsync();
var users = await graphServiceClient.Users.GetAsync();
foreach (var u in users.Value)
{
MSGraphUser user = new MSGraphUser();
user.userPrincipalName = u.UserPrincipalName;
user.displayName = u.DisplayName;
user.mail = u.Mail;
user.jobTitle = u.JobTitle;
msGraphUsers.Add(user);
}
}
catch (Exception ex)
{
string msg = ex.Message;
}
Users = msGraphUsers;
}
Clean up resources
Ha befejezte ezt az oktatóanyagot, és már nincs szüksége a webalkalmazásra vagy a kapcsolódó erőforrásokra, törölje a létrehozott erőforrásokat.
Az erőforráscsoport törlése
Az Azure Portalon válassza ki az Erőforráscsoportokat a portál menüjéből, és válassza ki azt az erőforráscsoportot, amely tartalmazza az App Service- és App Service-csomagot.
Az erőforráscsoport és az összes erőforrás törléséhez válassza az Erőforráscsoport törlése lehetőséget.
A parancs futtatása több percet is igénybe vehet.
Következő lépések
Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:
- Rendszer által hozzárendelt felügyelt identitás létrehozása webalkalmazásban.
- Microsoft Graph API-engedélyek hozzáadása felügyelt identitáshoz.
- A Microsoft Graph meghívása webalkalmazásból felügyelt identitások használatával.
Megtudhatja, hogyan csatlakoztathat egy .NET Core-alkalmazást, Python-alkalmazást, Java-alkalmazást vagy Node.js-alkalmazást egy adatbázishoz.