Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
OWIN: Oauth WebApis sichern
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

Themenstarter:

OWIN: Oauth WebApis sichern

beantworten | zitieren | melden

Hallo zusammen,

ich brauche mal einen Denkanstoß :

Ich habe eine Authentication WebAPi die für mich die anmeldung gegen FB, Google usw. usw. erledigt.
Dazu eine WebApp die darüber sich anmeldet und nen Token bekommt.
Nun habe ich aber eine zB OrdersApi die als eigenständige API läuft aber das Authorise Attribute über jedem Controller hat.
Nun muss ja die OrdersApi mit der AuthApi sprechen und validieren, dass der Token der da kommt noch gültig ist.
Ich sehe es so, dass OAuth nie für eine verteilte Landschaft gedacht war....
Gibt es Lösungsansätze wie ich das evtl. per OWIN Lösen kann ?

Viele Grüße
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Ahrimaan am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16147

beantworten | zitieren | melden

Reden wir von OAuth oder OAuth 2.0?
Zitat
Gibt es Lösungsansätze wie ich das evtl. per OWIN Lösen kann ?
OWIN ist nur die Middleware; führt selbst aber weder Authentifizierung noch Authorisierung durch.
In der Middleware werden dafür aber entsprechende Provider - zB OAuth 2.0 - registriert.
Zitat
Ich sehe es so, dass OAuth nie für eine verteilte Landschaft gedacht war....


OAuth 2.0 bzw. so gut wie alle Token-basierte Authentifizierungsmechanismen sind gerade zu perfekt für verteilte Landschaften.
Facebook, Google und Co sind alles verteilte Landschaften und verwenden alle OAuth 2.0.

Die einzelnen Services müssen nur der Quelle des Token und dessen Gültigkeit vertrauen und eben nicht immer einzeln eine Authentifizierung durchführen.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

Themenstarter:

beantworten | zitieren | melden

Hi Abt,

ja ich weiß das OWIn nur ne Middelware ist, diese habe ich aber durch die passenden Module ergänzt. (OAuth usw.)
Du weißt ja wahrscheinlich wie ;)
OWIN übernimmt also die Oauth/Oauth2 funktionalitäten für mich wie Token und Claims usw.
Zitat von Abt
Die einzelnen Services müssen nur der Quelle des Token und dessen Gültigkeit vertrauen und eben nicht immer einzeln eine Authentifizierung durchführen.

Und genau da hakt es bei mir :
Wie "überrede" ich die Middleware meine AuthApi als Trust anzusehen bzw. mit welchen mitteln ?
Da suche ich praktische Ansätze.
Die WebApi direkt mit einem "CustomAuthorise" Attribut aufzurufen halte ich für weniger schön.

Wie machst du das also ?

Oder redest du davon, dass ich die funktionalität der AuthApi (Own app.useGoogle) in JEDE Api einbaue ?
Grüße
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Ahrimaan am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16147

beantworten | zitieren | melden

Nein. Owin übernimmt nichts, sondern stellt nur Schnittstellen zur Verfügung, auf die sich die Provider registrieren.

Schau Dir mal das Beispiel an; vielleicht wird es Dir hier klarer:
https://github.com/tjoudeh/AngularJSAuthentication oder den Vortrag über OAuth für Microservices (nichts anderes willst Du): https://www.youtube.com/watch?v=BdKmZ7mPNns

Denk dran, dass APIs immer stateless sein sollten (nach REST Standards).

Edit zu Deinem Edit:
Ich habe eine WebAPI, die die Authentifizierung übernimmt; also die Serveroptions.

Alle anderen WebAPIs für das Verwalten von Ressourcen (userService, productService, orderService) haben keine eigene Authentifizierung sondern nur eine Authorisierung.
In diesen Services muss nur die Validierung des Tokens stattfinden via app.UseOAuthBearerTokens
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Nein. Owin übernimmt nichts, sondern stellt nur Schnittstellen zur Verfügung, auf die sich die Provider registrieren.

Schau Dir mal das Beispiel an; vielleicht wird es Dir hier klarer:
https://github.com/tjoudeh/AngularJSAuthentication oder den Vortrag über OAuth für Microservices (nichts anderes willst Du): https://www.youtube.com/watch?v=BdKmZ7mPNns

Denk dran, dass APIs immer stateless sein sollten (nach REST Standards).

Hi Abt,

lass uns nicht über begrifflichkeiten streiten, ich weiß wie OWIN den OAUTH Provider registiert und ab da an als mittler zwischen zB google und meiner API fungiert.
Ich gebe dir recht, dass ist kein "übernehmen" der Aufgaben.

Danke für das Youtube Video, genau das ist es was ich suche.

Grüße
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Ahrimaan am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16147

beantworten | zitieren | melden

Naja, dann verwende die Begrifflichkeiten bitte korrekt :-)
Denn aus fachlicher Sicht ist das "übernehmen" eben falsch und kann missverstanden werden. Gerade bei Login-Dingen nicht soooo praktisch.
Und da ich eben nicht sehe, wie Du es meinst sondern nur lese, was Du schreibst, erwähne ich das eben.

Siehe auch mein Edit, der sich jetzt überschnitten hatte.
Schau Dir auch OWIN Authentication Server for multiple applications an, was im Prinzip genau das ist, was Du willst.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Naja, dann verwende die Begrifflichkeiten bitte korrekt :-)
Denn aus fachlicher Sicht ist das "übernehmen" eben falsch und kann missverstanden werden. Gerade bei Login-Dingen nicht soooo praktisch.
Und da ich eben nicht sehe, wie Du es meinst sondern nur lese, was Du schreibst, erwähne ich das eben.

Ich gelobe Besserung :)
Zitat von Abt
Siehe auch mein Edit, der sich jetzt überschnitten hatte.
Schau Dir auch OWIN Authentication Server for multiple applications an, was im Prinzip genau das ist, was Du willst.

Zusammen mit dem Youtubevideo sollte ich damit zum Ziel kommen. Vielen Dank !

Grüße
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Ahrimaan am .
private Nachricht | Beiträge des Benutzers