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
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Visual Studio 2022
- .NET-keretrendszer 4.7.2+
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:
- 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.
- Adja meg az alkalmazás nevét, majd kattintson a Regisztráció elemre.
- 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
- Jelentkezzen be a Microsoft Entra felügyeleti központba legalább felhőalkalmazásként Rendszergazda istratorként.
- 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.
- Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk és válassza az Új regisztráció lehetőséget.
- 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.
- Állítsa az átirányítási URI-típust a webre, az értéket pedig a következőre
https://localhost:44368/
: . - Válassza ki a pénztárgépet.
- A Kezelés területen válassza a Hitelesítés lehetőséget.
- Az Implicit engedélyezési és hibrid folyamatok szakaszban válassza ki az azonosító jogkivonatokat.
- Válassza a Mentés lehetőséget.
2. lépés: A projekt 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
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.
Nyissa meg a megoldást a Visual Studióban (AppModelv2-WebApp-OpenID Csatlakozás-DotNet.sln).
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.
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.Szerkessze appsettings.json , és cserélje le a paramétereket
ClientId
,Tenant
ésredirectUri
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ául
contoso.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őre
organizations
: . - 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
: .
- 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ául
redirectUri
a 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
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.