[ad_1]
Veel apps hebben gebruikersspecifieke verwittiging of gegevens waartoe eentje defini menigte gebruikers toegang zullen willen hebben plus noch doorheen anderen. Met dit soort vereisten komt den vraag zoals fijnmazige toegangsafhandeling. Of ie nu wegens veiligheids- of privacyredenen is, ie omgaan met gevoelige gegevens is eentje relevant stellingname voordat elke app. Vitaal of klein, niemand wil aan den verkeerde kantkloswerk staan van eentje datalekschandaal. Toestaan wij dus ooit loeren watten ie betekent wegens met gevoelige of vertrouwelijke verwittiging te onze apps wegens te gaan.
Neem ie serieus
Ongeacht of u toegang vraagt via Twitter, eentje canap of uw plaatselijke bibliotheek, ie identificeren van uzelf is eentje cruciale eerste stap. Elke vorm van poort heeft eentje betrouwbare wijze nodig wegens te verifiëren of eentje toegangsverzoek legitiem is.
“Identiteitsdiefstal is geen grap.”
— Dwight Schrute
Op internet vatten wij ie veranderingsproces samen voordat ie identificeren van eentje gebruiker plus ie verlenen van toegang mits Authwatten staat voordat twee gerelateerde maar verschillende acties:
- Authenticatie: ie vastmaken van den identiteit van eentje gebruiker.
- Toestemming: eentje geverifieerde gebruiker toegang verlenen totdat eentje waterput.
Ie is mogelijk wegens authenticatie zonder machtiging te hebben, maar noch tegengesteld. Den tactiek wegens machtiging op gegevensbeheerniveau te implementeren, schenkkan soepel wordt aangeduid mits Bewaking op rijniveau (RLS), maar RLS is werkelijk iets meer dan dit. Ter dit wetsartikel gaan wij eentje stap dieper te op ie beheren van gevoelige gebruikersgegevens plus ie definiëren van toegangsrollen totdat eentje gebruikersbestand.
Bewaking op rijniveau (RLS)
Ene ‘rij’ verwijst te dit geval zoals eentje invoer te eentje databasetabel. Bijvoorbeeld tijdens eentje terpostbezorging tabel, zullen eentje rij eentje enkele zijn wetsartikelCheck dit json
vertegenwoordiging:
{
"posts": (
{
"id": "article_23495044",
"title": "User Gegevens Management",
"content": "<huge blob of text>",
"publishedAt": "2023-03-28",
"author": "author_2929292"
},
// ...
)
}
Wegens RLS te vatten, elk object
in terpostbezorging is eentje ‘rij’.
Den voorgaande gegevens zijn voldoende voordat ie maken van eentje filteralgoritme wegens bewaking op rijniveau effectief ge te dwingen. Desalniettemin is ie cruciaal voordat schaalbaarheid plus gegevensverwerking relatie is gedefinieerd op uw gegevenslaag. Op dit wijze heeft elke service diegene verbinding maakt met uw database alle vereiste verwittiging wegens zijn inherent toegangscontrolelogica zoals behoefte te implementeren. Dus voordat ie voorgaande voorbeeld, den schema voordat den terpostbezorging tabel ziet er vrijwel mits volgt uit:
{
"posts": {
"columns": (
{
"name": "id",
"type": "string"
},
// ... other primitive types
// establish relationship with "authors"
{
"name": "author",
"type": "verbinding",
"verbinding": "authors"
}
)
}
}
Ter ie voorgaande voorbeeld definiëren wij den type
van elke waarde te onze terpostbezorging database plus ie toenemen van eentje relatie zoals den schrijvers tafel. Dus elke postbode krijgt den id
van één maker. Dit is eentje een-op-veel-relatie: eentje maker schenkkan hebben veel terpostbezorging.
Natuurlijk zijn er zowel patronen wegens veel-op-veel-relaties te definiëren. Neem bijvoorbeeld den nadeel van eentje team. Mogelijk wilt u dat inclusief leden van eentje bepaald team toegang hebben. Ter dat geval kunt u eentje opsomming maken van gebruikers met toegang totdat eentje specifieke waterput (plus dus zeer gedetailleerd zijn), of u kunt eentje tabel definiëren voordat teamplus dus ie verbinden van a team voordat meerdere taken, plus a team zoals meerdere gebruikers: dit raderblad heet eentje verbindingstafel plus is omvangrijk wegens te definiëren bereikbare toegang in uw gegevenslaag.
Nu vatten wij watten machtiging is plus lijkt te eentje twee gevallen. Dit zullen voldoende willen zijn wegens eentje mentaal specimen te ontwerpen voordat ie definiëren van den toegang totdat onze gegevens. Wij vatten dat onze app hiervan op den hoogte moeten zijn wegens den gedetailleerde toegang totdat onze gegevens effectief te kunnen tradities welke gebruiker tweedehands dat specifieke exemplaar van den app (zowel vertrouwd mits wie er achter den muis zit).
Authenticatie
Ie is tijdstip wegens eentje degelijk plus kosteneffectief systeem op te zetwerk authenticatie. Kostenbesparend omdat ie contraproductief is wegens den gebruiker tijdens elk verzoek weer te authenticeren. Plus ie verhoogt den risicofactor van bestormen, dus toestaan wij authentificatieverzoeken totdat eentje ondergrens beperken. Den wijze waarop onze app den gebruikersreferenties opslaat voordat herwinning te eentje gedefinieerde levenscyclus, wordt eentje sessie.
Er zijn meerdere omgangsvormen wegens gebruikers te authenticeren plus sessies ge te handelen. Ik nodig jij uit wegens ie wetsartikel van Eric Burel te oplezen overheen “Authenticatie in websites: een bankanalogie”. Ie is eentje geweldige plus grondige uitleg van hoe authenticatie werkt.
Toestaan wij vanaf dit ogenblik aanvaarden dat wij onze due diligence hebben gedaan: gebruikersnaam plus wachtwoord zijn veilig opgeslagen, eentje authenticatieprovider schenkkan op betrouwbare wijze den identiteit van onze gebruiker verifiëren plus retourneert eentje session
watten eentje object is dat eentje draagt userId
overeenkomen met den rij van onze gebruiker te den database.
Den punten verbinden
Dus nu wij hebben vastgesteld watten ie betekent plus welke vereisten elk bewegend stuk met zichzelf meebrengt wegens ie te toestaan werken, is onzerzijds doelwit ie volgende:
- Authenticatie
Den provider voert gebruikersauthenticatie uit, den bibliotheek maakt eentjesession
plus den app ontvangt dat mits eentjepayload
van ie autorisatieverzoek. - Wel verzoek
Geverifieerde gebruiker voert verzoek uit metresourceId
; den app neemtuserId
vansession
. - Toegang verlenen
Ie filtert alle resources uit den tabel zoals inclusief diegene diegene eigendom zijn vanuserId
plus retourneert (indien afwezig) diegene metresourceId
.

Met ie voorgaande mentale specimen gedefinieerd, is ie mogelijk wegens elke vorm van implementatie uit te voeren plus uw vragen juist te ontwerpen. Op onzerzijds eerste gedefinieerde schema (posts plus schrijvers) kunnen wij bijvoorbeeld filters tradities op onze ophaalservice wegens inclusief toegang te bieden totdat den resultaten diegene eentje gebruiker zullen willen hebben:
async function getPostsByAuthor(authorId: string) {
terugwedstrijd sdk.db.posts
.filterzakje({
author: authorId
})
.getPaginated()
}
Dit gekunstelde fragment is slechts eentje voorbeeld van eentje kale RLS-implementatie. Misschien mits stofdeeltjes totdat overpeinzen, zodat jij erop kunt voortbouwen.
Slotbeschouwing
Hopelijk hebben dit concepten toegevoegd duidelijkheid geboden overheen ie definiëren van toegangsbeheer totdat privé- plus/of gevoelige gegevens. Ie is relevant op te merken dat er beveiligingsproblemen zijn voordat plus rond ie opslaan van zulke gegevens diegene buitenshuis ie couvert van dit wetsartikel vallen. Mits eentje algemene wet: slaatje zo weinig op mits u nodig heeft plus geef inclusief den noodzakelijke hoeveelheid toegang totdat gegevens. Den minst verstandige gegevens diegene overheen den kabel gaan of doorheen uw app wordt opgeslagen, des te kleiner den mogelijkheid dat uw app ie mikpunt of slachtoffer is van bestormen of lekken.
Laat mij jij vragen of terugkoppeling weten te ie commentaargedeelte of op Twitteren.

(yk)
[ad_2]