Zitat von Campy |
Bei allen Beispielen die ich zu on behalf of fand, geht es darum, Daten von einem 3rd Party Service abzuholen.
|
Bei On Behalf geht es um jede Art von Aktion, die im Namen des Benutzers erfolgen soll.
Die Auth-Architektur entscheidet, wie das aber genau abläuft.
Zitat von Campy |
Somit könnte doch Service A einfach das Token für die Requests an Service B verwenden?
|
Das kommt drauf an.
Generell ist die Idee von einer "verteilten" Microservice-Landschaft, dass ein Token immer nur gegenüber einem Microservice gültig ist.
Die Authorisierung findet also gegen einen einzigen Service statt.
Wenn Du aber eine Plattform baust, und es quasi einen einzigen Gateway gibt und man gar nicht weiß, welche Microservices sich im Hintergrund befinden, dann hat man einen einzigen Token der eben gegen diese "Plattform" gültig ist.
Beispiel:
Dein Token ist für Google Mail Services gültig. Das ist eine Plattform mit mehreren Services.
Der gleiche Token ist aber nicht für Google Maps gültig.
Mein Alltag:
Ich baue fast ausschließlich größere Cloud-Plattformen auf Basis von Microservices.
Die Teams selbst sind jeweils für einen Service verantwortlich.
Der Service ist aber eben von Außen nicht ersichtlich, sondern von aussen sieht man nur api.domain.tld
Es gibt einen einzigen Token, der dann für alle Services gültig ist.
Beim Erstellen des Tokens wird rein geschrieben, welche Scopes hat (zB user:write user:read order:cancel) etc etc.
Service A kann (nicht muss) dann den Token einfach nehmen um andere Aktionen ausführen gegen andere, interne Services.
Aber auch hier kann man On Behalf verwenden, um eine spezifische Authorisierung zu erzwingen (zB höherwertige Rechte etc).
Für andere Plattformen muss es aber super modular sein, dann muss pro Endpunkt ein eigener Token erstellt werden.
zB api-order.domain.tld, api-users.domain.tld
Service A muss nun On Behalf nehmen, weil der Token ja nur für Service A gültig ist, aber nicht für Service B.
Zitat von Campy |
Entschuldige bitte, dass ich so genau nachfrage, aber es geht ja genau darum es richtig zu machen
|
Kein Grund der Entschuldigung, wir haben alle unwissend begonnen.
Man kann das aber in so nem Forenbeitrag kaum alles zusammen fassen, weshalb sich bei solchen Themen wirklich Zeit und Lektüre eignet (oder auch Trainer:in/Berater:in).