Rövid útmutató: Jelentkezzen be a felhasználókba, és hívja meg a Microsoft Graph API-t egy ASP.NET webalkalmazásból

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.

Tekintse meg , hogyan működik a minta egy illusztrációhoz.

Előfeltételek

Az alkalmazás regisztrálása és letöltése

Tipp.

A cikkben szereplő lépések a portáltól függően kissé eltérhetnek.

Az alkalmazás létrehozásának két lehetősége van: automatikus vagy manuális konfiguráció.

Automatikus konfiguráció

Ha automatikusan konfigurálni szeretné az alkalmazást, majd le szeretné tölteni a kódmintát, kövesse az alábbi lépéseket:

  1. Jelentkezzen be a Microsoft Entra Felügyeleti központ gyorsútmutató-felületére legalább egy felhőalapú alkalmazásként Rendszergazda istratorként.
  2. Adja meg az alkalmazás nevét, majd kattintson a Regisztráció elemre.
  3. Kövesse az utasításokat az új alkalmazás letöltéséhez és automatikus konfigurálásához egyetlen kattintással.

Manuális konfigurálás

Ha manuálisan szeretné konfigurálni az alkalmazást és a kódmintát, kövesse az alábbi eljárásokat.

1. lépés: Az alkalmazás regisztrálása

  1. Jelentkezzen be a Microsoft Entra felügyeleti központba legalább felhőalkalmazásként Rendszergazda istratorként.
  2. Ha több bérlőhöz is hozzáfér, a felső menü Gépház ikonjávalválthat arra a bérlőre, amelyben regisztrálni szeretné az alkalmazást a Könyvtárak + előfizetések menüből.
  3. Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk és válassza az Új regisztráció lehetőséget.
  4. A Név mezőbe írja be az alkalmazás nevét. Írja be például az ASPNET-Rövid útmutatót. Az alkalmazás felhasználói látni fogják ezt a nevet, és később módosíthatja.
  5. Állítsa az átirányítási URI-típust a webre, az értéket pedig a következőrehttps://localhost:44368/: .
  6. Válassza ki a pénztárgépet.
  7. A Kezelés területen válassza a Hitelesítés lehetőséget.
  8. Az Implicit engedélyezési és hibrid folyamatok szakaszban válassza ki az azonosító jogkivonatokat.
  9. Válassza a Mentés lehetőséget.

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

A ASP.NET kódminta letöltése

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: A projekt futtatása

  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.

  5. Szerkessze appsettings.json , és cserélje le a paramétereket ClientId, Tenantés redirectUri a következőre:

    "ClientId" :"Enter_the_Application_Id_here" />
    "TenantId": "Enter_the_Tenant_Info_Here" />
    "RedirectUri" :"https://localhost:44368/" />
    

    Ebben a kódban:

    • Enter_the_Application_Id_here A korábban létrehozott alkalmazásregisztráció alkalmazás-(ügyfél-) azonosítója. Keresse meg az alkalmazás (ügyfél) azonosítóját az alkalmazás Áttekintés lapján Alkalmazásregisztrációk a Microsoft Entra Felügyeleti központban.
    • Enter_the_Tenant_Info_Here az alábbi lehetőségek egyike:
      • Ha az alkalmazás csak a Saját szervezetet támogatja, cserélje le ezt az értéket a címtár (bérlő) azonosítóra vagy bérlőnévre (példáulcontoso.onmicrosoft.com). Keresse meg a címtár (bérlő) azonosítóját az alkalmazás Áttekintés lapján Alkalmazásregisztrációk a Microsoft Entra Felügyeleti központban.
      • Ha az alkalmazás bármely szervezeti címtárban támogatja a fiókokat, cserélje le ezt az értéket a következőreorganizations: .
      • Ha az alkalmazás támogatja a Microsoft-fiók összes felhasználóját, cserélje le ezt az értéket a következőre common: .
    • redirectUria Microsoft Entra felügyeleti központban korábban megadott átirányítási URI Alkalmazásregisztrációk.

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 a webböngésző, a webalkalmazás és a mintaalkalmazás Microsoft Identitásplatform közötti interakcióról.

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.Identity.Web.Owin
Install-Package Microsoft.Identity.Web.GraphServiceClient
Install-Package Microsoft.Owin.Security.Cookies

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());
        OwinTokenAcquirerFactory factory = TokenAcquirerFactory.GetDefaultInstance<OwinTokenAcquirerFactory>();

        app.AddMicrosoftIdentityWebApp(factory);
        factory.Services
            .Configure<ConfidentialClientApplicationOptions>(options => { options.RedirectUri = "https://localhost:44368/"; })
            .AddMicrosoftGraph()
            .AddInMemoryTokenCaches();
        factory.Build();
    }
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.

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.

A Microsoft Graph meghívása a vezérlőből

Meghívhatja a Microsoft Graph-ot a vezérlőből a GraphServiceClient példányának lekérésével a GetGraphServiceClient vezérlő bővítménymetódusával, például az alábbi kódban:

    try
    { 
        var me = await this.GetGraphServiceClient().Me.GetAsync();
        ViewBag.Username = me.DisplayName;
    }
    catch (ServiceException graphEx) when (graphEx.InnerException is MicrosoftIdentityWebChallengeUserException)
    {
        HttpContext.GetOwinContext().Authentication.Challenge(OpenIdConnectAuthenticationDefaults.AuthenticationType);
        return View();
    }

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.