Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zjistěte, jak získat přístup k Microsoft Graph z webové aplikace spuštěné na Azure App Service.
Chcete přidat přístup k Microsoft Graph z webové aplikace a provést nějakou akci jako přihlášený uživatel. Tato část popisuje, jak udělit delegovaná oprávnění webové aplikaci a získat informace o profilu přihlášeného uživatele z Microsoft Entra ID.
V tomto kurzu se naučíte:
- Udělte delegovaná oprávnění webové aplikaci.
- Zavolejte Microsoft Graph z webové aplikace pro přihlášeného uživatele
Pokud účet Azure nemáte, vytvořte si účet free než začnete.
Požadavky
- Webová aplikace spuštěná na Azure App Service s povoleným modulem ověřování/autorizace službyApp Service .
Poskytnout přístup uživatelského rozhraní pro použití Microsoft Graph
Po povolení ověřování a autorizace ve webové aplikaci se webová aplikace zaregistruje na platformě Microsoft Identity Platform a je podporovaná aplikací Microsoft Entra. V tomto kroku udělíte webové aplikaci oprávnění pro přístup k Microsoft Graph pro uživatele.
Note
Technicky vzato poskytnete aplikaci Microsoft Entra ve webové aplikaci oprávnění pro přístup k aplikaci Microsoft Graph od Microsoft Entra jménem uživatele.
V Microsoft Entra admin center vyberte Entra ID.
Vyberte App registrations>Vlastněné aplikace>Zobrazit všechny aplikace v tomto adresáři. Vyberte název webové aplikace a pak vyberte oprávnění rozhraní API.
Vyberte Přidat oprávnění a pak vyberte rozhraní MICROSOFT API a pak Microsoft Graph.
Vyberte Delegovaná oprávnění a pak v seznamu vyberte User.Read . Vyberte Přidat oprávnění.
Konfigurace služby App Service tak, aby vracela použitelný přístupový token
Webová aplikace teď má požadovaná oprávnění pro přístup k Microsoft Graph jako přihlášený uživatel. V této části nakonfigurujete ověřování a autorizaci služby App Service, abyste získali použitelný přístupový token pro přístup k Microsoft Graphu. V tomto kroku je potřeba přidat User.Read obor podřízené služby (Microsoft Graph): https://graph.microsoft.com/User.Read.
Důležité
Pokud službu App Service nenakonfigurujete tak, aby vracela použitelný přístupový token, při volání rozhraní API Microsoft Graph v kódu se zobrazí chyba CompactToken parsing failed with error code: 80049217.
Přejděte na Azure Resource Explorer a pomocí stromu prostředků vyhledejte webovou aplikaci. Adresa URL prostředku by měla být podobná https://management.azure.com/subscriptions/subscriptionId/resourceGroups/SecureWebApp/providers/Microsoft.Web/sites/SecureWebApp20200915115914.
Průzkumník prostředků Azure se teď otevře s webovou aplikací vybranou ve stromu prostředků.
V horní části stránky vyberte Edit a povolte úpravy prostředků Azure.
V levém prohlížeči navigujte k config>authsettingsV2.
V zobrazení authsettingsV2 vyberte Upravit.
Vyhledejte sekci přihlášení v identityProviders>azureActiveDirectory a přidejte následující nastavení loginParameters:
"loginParameters":[ "response_type=code id_token","scope=openid offline_access profile https://graph.microsoft.com/User.Read" ]."identityProviders": { "azureActiveDirectory": { "enabled": true, "login": { "loginParameters":[ "response_type=code id_token", "scope=openid offline_access profile https://graph.microsoft.com/User.Read" ] } } } },Nastavení uložte tak, že vyberete PUT.
Toto nastavení může trvat několik minut, než se projeví. Vaše webová aplikace je teď nakonfigurovaná tak, aby měla přístup k Microsoft Graph se správným přístupovým tokenem. Pokud ne, Microsoft Graph vrátí chybu s informací, že formát kompaktního tokenu je nesprávný.
Volání služby Microsoft Graph z Node.js
Vaše webová aplikace teď má požadovaná oprávnění. Přidá také ID klienta Microsoft Graphu do parametrů přihlášení.
Instalace balíčků klientské knihovny
Nainstalujte do projektu balíčky npm @azure/identity a @microsoft/microsoft-graph-client.
npm install @microsoft/microsoft-graph-client
Konfigurace ověřovacích informací
Vytvořte objekt pro uložení nastavení ověřování:
// partial code in app.js
const appSettings = {
appCredentials: {
clientId: process.env.WEBSITE_AUTH_CLIENT_ID, // Enter the client Id here,
tenantId: "common", // Enter the tenant info here,
clientSecret: process.env.MICROSOFT_PROVIDER_AUTHENTICATION_SECRET // Enter the client secret here,
},
authRoutes: {
redirect: "/.auth/login/aad/callback", // Enter the redirect URI here
error: "/error", // enter the relative path to error handling route
unauthorized: "/unauthorized" // enter the relative path to unauthorized route
},
protectedResources: {
graphAPI: {
endpoint: "https://graph.microsoft.com/v1.0/me", // resource endpoint
scopes: ["User.Read"] // resource scopes
},
},
}
Volání Microsoft Graph jménem uživatele
Následující kód ukazuje, jak volat kontroler Microsoft Graph jako aplikaci a získat nějaké informace o uživateli.
// controllers/graphController.js
// get the name of the app service instance from environment variables
const appServiceName = process.env.WEBSITE_SITE_NAME;
const graphHelper = require('../utils/graphHelper');
exports.getProfilePage = async(req, res, next) => {
try {
// get user's access token scoped to Microsoft Graph from session
// use token to create Graph client
const graphClient = graphHelper.getAuthenticatedClient(req.session.protectedResources["graphAPI"].accessToken);
// return user's profile
const profile = await graphClient
.api('/me')
.get();
res.render('profile', { isAuthenticated: req.session.isAuthenticated, profile: profile, appServiceName: appServiceName });
} catch (error) {
next(error);
}
}
Předchozí kód spoléhá na následující funkci getAuthenticatedClient k vrácení klienta Microsoft Graph.
// utils/graphHelper.js
const graph = require('@microsoft/microsoft-graph-client');
getAuthenticatedClient = (accessToken) => {
// Initialize Graph client
const client = graph.Client.init({
// Use the provided access token to authenticate requests
authProvider: (done) => {
done(null, accessToken);
}
});
return client;
}
Uvolnit zdroje
Pokud jste dokončili všechny kroky v tomto kurzu s více částmi, vytvořili jste službu App Service, plán hostování služby App Service a účet úložiště ve skupině prostředků. Také jste vytvořili registraci aplikace v Microsoft Entra ID. Pokud jste zvolili externí konfiguraci, možná jste vytvořili nového externího tenanta. Pokud už je nepotřebujete, odstraňte tyto prostředky a registraci aplikace, abyste dál nenabídli poplatky.
V tomto kurzu se naučíte:
- Odstraňte prostředky Azure vytvořené během tohoto kurzu.
Odstraňte skupinu prostředků
Na webu Azure Portal v nabídce webu Azure Portal vyberte skupiny prostředků.
Vyberte skupinu prostředků, která obsahuje vaše prostředí App Service a plán služby App Service.
Výběrem možnosti Odstranit skupinu prostředků odstraňte skupinu prostředků a všechny prostředky.
Tato akce může trvat několik minut.
Odstranění registrace aplikace
V Microsoft Entra admin center vyberte Registrace aplikací. Pak vyberte aplikaci, kterou jste vytvořili.
V přehledu registrace aplikace vyberte Odstranit.
Odstranění externího tenanta
Pokud jste vytvořili nového externího tenanta, můžete ho odstranit.
V Centru pro správu Microsoft Entra přejděte do části Entra ID>Přehled>Spravovat tenanty.
Vyberte tenanta, kterého chcete odstranit, a pak vyberte Odstranit.
Před odstraněním tenanta možná budete muset dokončit požadované akce. Můžete například potřebovat odstranit všechny toky uživatelů a registrace aplikací v tenantovi.
Pokud jste připraveni tenanta odstranit, vyberte Odstranit.
Další kroky
V tomto kurzu jste se naučili, jak:
- Udělte delegovaná oprávnění webové aplikaci.
- Zavolejte Microsoft Graph z webové aplikace pro přihlášeného uživatele