2017-02-08 2 views
6

Ich habe Oauth 2 und IdentityServer4 für die letzten eineinhalb Tage untersucht und kann sagen, dass ich denke, die bevorzugte Methode in diesem Szenario wäre hybrid flow. Es scheint, dass in der Vergangenheit war es implicit aufgrund der Tatsache, dass ein mobiler Client ein secret nicht schützen kann. Dann schien es authorization flow ohne Geheimnis geändert zu haben ... (keine Ahnung, wie das funktionieren würde)Was OAuth fließen für IONIC2 App und Identity Server4

Mein Verständnis ionischer und andere Cross-Plattform-Frameworks ist, dass sie innerhalb eines web view durch die Einbettung der Anwendung arbeiten und damit diese meine Verwirrung ist, wo setzt in. Technisch gesehen Hybrid-Flow wird für native Anwendungen empfohlen und IONIC ist nicht etwas, das Sie native Anwendungen erstellen können.

Wenn der empfohlene Fluss für native Apps hybrid ist, aber Sie IONIC verwenden und daher keine native App erstellen, gilt der hybride Fluss weiterhin?

Nochmals, meine Vermutung ist, dass dies der Fall ist, denn da es sich um eine App handelt, die lokal auf dem Computer eines Endbenutzers läuft, ist das Geheimnis dort NICHT sicher.

Das verwirrt mich auch etwas mehr, weil es andere Flüsse gibt, zum Beispiel: credential based fließt, wo man einen Benutzernamen und ein Passwort angeben muss. Das verwirrt mich, weil sich Benutzer in der Regel in einer mobilen App authentifizieren sollen. Hybrid Fluss scheint eine Strömung zu sein, die keinen Benutzernamen und Passwort benötigt ..

ich kommen werde von einem MVC4 owin Hintergrund.

Mein grundlegender Architektur-Plan ist wie dieser

  • Auth Server
  • API
  • IONIC App

Antwort

2

Ionic Apps für mobile sollte als native Anwendungen und den empfohlenen Fluss durch OIDC behandelt werden Standards für Mobile ist die Verwendung von Hybrid + PKCE.

Werfen Sie einen Blick here

Wenn Sie den Client für ionische auf IdentityServer4 überprüfen Sie die Probe here eine Vorstellung davon, wie einrichten möchten. Es macht nichts, Xamarin nur auf den IdentityServer Teil konzentrieren.