Rychlý start: ASP.NET webové aplikace, která přihlašuje uživatele Microsoft Entra
Vítejte! Pravděpodobně to není stránka, kterou jste očekávali. Zatímco pracujeme na opravě, měl by vás tento odkaz dostat na správný článek:
Rychlý start: Přidání přihlášení pomocí Microsoftu do webové aplikace ASP.NET
Omlouváme se za nepříjemnosti a vážíme si vaší trpělivosti, zatímco pracujeme na vyřešení tohoto problému.
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.
Krok 1: Konfigurace aplikace na webu Azure Portal
Aby ukázka kódu v tomto rychlém startu fungovala, zadejte https://localhost:44368/ pro identifikátor URI přesměrování.
Aplikace je nakonfigurovaná s tímto atributem.
Krok 2: Stažení projektu
Spusťte projekt pomocí sady Visual Studio 2019.
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: Aplikace je nakonfigurovaná a připravená ke spuštění
Nakonfigurovali jsme váš projekt s hodnotami vlastností vaší aplikace.
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
.
Poznámka:
Enter_the_Supported_Account_Info_Here
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.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb
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());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
// Sets the client ID, authority, and redirect URI as obtained from Web.config
ClientId = clientId,
Authority = authority,
RedirectUri = redirectUri,
// PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it's using the home page
PostLogoutRedirectUri = redirectUri,
Scope = OpenIdConnectScope.OpenIdProfile,
// ResponseType is set to request the code id_token, which contains basic information about the signed-in user
ResponseType = OpenIdConnectResponseType.CodeIdToken,
// ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
// To only allow users from a single organization, set ValidateIssuer to true and the 'tenant' setting in Web.> config to the tenant name
// To allow users from only a list of specific organizations, set ValidateIssuer to true and use the ValidIssuers parameter
TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = false // Simplification (see note below)
},
// OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to > the OnAuthenticationFailed method
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = OnAuthenticationFailed
}
}
);
}
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 nebocommon
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.
Poznámka:
Nastavení ValidateIssuer = false
je zjednodušením tohoto rychlého startu. Ve skutečných aplikacích ověřte vystavitele. Podívejte se na ukázky, které vám porozumí, jak to udělat.
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]
.
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.