API request beperkt toegang te geven tot database inhoud

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • RedCellNL
  • Registratie: September 2003
  • Laatst online: 11-04-2024
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


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
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.

Je eigen tweaker.me redirect

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.”


Acties:
  • 0 Henk 'm!

  • RedCellNL
  • Registratie: September 2003
  • Laatst online: 11-04-2024
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.

Acties:
  • 0 Henk 'm!

  • RedCellNL
  • Registratie: September 2003
  • Laatst online: 11-04-2024
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.

Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
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