2016-12-29 2 views
0

Angenommen, ich erstelle ein Verkaufsmanagement-Tool für die Firma FooBar.REST-API - Wie kann der Zugriff auf Ressourcen nach Rolle eingeschränkt werden?

FooBar hat eine Liste von Kunden, die in vier verschiedene Regionen unterteilt sind. Norden, Süden, Osten und Westen.

Die Verkaufsmanager für jede Region sollten in der Lage sein, auf die Kunden für ihre eigene Region zuzugreifen, aber nicht auf andere Regionen. Es gibt auch einen nationalen Verkaufsleiter, der Zugang zu allen Kunden hat.

Was ist der beste Weg, die Ressource des Kunden zu entlarven? Ist es angemessen, einen einzigen Zugriffspunkt von /api/customers zu haben, der nur die Kunden zurückgibt, auf die dieser Manager Zugriff hat? Ist es normal, dass ein URI ganz unterschiedliche Datensätze zurückgibt, je nachdem, wer anfragt?

Der Ansatz /api/region/customers scheint falsch zu sein, da die Regionen sich ändern können, die Kunden können zwischen den Regionen wechseln, und es würde mehrere Anfragen erfordern, um die Master-Liste für den nationalen Direktor zu erhalten.

Gibt es einen Musternamen für das, was ich beschreibe? Ich habe versucht, zu suchen, aber ich darf nicht die richtigen Namen verwenden.

Antwort

1

Da die Anforderung für /api/customers für verschiedene Benutzer unterschiedlich sein wird (Cookie-Header wird anders sein, wenn Sie Cookies für die Sitzungsbehandlung verwenden), ist es völlig in Ordnung, verschiedene Daten zurückzugeben.

+0

Was ist, wenn ich JWTs verwende? –

+0

gleicher diff. In diesem Fall handelt es sich um den Authorization-Header. –

+0

großartig, danke. Ich wusste nur nicht, ob diese Art von Verhalten verpönt ist oder was die Norm ist. –

Verwandte Themen