Sdílet prostřednictvím


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

Již nakonfigurované Aplikace je nakonfigurována s tímto atributem.

Krok 2: Stažení projektu

Spusťte projekt pomocí sady Visual Studio 2019.

Spropitné

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 v blízkosti kořenového adresáře jednotky, aby nedocházelo k chybám způsobeným limitacemi délky cesty k souboru v systému Windows.

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

  3. V závislosti na verzi sady Visual Studio možná budete muset kliknout pravým tlačítkem myši na projekt >AppModelv2-WebApp-OpenIDConnect-DotNet a pak vybrat Obnovit balíčky NuGet.

  4. Otevřete konzolu Správce balíčků tak, že vyberete Zobrazit>Další okna>Konzola Správce balíčků. Pak spusťte Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r.

Poznámka

Enter_the_Supported_Account_Info_Here

Další informace

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 interakce mezi webovým prohlížečem, webovou aplikací a platformou Microsoft Identity Platform v ukázkové aplikaci.

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 Connect 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 je to https://login.microsoftonline.com/{tenant}/v2.0 pro veřejný cloud. V této adrese URL {tenant} je název vašeho tenanta, ID tenanta nebo common pro odkaz na společný koncový bod. (Společný koncový bod se používá pro víceklientské aplikace.)
RedirectUri Adresa URL, na kterou se uživatelé odesílají po ověření pomocí platformy Microsoft Identity.
PostLogoutRedirectUri Adresa URL, kam jsou uživatelé po odhlášení přesměrováni.
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ěření tokenu V tomto případě je ValidateIssuer nastavená na false, aby bylo možné označit, ž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é lze spustit pro zprávy OpenIdConnect.

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 vynutit, aby se přihlásil tak, že v kontroleru požádáte o ověřovací výzvu:

public void SignIn()
{
    if (!Request.IsAuthenticated)
    {
        HttpContext.GetOwinContext().Authentication.Challenge(
            new AuthenticationProperties{ RedirectUri = "/" },
            OpenIdConnectAuthenticationDefaults.AuthenticationType);
    }
}

Spropitné

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. Další možností je chránit kontrolery pomocí metody popsané v další části.

Atribut pro ochranu kontroleru nebo akce kontroleru

Akce řadiče nebo řadič 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

Pro úplný podrobný průvodce vytvářením aplikací a nových funkcí, včetně plného vysvětlení tohoto rychlého startu, se podívejte na tutoriál ASP.NET.

Přidat možnost přihlášení do webové aplikace ASP.NET