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í.

Already configured 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.

  1. 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.

  2. Otevřete řešení v sadě Visual Studio (AppModelv2-WebApp-OpenID Připojení-DotNet.sln).

  3. 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.

  4. 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

Diagram of the interaction between the web browser, the web app, and the Microsoft identity platform in the sample app.

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 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.

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.