Toon posts:

API request beperkt toegang te geven tot database inhoud

Pagina: 1
Acties:

Vraag


  • RedCellNL
  • Registratie: September 2003
  • Laatst online: 02-02 09:30
Mijn vraag
Wat is de beste manier om een API request beperkt toegang te geven tot de database inhoud?

Voorbeeld; Ik heb een database met postcodes van Nederland. Mijn klant betaald alleen voor de postcode die begint met 56. Hoe kan ik het beste beperken dat zijn API call naar de postcode database via de front-end alleen resultaten teruggeeft die beginnen met 56. Ik geef de klant het API endpoint en een API key voor authenticatie.

Relevante software en hardware die ik gebruik:
Azure Web App .NET Core
SQL PaaS
Azure API Management
Azure B2C

Wat ik al gevonden of geprobeerd heb
Het kan via row level security, vereist veel onderhoud
Via een SQL query in de front end?

Alle reacties


  • RobIII
  • Registratie: December 2001
  • Laatst online: 13:14

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Dat is nogal een specifieke toepassing; ik zie geen andere oplossing dan 't oplossen in je business logic. Is je verwachting dat je ergens in Azure kunt klikken naar permissions van een user en dan kunt klikken "alleen records beginnend met 56..."?

Je weet a.d.h.v. de authenticatie wie je klant is; tabelletje met user-id en toegestane postcode(s) prefix(es) en die meenemen in je queries et voila? Je zou een view kunnen maken (die deze voorgenoemde info gebruikt) als uitgangspunt voor de rest van je queries.
RedCellNL schreef op woensdag 16 februari 2022 @ 22:39:
Via een SQL query in de front end?
Het hangt natuurlijk van je perspectief af wat je front/backend noemt maar ik hoop dat je hiermee niet 't frontend in de browser van je gebruikers bedoelt? Want zoiets wil je natuurlijk in je backend oplossen. Als je je API/applicatie "frontend" van een "groter geheel" noemt, dan ja.

[Voor 64% gewijzigd door RobIII op 16-02-2022 22:59]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Hoewel ik het volledig met @RobIII eens ben dat dit waarschijnlijk een business concern is, en dus prima in je business laag opgelost kan worden, zijn er ook mogelijkheden om het in de database ah te dwingen: https://docs.microsoft.co...ity?view=sql-server-ver15

De vraag is vooral hoe onderhoudbaar is het,

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • RedCellNL
  • Registratie: September 2003
  • Laatst online: 02-02 09:30
RobIII schreef op woensdag 16 februari 2022 @ 22:42:
Dat is nogal een specifieke toepassing; ik zie geen andere oplossing dan 't oplossen in je business logic. Is je verwachting dat je ergens in Azure kunt klikken naar permissions van een user en dan kunt klikken "alleen records beginnend met 56..."?
Nee, dit verwacht ik niet. Het moet zelf worden gebouwd.
RobIII schreef op woensdag 16 februari 2022 @ 22:42:

Je weet a.d.h.v. de authenticatie wie je klant is; tabelletje met user-id en toegestane postcode(s) prefix(es) en die meenemen in je queries et voila? Je zou een view kunnen maken (die deze voorgenoemde info gebruikt) als uitgangspunt voor de rest van je queries.
Die view is inderdaad een goede aanvulling. Ga ik eens naar kijken.
RobIII schreef op woensdag 16 februari 2022 @ 22:42:
Het hangt natuurlijk van je perspectief af wat je front/backend noemt maar ik hoop dat je hiermee niet 't frontend in de browser van je gebruikers bedoelt? Want zoiets wil je natuurlijk in je backend oplossen. Als je je API/applicatie "frontend" van een "groter geheel" noemt, dan ja.
Met Front End bedoel ik de Web App die de API aanbied.

  • RedCellNL
  • Registratie: September 2003
  • Laatst online: 02-02 09:30
Woy schreef op donderdag 17 februari 2022 @ 07:34:
Hoewel ik het volledig met @RobIII eens ben dat dit waarschijnlijk een business concern is, en dus prima in je business laag opgelost kan worden, zijn er ook mogelijkheden om het in de database ah te dwingen: https://docs.microsoft.co...ity?view=sql-server-ver15

De vraag is vooral hoe onderhoudbaar is het,
Ja dat lijkt me erg veel onderhoud vereisen. Denk dat er betere oplossingen zijn.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:54
Dit soort logica wordt meestal gewoon in de applicatie afgehandeld. Je kijkt naar de gebruiker, doet een lookup in een lijst ergens, en voegt dan gewoon een filter aan de database query toe. Stelt niet zo veel voor.

https://niels.nu

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee