Rychlý start: Přihlášení uživatelů a volání rozhraní Microsoft Graph API z webové aplikace ASP.NET
V tomto rychlém startu stáhnete a spustíte ukázku kódu, která ukazuje ASP.NET webovou aplikaci, která může přihlásit uživatele pomocí účtů Microsoft Entra.
Podívejte se, jak ukázka funguje pro ilustraci.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Visual Studio 2022
- .NET Framework 4.7.2+
Registrace a stažení aplikace
Tip
Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.
Máte dvě možnosti, jak začít vytvářet aplikaci: automatickou nebo ruční konfiguraci.
Automatická konfigurace
Pokud chcete aplikaci nakonfigurovat automaticky a pak si stáhnout ukázku kódu, postupujte takto:
- Přihlaste se k rychlému startu centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.
- Zadejte název vaší aplikace a Vyberte Zaregistrovat.
- Podle pokynů stáhněte a automaticky nakonfigurujte novou aplikaci jedním kliknutím.
Ruční konfigurace
Pokud chcete ručně nakonfigurovat aplikaci a vzorový kód, použijte následující postupy.
Krok 1: Zaregistrujte si aplikaci
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.
- Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte na tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.
- Přejděte na Identity>Applications> Registrace aplikací a vyberte Nová registrace.
- Do pole Název zadejte název aplikace. Zadejte například ASPNET-Quickstart. Uživatelé vaší aplikace uvidí tento název a později ho můžete změnit.
- Nastavte typ identifikátoru URI přesměrování na web a hodnotu na
https://localhost:44368/
hodnotu . - Vyberte Zaregistrovat.
- V části Spravovat vyberte Ověřování.
- V části Implicitní udělení a hybridní toky vyberte tokeny ID.
- Zvolte Uložit.
Krok 2: Stažení projektu
Tip
Pokud se chcete vyhnout chybám způsobeným omezením délky cesty ve Windows, doporučujeme extrahovat archiv nebo klonovat úložiště do adresáře blízko kořenového adresáře jednotky.
Krok 3: Spuštění projektu
Extrahujte soubor .zip do místní složky, která je blízko kořenové složky. Extrahujte například do C:\Azure-Samples.
Doporučujeme extrahovat archiv do adresáře blízko kořenového adresáře jednotky, aby nedocházelo k chybám způsobeným omezením délky cesty ve Windows.
Otevřete řešení v sadě Visual Studio (AppModelv2-WebApp-OpenID Připojení-DotNet.sln).
V závislosti na verzi sady Visual Studio možná budete muset kliknout pravým tlačítkem na projekt AppModelv2-WebApp-OpenID Připojení-DotNet a pak vybrat Obnovit balíčky NuGet.
Otevřete konzolu Správce balíčků výběrem možnosti Zobrazit>ostatní okna> Správce balíčků Konzola. Potom spusťte
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
.Upravte appsettings.json a nahraďte parametry
ClientId
,Tenant
aredirectUri
za:"ClientId" :"Enter_the_Application_Id_here" /> "TenantId": "Enter_the_Tenant_Info_Here" /> "RedirectUri" :"https://localhost:44368/" />
V kódu:
Enter_the_Application_Id_here
je ID aplikace (klienta) registrace aplikace, kterou jste vytvořili dříve. Id aplikace (klienta) najdete na stránce Přehled aplikace v Registrace aplikací v Centru pro správu Microsoft Entra.Enter_the_Tenant_Info_Here
je jedna z následujících možností:- Pokud vaše aplikace podporuje pouze moji organizaci, nahraďte tuto hodnotu ID adresáře (tenanta) nebo názvem tenanta (například
contoso.onmicrosoft.com
). V centru pro správu Microsoft Entra vyhledejte ID adresáře (tenanta) na stránce Přehled aplikace v Registrace aplikací. - Pokud vaše aplikace podporuje účty v libovolném organizačním adresáři, nahraďte tuto hodnotu
organizations
hodnotou . - Pokud vaše aplikace podporuje všechny uživatele účtu Microsoft, nahraďte tuto hodnotu
common
hodnotou .
- Pokud vaše aplikace podporuje pouze moji organizaci, nahraďte tuto hodnotu ID adresáře (tenanta) nebo názvem tenanta (například
redirectUri
je identifikátor URI přesměrování, který jste zadali dříve v Registrace aplikací v Centru pro správu Microsoft Entra.
Více informací
Tato část obsahuje přehled kódu potřebného k přihlášení uživatelů. Tento přehled může být užitečný k pochopení toho, jak kód funguje, jaké jsou hlavní argumenty a jak přidat přihlášení do existující aplikace ASP.NET.
Jak ukázka funguje
Balíčky NuGet middlewaru OWIN
Ověřovací kanál s ověřováním založeným na souborech cookie můžete nastavit pomocí openID Připojení v ASP.NET s balíčky middlewaru OWIN. Tyto balíčky můžete nainstalovat spuštěním následujících příkazů v konzole Správce balíčků v sadě Visual Studio:
Install-Package Microsoft.Identity.Web.Owin
Install-Package Microsoft.Identity.Web.GraphServiceClient
Install-Package Microsoft.Owin.Security.Cookies
Spouštěcí třída OWIN
Middleware OWIN používá spouštěcí třídu , která se spouští při spuštění procesu hostování. V tomto rychlém startu se soubor startup.cs nachází v kořenové složce. Následující kód ukazuje parametry, které tento rychlý start používá:
public void Configuration(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
OwinTokenAcquirerFactory factory = TokenAcquirerFactory.GetDefaultInstance<OwinTokenAcquirerFactory>();
app.AddMicrosoftIdentityWebApp(factory);
factory.Services
.Configure<ConfidentialClientApplicationOptions>(options => { options.RedirectUri = "https://localhost:44368/"; })
.AddMicrosoftGraph()
.AddInMemoryTokenCaches();
factory.Build();
}
Kde | Popis |
---|---|
ClientId |
ID aplikace z aplikace zaregistrované na webu Azure Portal. |
Authority |
Koncový bod služby tokenů zabezpečení (STS) pro ověření uživatele. Obvykle se jedná https://login.microsoftonline.com/{tenant}/v2.0 o veřejný cloud. V této adrese URL je {tenant} název vašeho tenanta, ID tenanta nebo common odkaz na společný koncový bod. (Společný koncový bod se používá pro víceklientských aplikací.) |
RedirectUri |
Adresa URL, kde se uživatelé po ověření posílají na platformě Microsoft Identity Platform. |
PostLogoutRedirectUri |
Adresa URL, kde se uživatelé po odhlášení odesílají. |
Scope |
Seznam požadovaných oborů oddělených mezerami. |
ResponseType |
Požadavek, že odpověď z ověřování obsahuje autorizační kód a token ID. |
TokenValidationParameters |
Seznam parametrů pro ověřování tokenů; V tomto případě je nastavená tak, aby false označí, ValidateIssuer že může přijímat přihlášení z libovolného typu osobního, pracovního nebo školního účtu. |
Notifications |
Seznam delegátů, které se dají spustit ve OpenIdConnect zprávách. |
Ověřovací výzva
Uživatele můžete k přihlášení přinutit tím, že si v řadiči vyžádáte výzvu ověřování:
public void SignIn()
{
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties{ RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
Tip
Požadavek na výzvu ověřování pomocí této metody je volitelný. Normálně byste ho používali, když chcete, aby zobrazení bylo přístupné jak ověřeným, tak neověřeným uživatelům. Řadiče můžete zároveň chránit způsobem popsaným v další části.
Atribut pro ochranu kontroleru nebo akce kontroleru
Akce kontroleru nebo kontroleru můžete chránit pomocí atributu [Authorize]
. Tento atribut omezuje přístup ke kontroleru nebo akcím tím, že umožňuje přístup k akcím v kontroleru pouze ověřeným uživatelům. Ověřovací výzva se pak stane automaticky, když se neověřený uživatel pokusí získat přístup k některé z akcí nebo kontrolerů zdobených atributem [Authorize]
.
Volání Microsoft Graphu z kontroleru
Microsoft Graph můžete volat z kontroleru získáním instance GraphServiceClient pomocí GetGraphServiceClient
metody rozšíření na kontroleru, například v následujícím kódu:
try
{
var me = await this.GetGraphServiceClient().Me.GetAsync();
ViewBag.Username = me.DisplayName;
}
catch (ServiceException graphEx) when (graphEx.InnerException is MicrosoftIdentityWebChallengeUserException)
{
HttpContext.GetOwinContext().Authentication.Challenge(OpenIdConnectAuthenticationDefaults.AuthenticationType);
return View();
}
Nápověda a podpora
Pokud potřebujete pomoc, chcete nahlásit problém nebo se chcete dozvědět o možnostech podpory, přečtěte si nápovědu a podporu pro vývojáře.
Další kroky
Úplný podrobný průvodce vytvářením aplikací a nových funkcí, včetně úplného vysvětlení tohoto rychlého startu, si můžete vyzkoušet kurz ASP.NET.