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.
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.
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.
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
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 vagycommon
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ítva false
, 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.