Suomi
  • asp-net-core
  • c-sharp
  • tutoriaali
  • auth
  • autentikointi
  • oauth
  • oidc
  • identiteetti

Rakenna ASP.NET Core -autentikointi Logto:lla

Opi rakentamaan käyttäjän autentikointiprosessi ASP.NET Core:ssa integroimalla Logto SDK.

Gao
Gao
Founder

Johdanto

  • Logto on moderni Auth0-vaihtoehto, jonka avulla voidaan rakentaa asiakasidentiteetti-infrastruktuuri vähäisellä vaivalla. Se tukee useita kirjautumismenetelmiä, kuten käyttäjänimi, sähköposti, puhelinnumero ja suositut sosiaalisen median kirjautumiset kuten Google ja GitHub.
  • ASP.NET Core on monialustainen, korkean suorituskyvyn avoimen lähdekoodin kehys nykyaikaisten, pilvipohjaisten, Internet-yhteyksien omaavien sovellusten rakentamiseen.

Tässä ohjeessa näytämme, kuinka voit rakentaa käyttäjän autentikointiprosessin ASP.NET Core:ssa integroimalla Logto SDK:n. Ohjaus käyttää C#:aa ohjelmointikielenä.

Edellytykset

Ennen kuin aloitat, varmista, että sinulla on seuraavat:

Luo Logto-sovellus

Aloittaaksesi, luo Logto-sovellus "Perinteinen web" -tyypillä. Seuraa näitä vaiheita luodaksesi Logto-sovelluksen:

  1. Kirjaudu Logto Console.
  2. Vasemmanpuoleisesta navigointipalkista klikkaa Sovellukset.
  3. Klikkaa Luo sovellus.
  4. Avautuvalla sivulla etsi "Perinteinen web -sovellus" -osio ja etsi "ASP.NET Core" -kortti.
  5. Klikkaa Aloita rakentaminen, ja syötä sovelluksesi nimi.
  6. Klikkaa Luo.

Tämän jälkeen sinulle esitetään interaktiivinen opastus, joka ohjaa sinut Logto SDK:n integroimisessa ASP.NET Core -sovelluksesi kanssa. Seuraava sisältö voi toimia viitteenä tulevaisuudessa.

Integrointi Logto SDK:lla

Asennus

Huomaa, että tuettu minimiversio ASP.NET Core:sta on 6.0.

Lisää Logto autentikointimiddleware

Avaa Startup.cs (tai Program.cs) ja lisää seuraava koodi rekisteröidäksesi Logto autentikointimiddleware:

AddLogtoAuthentication-metodi suorittaa seuraavat asiat:

  • Asettaa oletusautentikointijärjestelmän LogtoDefaults.CookieScheme:ksi.
  • Asettaa oletushaastejärjestelmän LogtoDefaults.AuthenticationScheme:ksi.
  • Asettaa oletuskirjautumisjärjestelmän LogtoDefaults.AuthenticationScheme:ksi.
  • Lisää eväste- ja OpenID Connect -autentikointikäsittelijät autentikointijärjestelmään.

Kirjaudu sisään

Lisää seuraava URI Uudelleenohjaus URI:t -listaan Logto-sovelluksen yksityiskohtien sivulla:

Kirjautuaksesi sisään Logto:lla, voit käyttää ChallengeAsync-metodia:

ChallengeAsync-metodi uudelleenohjaa käyttäjän Logto-kirjautumissivulle.

RedirectUri-ominaisuutta käytetään ohjaamaan käyttäjä takaisin web-sovellukseesi autentikoinnin jälkeen. Huomaa, että se on eri asia kuin uudelleenohjaus URI, jonka asetit Logto-sovelluksen yksityiskohtien sivulla:

  1. Uudelleenohjaus URI Logto-sovelluksen yksityiskohtien sivulla on URI, johon Logto ohjaa käyttäjän takaisin sen jälkeen, kun käyttäjä on kirjautunut sisään.
  2. RedirectUri-ominaisuus on URI, johon ohjataan sen jälkeen, kun tarvittavat toimet on suoritettu Logto-autentikointimiddleware:ssä.

Toimintojen järjestys on 1 -> 2. Selkeyden vuoksi nimitämme uudelleenohjaus URI:ta Logto-sovelluksen yksityiskohtien sivulla Logto uudelleenohjaus URI ja RedirectUri-ominaisuutta sovelluksen uudelleenohjaus URI:ksi.

Logto uudelleenohjaus URI:lla on oletusarvo /Callback, jonka voit jättää sellaiseksi, jos erityisiä vaatimuksia ei ole. Jos haluat muuttaa sen, voit asettaa CallbackPath-ominaisuuden LogtoOptions-kohdassa:

Muista päivittää arvo Logto-sovelluksen yksityiskohtien sivulla vastaavasti.

Kirjaudu ulos

Lisää seuraava URI Kirjautumisen jälkeinen uudelleenohjaus URI:t -listaan Logto-sovelluksen yksityiskohtien sivulla:

Kirjautuaksesi ulos Logto:lla, voit käyttää SignOutAsync-metodia:

SignOutAsync-metodi tyhjentää autentikointievästeen ja uudelleenohjaa käyttäjän Logto-kirjautumissivulle.

RedirectUri-ominaisuutta käytetään ohjaamaan käyttäjä takaisin web-sovellukseesi uloskirjautumisen jälkeen. Huomaa, että se on eri asia kuin kirjautumisen jälkeinen uudelleenohjaus URI, jonka asetit Logto-sovelluksen yksityiskohtien sivulla:

  1. Kirjautumisen jälkeinen uudelleenohjaus URI Logto-sovelluksen yksityiskohtien sivulla on URI, johon Logto ohjaa käyttäjän takaisin sen jälkeen, kun käyttäjä on kirjautunut ulos.
  2. RedirectUri-ominaisuus on URI, johon ohjataan sen jälkeen, kun tarvittavat toimet on suoritettu Logto-autentikointimiddleware:ssä.

Toimintojen järjestys on 1 -> 2. Selkeyden vuoksi nimitämme kirjautumisen jälkeistä uudelleenohjaus URI:ta Logto-sovelluksen yksityiskohtien sivulla Logto kirjautumisen jälkeinen uudelleenohjaus URI ja RedirectUri-ominaisuutta sovelluksen kirjautumisen jälkeinen uudelleenohjaus URI:ksi.

Logto kirjautumisen jälkeinen uudelleenohjaus URI:lla on oletusarvo /SignedOutCallback, jonka voit jättää sellaiseksi, jos erityisiä vaatimuksia ei ole. Jos haluat muuttaa sen, voit asettaa SignedOutCallbackPath-ominaisuuden LogtoOptions-kohdassa:

Muista päivittää arvo Logto-sovelluksen yksityiskohtien sivulla vastaavasti.

Toteuta kirjautumis-/uloskirjautumispainikkeet (Razor Pages)

Lisää ensin käsittelijämenetelmät PageModel:iin, esimerkiksi:

Lisää sitten painikkeet Razor-sivuusi (html):

<p>On autentikoitu: @User.Identity?.IsAuthenticated</p>
<form method="post">
  @if (User.Identity?.IsAuthenticated == true)
  {
    <button type="submit" asp-page-handler="SignOut">Kirjaudu ulos</button>
  } else {
    <button type="submit" asp-page-handler="SignIn">Kirjaudu sisään</button>
  }
</form>

Se näyttää "Kirjaudu sisään"-painikkeen, jos käyttäjä ei ole autentikoitu, ja "Kirjaudu ulos"-painikkeen, jos käyttäjä on autentikoitu.

Tarkistuspiste: Aja web-sovellus

Nyt voit ajaa web-sovelluksen ja yrittää kirjautua sisään/ulos Logto:lla:

  1. Avaa web-sovellus selaimessasi, sinun tulisi nähdä "On autentikoitu: False" ja "Kirjaudu sisään"-painike.
  2. Klikkaa "Kirjaudu sisään"-painiketta, ja sinut pitäisi ohjata Logto-kirjautumissivulle.
  3. Kirjauduttuasi sisään, sinut pitäisi ohjata takaisin web-sovellukseen, ja sinun pitäisi nähdä "On autentikoitu: True" ja "Kirjaudu ulos"-painike.
  4. Klikkaa "Kirjaudu ulos"-painiketta, ja sinut pitäisi ohjata Logto-kirjautumissivulle, ja sitten takaisin web-sovellukseen.

Jos kohtaat ongelmia integroinnin aikana, älä epäröi ottaa meihin yhteyttä sähköpostitse osoitteeseen [email protected] tai liity Discord-palvelimeemme!

Lisälukemista