Rövid útmutató: ASP.NET webalkalmazás, amely bejelentkezik a Microsoft Entra felhasználóiba

Üdvözöljük! Valószínűleg nem ez az a lap, amire számított. Amíg dolgozunk a javításon, ez a hivatkozás a megfelelő cikkre viszi:

Rövid útmutató: Bejelentkezés hozzáadása a Microsofttal egy ASP.NET-webalkalmazáshoz

Elnézést kérünk a kellemetlenségért, és köszönjük türelmét, amíg dolgozunk a probléma megoldásán.

Ebben a rövid útmutatóban letölthet és futtathat egy kódmintát, amely egy ASP.NET webalkalmazást mutat be, amely Microsoft Entra-fiókkal tud bejelentkezni a felhasználókba.

1. lépés: Az alkalmazás konfigurálása az Azure Portalon

A rövid útmutatóban szereplő kódminta működéséhez adja meg https://localhost:44368/ az átirányítási URI-t.

Already configured Az alkalmazás ezzel az attribútummal van konfigurálva.

2. lépés: A projekt letöltése

Futtassa a projektet a Visual Studio 2019 használatával.

Tipp.

A Windows elérési úthossz-korlátozásai által okozott hibák elkerülése érdekében javasoljuk, hogy bontsa ki az archívumot, vagy klónozza az adattárat a meghajtó gyökeréhez közeli könyvtárba.

3. lépés: Az alkalmazás konfigurálva van, és készen áll a futtatásra

Konfiguráltuk a projektet az alkalmazás tulajdonságainak értékeivel.

  1. Bontsa ki a .zip fájlt a gyökérmappához közeli helyi mappába. Kinyerés például C :\Azure-Samples fájlba.

    Javasoljuk, hogy az archívumot a meghajtó gyökeréhez közeli könyvtárba bontsa ki, hogy elkerülje a Windows útvonalhossz-korlátozásai által okozott hibákat.

  2. Nyissa meg a megoldást a Visual Studióban (AppModelv2-WebApp-OpenID Csatlakozás-DotNet.sln).

  3. A Visual Studio verziójától függően előfordulhat, hogy a jobb gombbal az AppModelv2-WebApp-OpenID Csatlakozás-DotNet projektre >kell kattintania, majd válassza a NuGet-csomagok visszaállítása lehetőséget.

  4. Nyissa meg a Csomagkezelő konzolt az Egyéb Windows> Csomagkezelő konzol megtekintése>gombra kattintva. Ez után futtassa a Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r parancsot.

Feljegyzés

Enter_the_Supported_Account_Info_Here

További információ

Ez a szakasz áttekintést nyújt a felhasználók bejelentkezéséhez szükséges kódról. Ez az áttekintés hasznos lehet annak megértéséhez, hogyan működik a kód, mik a fő argumentumok, és hogyan adhat hozzá bejelentkezést egy meglévő ASP.NET alkalmazáshoz.

A minta működése

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

OWIN közbenső NuGet-csomagok

A hitelesítési folyamatot beállíthatja cookie-alapú hitelesítéssel az OpenID Csatlakozás használatával ASP.NET OWIN köztes szoftvercsomagokkal. Ezeket a csomagokat az alábbi parancsok futtatásával telepítheti Csomagkezelő Visual Studio konzolján:

Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb

OWIN indítási osztály

Az OWIN köztes szoftver egy indítási osztályt használ, amely az üzemeltetési folyamat indításakor fut. Ebben a rövid útmutatóban a startup.cs fájl a gyökérmappában található. Az alábbi kód azokat a paramétereket mutatja be, amelyeket ez a rövid útmutató használ:

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
            }
        }
    );
}
Where Leírás
ClientId Az Azure Portalon regisztrált alkalmazás alkalmazásazonosítója.
Authority A felhasználó hitelesítéséhez használt biztonsági jogkivonat-szolgáltatás (STS) végpontja. Általában https://login.microsoftonline.com/{tenant}/v2.0 a nyilvános felhőhöz készült. Ebben az URL-címben a(z) {tenant} a bérlő neve, a bérlő azonosítója vagy common a közös végpontra mutató hivatkozás. (A közös végpont több-bérlős alkalmazásokhoz használatos.)
RedirectUri Az AZ URL-cím, ahová a felhasználókat a Microsoft Identitásplatform való hitelesítés után küldi el a rendszer.
PostLogoutRedirectUri Az AZ URL-cím, ahová a felhasználók kijelentkezés után érkeznek.
Scope A kért hatókörök listája szóközök szerint elválasztva.
ResponseType Az a kérés, amely szerint a hitelesítés válasza egy engedélyezési kódot és egy azonosító jogkivonatot tartalmaz.
TokenValidationParameters A jogkivonatok érvényesítéséhez használatos paraméterek listája. Ebben az esetben úgy van beállítvafalse, hogy jelezze, ValidateIssuer hogy bármilyen személyes, munkahelyi vagy iskolai fióktípusból elfogadhatja a bejelentkezéseket.
Notifications Az üzeneteken OpenIdConnect futtatható meghatalmazottak listája.

Feljegyzés

A beállítás ValidateIssuer = false leegyszerűsíti ezt a rövid útmutatót. Valós alkalmazásokban ellenőrizze a kiállítót. A mintákból megtudhatja, hogyan teheti ezt meg.

Hitelesítési kihívás

Előírhatja a felhasználóknak a bejelentkezést, ha a vezérlőben egy hitelesítő kérdést kezdeményez:

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

Tipp.

A hitelesítési feladat kérése ezzel a módszerrel nem kötelező. Általában akkor érdemes használni, ha azt szeretné, hogy egy nézet a hitelesített és a hitelesítés nélküli felhasználók számára is elérhető legyen. Másik megoldásként a vezérlők is védhetők a következő szakaszban leírt módon.

Vezérlők vagy vezérlőműveletek védelmére szolgáló attribútum

A vezérlők vagy vezérlőműveletek az attribútum használatával [Authorize] védhetők. Ez az attribútum korlátozza a vezérlőhöz vagy műveletekhez való hozzáférést azáltal, hogy csak hitelesített felhasználók férhetnek hozzá a vezérlő műveleteihez. A hitelesítési feladat automatikusan megtörténik, amikor egy hitelesítés nélküli felhasználó megpróbál hozzáférni az attribútum által [Authorize] dekorált műveletek vagy vezérlők egyikéhez.

Súgó és támogatás

Ha segítségre van szüksége, szeretne jelentést készíteni egy problémáról, vagy szeretne többet megtudni a támogatási lehetőségekről, olvassa el a súgót és a fejlesztők támogatását.

Következő lépések

Az alkalmazások és új funkciók létrehozásának részletes útmutatója, beleértve a rövid útmutató teljes ismertetését, próbálja ki a ASP.NET oktatóanyagot.