• 401
  • 403
  • http status code
  • valtuutus
  • todennus

HTTP-tila koodi 401 tai 403? Kuinka todennuksen ja valtuutuksen virheet eroavat toisistaan

401 Valtuuttamaton osoittaa, että asiakasta ei ole todennettu ja se vaatii kelvolliset tunnistetiedot. 403 Kielletty tarkoittaa, että asiakas on todennettu, mutta sillä ei ole tarvittavia käyttöoikeuksia resurssiin pääsemiseksi.

Guamian
Guamian
Product & Design

Joka kerta, kun lataat verkkosivun, teet maksun tai kirjaudut sovellukseen, laitteesi ja palvelimen välillä tapahtuu näkymätön keskustelu. Se on vähän kuin viestin lähettäminen ja vastauksen odottaminen — joskus se on peukku ylöspäin, joskus kohtelias 'yritä uudelleen' ja toisinaan suora 'ei'. Nämä vastaukset, tunnetaan nimellä HTTP-tila koodit, ovat internetin hiljaisia sankareita, jotka ohjaavat huomaamattomasti viestinnän kulkua ja varmistavat, että kaikki toimii sujuvasti — tai ainakin ilmoittavat sinulle, kun se ei toimi.

Mitä ovat HTTP-tila koodit

HTTP-tila koodit ovat kuin signaaleja keskustelussa asiakkaan (kuten selaimesi tai sovelluksen) ja palvelimen välillä. Ne tarjoavat nopeita ja selkeitä päivityksiä siitä, mitä tapahtui, kun teit pyynnön — tapahtuiko kaikki sujuvasti, menivätkö asiat pieleen vai tarvitaan lisätoimia. Ajattele sitä kuin vierailua hyvin hoidetussa leipomossa:

200: Kaikki on täydellistä

Pyydät croissantia, ja leipuri hymyilee, ojentaa sen ja sanoo, “Olkaa hyvä!” Tämä on HTTP 200 OK—pyyntö onnistui, ja kaikki toimi odotetulla tavalla.

200 OK HTTP-tila koodi on yksi yleisimmin käytetyistä koodeista, mikä osoittaa, että asiakkaan pyyntö vastaanotettiin, ymmärrettiin ja käsiteltiin onnistuneesti palvelimella.

301: Olemme muuttaneet

Saavut suosikkileipomoosi, mutta siellä on kyltti, joka sanoo: “Olemme muuttaneet osoitteeseen 123 New Street.” Tämä on 301 Siirretty pysyvästi. Palvelin kehottaa selaintasi menemään uuteen osoitteeseen automaattisesti.

301 Siirretty pysyvästi HTTP-tila koodi osoittaa, että pyydetty resurssi on pysyvästi siirretty uuteen URL-osoitteeseen. Tämä tilakoodi kertoo asiakkaalle (esim. selaimelle tai API-asiakkaalle) päivittämään tietueensa ja käyttämään uutta URL-osoitetta tulevissa pyynnöissä.

404: Pahoittelut, se ei ole täällä

Pyydät suklaaskonea, ja leipuri sanoo, “Emme tee niitä täällä.” Tämä on 404 Ei löydy—etsimääsi resurssia ei ole palvelimella.

404 Ei löytynyt HTTP-tila koodi osoittaa, että palvelin ei löytänyt pyydettyä resurssia. Tämä vastaus tarkoittaa, että asiakkaan pyyntö oli kelvollinen, mutta palvelin ei pystynyt paikantamaan pyydettyä resurssia.

401: Kuka sinä olet?

Yrität päästä VIP-loungeen, mutta portsari pysäyttää sinut ja sanoo, “Sinun on näytettävä jäsenkorttisi.” Tämä on 401 Valtuuttamaton—todennus vaaditaan ennen kuin voit käyttää resurssia.

401 Valtuuttamaton HTTP-tila koodi osoittaa, että asiakkaan pyyntöä ei ole sovellettu, koska siltä puuttuu kelvolliset todennustiedot. Palvelin vaatii asiakasta todentamaan itsensä käyttääkseen pyydettyä resurssia.

403: Ei sinulle

Näytät jäsenkorttisi, mutta portsari sanoo, “Vain platinajäsenet voivat tulla sisään.” Tämä on 403 Kielletty—sinut on todennettu, mutta sinulla ei ole tarvittavia käyttöoikeuksia resurssin käyttämiseen.

403 Kielletty HTTP-tila koodi tarkoittaa, että palvelin ymmärtää asiakkaan pyynnön, mutta kieltäytyy täyttämästä sitä, koska asiakkaalla ei ole tarvittavia oikeuksia. Tämä eroaa 401 Valtuuttamaton -tilasta, koska asiakas on todennettu (tai pyyntö ei vaadi todennusta), mutta pääsy resurssiin on selvästi evätty.

500: Uuni on tulessa

Teet tilauksen, mutta yhtäkkiä keittiöstä alkaa tulla savua. Leipuri sanoo, “Emme voi täyttää tilaustasi; jokin meni pieleen sisäisesti.” Tämä on 500 Sisäinen palvelinvirhe—palvelin kohtasi odottamattoman ongelman.

500 Sisäinen palvelinvirhe -tilakoodi osoittaa, että palvelin kohtasi odottamattoman tilanteen, joka esti sitä täyttämästä pyyntöä. Se on yleinen virhevastaus, eikä se anna tarkkaa tietoa siitä, mikä meni pieleen.

503: Tilapäisesti ei käytettävissä

Vierailet leipomossa, mutta siellä on kyltti, joka sanoo: “Suljettu huollon vuoksi.” Leipomo avataan myöhemmin uudelleen. Tämä on 503 Palvelu ei käytettävissä—palvelin ei tilapäisesti voi käsitellä pyyntöäsi, usein ylikuormituksen tai huollon vuoksi.

503 Palvelu ei käytettävissä HTTP-tila koodi osoittaa, että palvelin ei tilapäisesti pysty käsittelemään pyyntöä. Tämä voi johtua palvelimen ylikuormituksesta, huollosta tai muista tilapäisistä tiloista. Toisin kuin 500 Sisäinen palvelinvirhe, 503 viittaa siihen, että ongelma odotetaan ratkeavan pian.

HTTP-tila koodit ovat avain tehokkaan viestinnän ylläpitämiseen asiakkaiden ja palvelimien välillä. Ne kertovat nopeasti asiakkaille, onnistuivatko heidän pyyntönsä, epäonnistuivatko ne vai vaativatko ne lisätoimintaa. Kehittäjille ja IT-ammattilaisille näiden koodien ymmärtäminen auttaa virheenkorjauksessa, paremman virheenkäsittelyn suunnittelussa ja yleisen käyttäjäkokemuksen parantamisessa.

Ajatelkaa niitä ammatillisina, standardisoituina signaaleina internetin jatkuvassa keskustelussa.

Tässä artikkelissa haluan keskittyä virhekoodien 401 ja 403 eroihin, koska ne liittyvät todennukseen (AuthN) ja valtuutukseen (AuthZ).

Milloin käyttää 401 Valtuuttamaton?

401.png

401 Valtuuttamaton HTTP-tila koodi käytetään, kun asiakkaan pyyntö vaatii todennuksen, mutta se puuttuu, on virheellinen tai on epäonnistunut. Se kertoo asiakkaalle, että heidän on todennettava itsensä saadakseen pyytämänsä resurssin. Todennuksen ja 401 Valtuuttamattoman tilakoodin välinen suhde liittyy todennuksen rooliin päätettäessä, voiko pyyntö jatkua.

401 valtuuttamaton sisältää aina WWW-Authenticate otsikon, joka antaa ohjeita todentamisesta.

Mitkä ovat yleisiä skenaarioita käyttää 401 Valtuuttamaton?

  1. Todennus puuttuu

    Pyyntö ei sisällä tarvittavia todennuksen tunnistetietoja. Esimerkiksi: Pyyntö suojattuun API-päätteen kohtaan tehdään ilman Authentikointi-otsikkoa.

  2. Virheelliset todennustiedot

    Asiakas antaa tunnistetietoja, mutta ne ovat virheellisiä tai eivät vastaa sitä, mitä palvelin odottaa. Esimerkiksi, käyttäjä lähettää virheellisen API-avaimen tai väärinmuodostetun merkkijonon.

  3. Vanhenemisaika umpeutunut todennustoken

    Todennustoken on voimassa, mutta sen voimassaoloaika on päättynyt, ja käyttäjän on todennettava uudelleen. Esimerkiksi, JWT-merkkijono, jonka vanhenemispäivämäärä (exp) on mennyt umpeen.

  4. Puuttuva tai väärinmuodostettu valtuutusotsikko

    Valtuutusotsikko vaaditaan, mutta sitä ei ole annettu tai se on väärin muotoiltu.

  5. Todennusjärjestelmää ei tueta

    Palvelin ei tue asiakkaan antamaa todennusmenetelmää. Esimerkiksi: Asiakas lähettää Basic todennusotsikon, mutta palvelin tukee vain Bearer tunnisteita.

  6. Virheellinen istunto tai token oikeus peruutus

    Käyttäjän istunto on mitätöity tai hänen merkitään on peruutettu. Esimerkiksi: Käyttäjä kirjautuu ulos, mutta sama merkkijonoa käytetään suojatun resurssin käyttämiseen.

Esimerkki vastaus

Milloin käyttää 403 Kielletty?

403.png

403 Kielletty HTTP-tila koodi tarkoittaa, että palvelin ymmärtää pyynnön ja asiakkaan identiteetin (jos todennettu), mutta kieltää pääsyn riittämättömien käyttöoikeuksien vuoksi. Se ilmaisee selvästi, “Sinulla ei ole lupa tehdä tätä,” varmistaen selkeät käyttöoikeusrajoitukset ja vahvistamalla turvallisuuspolitiikkoja.

Ero 401 Valtuuttamattoman ja 403 Kielletyn välillä liittyy niiden rooleihin todennus- ja valtuutus konteksteissa.

Valtuutus on erillinen mekanismi todennuksesta. Kun todennus tunnistaa, kuka olet, valtuutus määrittää, voitko käyttää tiettyjä resursseja ja mitä toimintoja voit suorittaa niille.

Katso tarkemmat eroista authN ja authZ. Katso seuraavat artikkelit.

Mitä on AuthZ

Mitä on AuthN

Mitkä ovat yleisiä skenaarioita käyttää 403 Kielletty?

  1. Todennettu mutta ilman lupaa

    Asiakas on kirjautunut sisään tai todennettu, mutta sillä ei ole tarvittavia käyttöoikeuksia tai roolia. Esimerkiksi, käyttäjä, jolla on “katsoja” rooli, yrittää poistaa tiedoston, mikä vaatii “editor” -oikeuksia.

  2. Rajoitettu resurssin käyttö

    Resurssin käyttö on rajoitettu tiettyihin käyttäjiin tai ryhmiin. Esimerkiksi: Yksityinen asiakirja jaetaan tietyille käyttäjille, mutta sitä yrittää käyttää joku, joka ei ole sallittujen luettelossa.

  3. IP tai paikallinen esto

    Asiakkaan IP-osoite tai maantieteellinen sijainti on estetty palvelimella. Esimerkiksi, käyttäjä rajoitetulta alueelta yrittää käyttää palvelua, joka toimii vain tietyissä maissa.

  4. Politiikan määräämät estetyt toimet

    Asiakas yrittää tehdä palvelimen luotujen politiikkojen tai sääntöjen kieltämän toimen. Esimerkiksi, käyttäjä yrittää muokata resurssia, joka on merkitty “vain luku” -tilaan.

  5. Estetyt staattiset resurssit

    Palvelin kieltää pääsyn tiettyihin staattisiin tiedostoihin tai hakemistoihin turvallisuussyistä.

    Esimerkki: Käyttäjä yrittää käyttää .htaccess-tiedostoa tai palvelimen asetustiedostoa.

  6. Käyttäjätili keskeytetty tai poistettu käytöstä

    Asiakkaan tili on poistettu käytöstä tai estetty rikkomusten tai passiivisuuden vuoksi. Esimerkiksi, käyttäjä, jonka tili on keskeytetty yrittää kirjautua sisään tai käyttää resursseja.

  7. Toimen toteuttaminen edellyttää korkeamman tason oikeuksia

    Pyydetty toimenpide vaatii erityisoikeuksia (esim. admin tai superkäyttäjä). Esimerkiksi, tavanomainen käyttäjä yrittää käyttää vain-admi päätepisteitä.

Esimerkki vastaus:

Kuinka voin ratkaista 401 valtuuttamatonta virhettä

401 virhe yleensä tarkoittaa, että todennus on tarpeen ja on epäonnistunut.

Tarkista tunnistetiedot

Varmista, että Authentikointi-otsikko on läsnä ja oikein muotoiltu ja tarkista, että tunnistetiedot (API-avain, merkkijono tai salasana) ovat oikein eivätkä ole vanhentuneet. Virheen 401 yleisimpiä syitä on väärän käyttäjätunnuksen tai salasanan syöttäminen.

Vahvista todennusmenetelmä

Palvelin saattaa odottaa erilaista todennusmenetelmää kuin mitä tarjotaan. Tämä voi tapahtua, jos asiakas ja palvelin eivät ole linjassa todennusprotokollan kanssa. Käytä palvelimen määrittämää oikeaa menetelmää (esim. Basic, Bearer, API Key) ja tarkista otsikoiden oikea syntaksi.

Tarkasta palvelimen vastaus

Tarkista vastausrungosta virheinformaatio ja katso WWW-Authenticate-otsikko todennusohjeita varten.

Vahvista pyyntö

Varmista, että päätepiste, kysely parametrit ja isäntä ovat oikein ja varmista, että resurssi, johon yrität päästä, vaatii todennuksen.

Tarkista tunnusongelmat

Pura ja tarkastele merkkijonoa (esim. https://logto.io/jwt-decoder: lla) kelpoisuuden, vanhenemisen ja vaatimuksien osalta ja varmista, että merkkijonon kohde (aud) vastaa API:n vaatimuksia.

Kuinka voin ratkaista 403 kielletyn virheen

403 kielletty virhe yleensä tarkoittaa, että valtuutusprosessi on suoritettu, mutta pääsy on evätty. Tämän virheen vianmääritykseksi harkitse seuraavia ehtoja:

Varmista oikeudet

Vahvista, että tilillasi, API-avaimellasi tai tunnuksellasi on tarvittavat oikeudet resurssiin. Tarkista, onko resurssi rajoitettu tiettyihin rooleihin tai ryhmiin.

Varmista, että todennus on oikein

Varmista, että olet todennettu oikein (esim. voimassa olevalla tunnisteella tai tunnuksilla).

Tarkista uudelleen palvelimen vaatima todennusmenetelmä.

Vahvista resurssi

Tarkista, että pyydetty resurssi on olemassa ja sinulla on pääsy siihen. Jos käytät API: itä, vahvista päätepiste vaatimukset dokumentaatiosta.

Tarkista IP tai sijainti estoja

Tarkista, onko IP-osoitteesi tai maantieteellinen sijaintisi rajoitettu palvelimen toimesta.

Tarkista palvelin politiikat

Varmista, että pyydetty toimenpide ei riko palvelimen luomia sääntöjä tai politiikkoja (esim. käyttämällä vain luku -resurssia).

Tarkasta palvelimen vastaus

Tutki vastausrungosta tietoja, jotka selittävät 403 virheen syyn.

Voiko yksittäinen pyyntö palauttaa sekä 401 että 403 tila koodin

Ei, yksittäinen HTTP-pyyntö ei voi palauttaa sekä 401 Valtuuttamaton että 403 Kielletty tilakoodia samanaikaisesti, koska HTTP-vastaus voi sisältää vain yhden tilakoodin.

401 ja 403 virhekoodien käytännön käyttö todennuksessa ja valtuutuksessa

Nykyaikaisessa sovelluskehityksessä 401 Valtuuttamaton ja 403 Kielletty ovat kaksi HTTP-tila koodia, joihin kehittäjät törmäävät usein. Vaikka ne saattavat vaikuttaa samankaltaisilta, niiden merkitykset ja käyttötavat eroavat toisistaan selvästi. Tämän eron selventämiseksi tämä artikkeli tutkii näiden koodien käytännön esimerkkejä skenaarioista, kuten todennus, valtuutus, monivuokralaisuus ja monitekijätodennus (MFA).

  1. Kirjautumistilanne: Käyttäjä yrittää päästä suojatulle sivulle ilman kirjautumista tai kelvollisten tunnusten antamista. Palvelin vastaa ja heittää 401 Valtuuttamaton virheen: “Sinun on kirjauduttava sisään tai annettava kelvolliset tunnistetiedot päästäksesi tälle sivulle.”
  2. Käyttöoikeustilanne: Sama käyttäjä kirjautuu onnistuneesti, mutta yrittää päästä admin-oikeuksilla olevaan sivuun ilman tarvittavaa admin-roolia. Palvelin vastaa ja heittää 403 Kielletty: “Olet kirjautunut sisään, mutta sinulla ei ole lupaa päästä tälle sivulle.”
  3. Monivuokralaisuustilanne: Sama käyttäjä kirjautuu sisään, mutta kuuluu Vuokralainen A: han ja yrittää päästä resurssiin Vuokralainen B:ssä, missä hänellä ei ole pääsyä. Palvelin vastaa ja heittää 403 Kielletty: “Sinut on todennettu, mutta sinulla ei ole lupaa käyttää tätä resurssia Vuokralainen B: ssä.”
  4. MFA-skenaario: Käyttäjä yrittää kirjautua sisään, mutta ei ole suorittanut vaadittavaa monitekijätodennusta (MFA). Palvelin vastaa ja heittää 401 Valtuuttamaton virheen: “Todennus on keskeneräinen. Ole hyvä ja suorita MFA jatkaaksesi.”

Logton käyttäminen todennus- ja valtuutuspalveluntarjoajana

Logto on ensisijaisesti todennuspalveluntarjoaja, joka tarjoaa avainmenetelmiä, kuten salasanaless-kirjautumisen, sähköposti ja salasana, MFA, yrityksen SSO ja sosiaalikirjautumiset, kaikki perustuen avoimiin standardiprotokolliin, kuten OIDC, OAuth 2.0 ja SAML.

Logto Cloud tarjoaa myös tärkeitä valtuutusominaisuuksia, kuten Roolipohjainen käyttöoikeuksien hallinta (RBAC), Organisaatiot (Monivuokralaisuus) ja Mukautetut tunnisteväittämät täyttääkseen erilaisia valtuutustarpeita.