Gyors útmutató: Microsoft Identity platform-bejelentkezés hozzáadása egy ASP.NET-webalkalmazáshozQuickstart: Add Microsoft identity platform sign-in to an ASP.NET web app

Ebben a rövid útmutatóban egy kódrészletet tölt le és futtat, amely bemutatja, hogy egy ASP.NET-webalkalmazás hogyan tud bejelentkezni a felhasználók bármelyik Azure Active Directory (Azure AD) szervezetből.In this quickstart, you download and run a code sample that demonstrates how an ASP.NET web app can sign in users from any Azure Active Directory (Azure AD) organization.

Nézze meg, Hogyan működik a minta egy ábrán.See How the sample works for an illustration.

ElőfeltételekPrerequisites

A rövid útmutató mintaalkalmazásának regisztrálása és letöltéseRegister and download your quickstart app

A rövid útmutató mintaalkalmazását kétféleképpen indíthatja el:You have two options to start your quickstart application:

1. lehetőség: Az alkalmazás regisztrálása és automatikus konfigurálása, majd a kódminta letöltéseOption 1: Register and auto configure your app and then download your code sample

  1. Lépjen a Azure Portal-Alkalmazásregisztrációk gyors üzembe helyezési élményhez.Go to the Azure portal - App registrations quickstart experience.
  2. Adja meg az alkalmazás nevét, majd kattintson a Regisztráció elemre.Enter a name for your application and select Register.
  3. Kövesse az új alkalmazás egy kattintással való letöltésére és automatikus konfigurálására vonatkozó utasításokat.Follow the instructions to download and automatically configure your new application for you in one click.

2. lehetőség: Az alkalmazás és a kódminta regisztrálása és kézi konfigurálásaOption 2: Register and manually configure your application and code sample

1. lépés: Alkalmazás regisztrálásaStep 1: Register your application

Az alkalmazás regisztrálásához és az alkalmazás regisztrációs információinak a megoldáshoz való kézi hozzáadásához kövesse az alábbi lépéseket:To register your application and add the app's registration information to your solution manually, follow these steps:

  1. Jelentkezzen be a Azure Portalba .Sign in to the Azure portal.
  2. Ha több bérlőhöz fér hozzá, a felső menüben a könyvtár + előfizetés szűrő használatával válassza ki azt a bérlőt, amelyben regisztrálni kíván egy alkalmazást.
  3. Keresse meg és válassza ki az Azure Active Directoryt.Search for and select Azure Active Directory.
  4. A kezelés területen válassza a Alkalmazásregisztrációk > új regisztráció lehetőséget.Under Manage, select App registrations > New registration.
  5. Adja meg az alkalmazás nevét , például: ASPNET-Quickstart .Enter a Name for your application, for example ASPNET-Quickstart. Előfordulhat, hogy az alkalmazás felhasználói láthatják ezt a nevet, és később is megváltoztathatók.Users of your app might see this name, and you can change it later.
  6. Adja hozzá https://localhost:44368/ az ÁTirányítási URI-t, majd válassza a regisztráció lehetőséget.Add https://localhost:44368/ in Redirect URI, and select Register.
  7. A kezelés területen válassza a hitelesítés lehetőséget.Under Manage, select Authentication.
  8. Az implicit támogatás alszakasza alatt válassza az azonosító tokenek lehetőséget.Under the Implicit Grant sub-section, select ID tokens.
  9. Válassza a Mentés lehetőséget.Select Save.

1. lépés: Az alkalmazás konfigurálása az Azure PortalonStep 1: Configure your application in Azure portal

Ahhoz, hogy a rövid útmutatóhoz tartozó kódminta működjön, hozzá kell adnia egy válasz URL-t a következő formában: https://localhost:44368/.For the code sample for this quickstart to work, you need to add a reply URL as https://localhost:44368/.

Már konfigurált Az alkalmazása már konfigurálva van ezzel az attribútummalAlready configured Your application is configured with this attribute

2. lépés: A projekt letöltéseStep 2: Download your project

Futtassa a projektet a Visual Studio 2019 használatával.Run the project using Visual Studio 2019.

3. lépés: az alkalmazás konfigurálva van, és készen áll a futtatásraStep 3: Your app is configured and ready to run

A projektet az alkalmazás tulajdonságainak értékeivel konfiguráltuk.We have configured your project with values of your app's properties.

3. lépés: a Visual Studio-projekt futtatásaStep 3: Run your Visual Studio project

  1. Csomagolja ki a zip-fájlt egy helyi mappába a gyökérmappa közelében (például: C:\Azure-Samples)Extract the zip file to a local folder closer to the root folder - for example, C:\Azure-Samples
  2. Nyissa meg a megoldást (AppModelv2-WebApp-OpenIDConnect-DotNet.sln) a Visual Studióban.Open the solution in Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln)
  3. A Visual Studio verziójától függően előfordulhat, hogy a jobb gombbal a projektre kell kattintania, AppModelv2-WebApp-OpenIDConnect-DotNet és vissza kell állítania a NuGet-csomagokatDepending on the version of Visual Studio, you might need to right click on the project AppModelv2-WebApp-OpenIDConnect-DotNet and Restore NuGet packages
  4. Nyissa meg a Package Manager konzolját (View-> egyéb Windows-> csomagkezelő konzol), és futtassa a következőt: Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -rOpen the Package Manager Console (View -> Other Windows -> Package Manager Console) and run Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
  1. Szerkessze a Web.config fájlt, és cserélje le a ClientId és Tenant paramétereket az alábbiakkal:Edit Web.config and replace the parameters ClientId and Tenant with:
    <add key="ClientId" value="Enter_the_Application_Id_here" />
    <add key="Tenant" value="Enter_the_Tenant_Info_Here" />
    
    Ahol:Where:
  • Enter_the_Application_Id_here – ez a regisztrált alkalmazás alkalmazásazonosítója.Enter_the_Application_Id_here - is the Application Id for the application you registered.
  • Enter_the_Tenant_Info_Here – ez az alábbi lehetőségek egyike:Enter_the_Tenant_Info_Here - is one of the options below:
    • Ha az alkalmazás csak a saját szervezetet támogatja, cserélje le ezt az értéket a bérlői azonosító vagy a bérlő nevére (például contoso.onmicrosoft.com).If your application supports My organization only, replace this value with the Tenant Id or Tenant name (for example, contoso.onmicrosoft.com)
    • Ha az alkalmazás bármely szervezeti címtárban lévő fiókot támogat, ezt az értéket az organizations értékre cserélje leIf your application supports Accounts in any organizational directory, replace this value with organizations
    • Ha az alkalmazás minden Microsoft-fiókfelhasználót támogat, ezt az értéket a common értékre cserélje leIf your application supports All Microsoft account users, replace this value with common

Tipp

  • Az alkalmazásazonosító, a címtár (bérlő) azonosítója és a támogatott fióktípusok értékét az Áttekintés oldalon találjaTo find the values of Application ID, Directory (tenant) ID, and Supported account types, go to the Overview page
  • Győződjön meg arról, hogy a redirectUri Web.config értéke megfelel az alkalmazás regisztrálásához az Azure ad-ben megadott átirányítási URI -nak (ha nem, navigáljon az alkalmazás regisztrációjának hitelesítés menüjéhez, és frissítse az átirányítási URI -t az egyeztetéshez)Ensure the value for redirectUri in the Web.config corresponds with the Redirect URI defined for the App Registration in Azure AD (if not, navigate to the Authentication menu for the App Registration and update the REDIRECT URI to match)

Megjegyzés

Enter_the_Supported_Account_Info_Here

További információMore information

Ez a szakasz a felhasználók bejelentkeztetéséhez szükséges kód áttekintését tartalmazza.This section gives an overview of the code required to sign-in users. Ez az Áttekintés hasznos lehet a kód működésének, a fő argumentumok, valamint a meglévő ASP.NET-alkalmazáshoz való bejelentkezés hozzáadásának megismeréséhez.This overview can be useful to understand how the code works, main arguments, and also if you want to add sign-in to an existing ASP.NET application.

A minta működéseHow the sample works

Bemutatja, hogyan működik a rövid útmutatóban létrehozott minta alkalmazás

OWIN közbenső NuGet-csomagokOWIN middleware NuGet packages

Az ASP.NET-ben az OpenID Connecttel végzett, cookie-alapú hitelesítési folyamatot OWIN közbenső csomagokkal valósíthatja meg.You can set up the authentication pipeline with cookie-based authentication using OpenID Connect in ASP.NET with OWIN Middleware packages. E csomagok telepítéséhez futtassa a következő parancsot a Visual Studio csomagkezelő konzolján:You can install these packages by running the following commands in Visual Studio's Package Manager Console:

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

OWIN indítási osztályOWIN Startup Class

A OWIN middleware olyan indítási osztályt használ, amely a üzemeltetési folyamat inicializálásakor fut.The OWIN middleware uses a startup class that runs when the hosting process initializes. Ebben a rövid útmutatóban a gyökérmappa mappában található Startup.cs -fájl szerepel.In this quickstart, the startup.cs file located in root folder. Az alábbi kódban a jelen rövid útmutató által használt paraméter látható:The following code shows the parameter used by this quickstart:

public void Configuration(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseCookieAuthentication(new CookieAuthenticationOptions());
    app.UseOpenIdConnectAuthentication(
        new OpenIdConnectAuthenticationOptions
        {
            // Sets the ClientId, authority, RedirectUri 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 is using the home page
            PostLogoutRedirectUri = redirectUri,
            Scope = OpenIdConnectScope.OpenIdProfile,
            // ResponseType is set to request the id_token - which contains basic information about the signed-in user
            ResponseType = OpenIdConnectResponseType.IdToken,
            // 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 organizations, set ValidateIssuer to true and '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 ValidIssuers parameter
            TokenValidationParameters = new TokenValidationParameters()
            {
                ValidateIssuer = false // Simplification (see note below)
            },
            // OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to OnAuthenticationFailed method
            Notifications = new OpenIdConnectAuthenticationNotifications
            {
                AuthenticationFailed = OnAuthenticationFailed
            }
        }
    );
}
AholWhere LeírásDescription
ClientId Az Azure Portalon regisztrált alkalmazás azonosítójaApplication ID from the application registered in the Azure portal
Authority A felhasználó által hitelesítendő STS-végpont.The STS endpoint for user to authenticate. Általában https://login.microsoftonline.com/{tenant}/v2.0 a nyilvános felhőknél, ahol a {tenant} a bérlő neve, a bérlő azonosítója, vagy common a közös végpontra való hivatkozáskor (több-bérlős alkalmazások esetében)Usually https://login.microsoftonline.com/{tenant}/v2.0 for public cloud, where {tenant} is the name of your tenant, your tenant Id, or common for a reference to the common endpoint (used for multi-tenant applications)
RedirectUri URL-cím, amelyben a felhasználók a Microsoft Identity platform végpontjának hitelesítése után továbbítódnakURL where users are sent after authentication against Microsoft identity platform endpoint
PostLogoutRedirectUri Az URL-cím, ahová a rendszer átirányítja a felhasználókat kijelentkezés utánURL where users are sent after signing-off
Scope A kért hatókörök felsorolása, szóközökkel elválasztvaThe list of scopes being requested, separated by spaces
ResponseType Arra vonatkozó kérés, hogy a hitelesítés válasza tartalmazzon egy azonosító jogkivonatotRequest that the response from authentication contains an ID token
TokenValidationParameters A jogkivonatok érvényesítéséhez használatos paraméterek listája.A list of parameters for token validation. Ebben az esetben a ValidateIssuer értéke false, ami azt jelzi, hogy a bejelentkezés bármilyen személyes, illetve munkahelyi vagy iskolai típusú fiókkal elfogadott.In this case, ValidateIssuer is set to false to indicate that it can accept sign-ins from any personal, or work or school account types
Notifications A különböző OpenIdConnect üzenetek esetében végrehajtható delegáltak listájaA list of delegates that can be executed on different OpenIdConnect messages

Megjegyzés

A beállítás a rövid útmutató ValidateIssuer = false egyszerűsítése.Setting ValidateIssuer = false is a simplification for this quickstart. A valós alkalmazásokban ellenőriznie kell a kiállítót.In real applications you need to validate the issuer. Ennek megértéséhez tekintse meg a mintákat.See the samples to understand how to do that.

Hitelesítő kérdés kezdeményezéseInitiate an authentication challenge

Előírhatja a felhasználóknak a bejelentkezést, ha a vezérlőben egy hitelesítő kérdést kezdeményez:You can force a user to sign in by requesting an authentication challenge in your controller:

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

Tipp

A hitelesítő kérdés fenti módszerrel történő kérése nem kötelező, és jellemzően arra szokták használni, hogy egy nézetet a hitelesített és nem hitelesített felhasználóknak is elérhetővé tegyenek.Requesting an authentication challenge using the method above is optional and normally used when you want a view to be accessible from both authenticated and non-authenticated users. Másik megoldásként a vezérlők is védhetők a következő szakaszban leírt módon.Alternatively, you can protect controllers by using the method described in the next section.

Egy vezérlő vagy egy vezérlő metódusának védelmeProtect a controller or a controller's method

A vezérlők vagy a vezérlők műveletei az [Authorize] attribútummal védhetők.You can protect a controller or controller actions using the [Authorize] attribute. Ez az attribútum úgy korlátozza a vezérlőhöz és a műveleteihez való hozzáférést, hogy csak a hitelesített felhasználóknak engedélyezi a vezérlő műveleteinek elérését. Ezt azt jelenti, hogy a hitelesítő kérdés automatikusan megjelenik, ha egy nem hitelesített felhasználó megpróbál hozzáférni az [Authorize] attribútummal jelölt bármely művelethez vagy vezérlőhöz.This attribute restricts access to the controller or actions by allowing only authenticated users to access the actions in the controller, which means that authentication challenge will happen automatically when a non-authenticated user tries to access one of the actions or controller decorated by the [Authorize] attribute.

Súgó és támogatásHelp and support

Ha segítségre van szüksége, jelentsen egy problémát, vagy szeretne többet megtudni a támogatási lehetőségekről, lásd: Súgó és támogatás fejlesztőknek.If you need help, want to report an issue, or want to learn about your support options, see Help and support for developers.

Következő lépésekNext steps

Próbálja ki az ASP.NET-hez készült oktatóanyagot, amelyben teljes körű, részletes útmutatót talál az alkalmazások és új szolgáltatások létrehozásához, valamint megtalálja ennek a rövid útmutatónak a teljes magyarázatát is.Try out the ASP.NET tutorial for a complete step-by-step guide on building applications and new features, including a full explanation of this quickstart.