2017-09-03 2 views
0

Ich bin ein Neuling für .Net Core WebAPI-Authentifizierung. Ich habe herausgefunden, dass OpenIddict eine der einfach zu bedienenden Authentifizierungsdienste ist, aber bevor ich es benutze, habe ich festgestellt, dass es in GitHub Samples mit unterschiedlichen Authentifizierungsflüssen gibt. Ich konnte keine Dokumentation zu diesen Authentifizierungsflüssen finden, daher kommen die folgenden Fragen in den Sinn. Schätzen Sie, wenn jemand Einblicke in das Gebiet geben kann. GitHub url: https://github.com/openiddict/openiddict-coreWarum gibt es viele Authentifizierungsflüsse in OpenIddict?

  1. Warum gibt es verschiedene Strömungen .. welche zu benutzen? Ich nehme an, jeder Fluss passt zu anderen Art der Anwendung, wenn ja,

    a. Was sind die Vor- und Nachteile jedes Flusses?

    b. Gibt es Best Practices oder Richtlinien, die helfen, die richtige Option (Authentifizierungsablauf) zu bestimmen, die für diese bestimmte Anwendung passt?

Vielen Dank im Voraus.

Antwort

2

Warum gibt es verschiedene Flüsse .. welche zu verwenden?

OpenIddict ist ein OAuth2/OpenID Connect-Server. Als solches implementiert es alle klassischen Kernflüsse, die durch diese beiden Spezifikationen definiert sind.

Wie Sie herausgefunden, jeder Fluss hat einen anderen Anwendungsfall:

  • Der Client-Anmeldeinformationen gewähren wird verwendet, wenn eine Client-Anwendung ohne Kopf seine eigenen Ressourcen benötigt zuzugreifen. In diesen Ablauf ist kein Benutzer involviert, was im Grunde ein Server-zu-Server-Szenario ist.

  • Die Ressourceneigentümer Kennwortdaten gewähren ist die einfachste OAuth2 Flow: die Client-Anwendung sendet eine Tokenanforderung mit dem Benutzernamen und dem Passwort des Benutzers und es wird ein Zugriffstoken zurück. Dieser Fluss wird manchmal als "Legacy" -Fluss angesehen und darf nicht von Drittanbieter-Apps verwendet werden, die Sie nicht selbst verwalten (da dies der einzige Fluss ist, in dem der Client die Benutzeranmeldeinformationen kennt).

  • Der Code Fluss ist der komplexeste OAuth2/OpenID Connect Fluss, Umleitungen verwendet und ermöglicht Zustimmung Seiten schaffen, wo kann der Benutzer entscheiden, ob er mit dem, ohne jemals zu teilen sein Beglaubigungs einen Zugriff auf die Client-Anwendung zu gewähren App

  • Der implizite Fluss ist ein vereinfachter Code-Flow für Browser-basierte Anwendungen.

Weitere Informationen finden Sie in diesem Blogpost: http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-choosing-the-right-flows/.

Verwandte Themen