So definieren Sie die Microsoft Live OAuth-Weiterleitungs-URL für die lokale Webanwendung?

8

Mit OAuth haben die ClientID und redirect_url eine starke Verbindung: Sie benötigen für jede redirect_url eine separate ClientID. Dies ist ein Problem für Vor-Ort-Anwendungen, die mehrere Bereitstellungen in mehreren Domänen enthalten.

Gibt es eine Möglichkeit, OAuth-Authentifizierung von einer unbekannten Domäne zu implementieren? Die einzige Alternative, die ich mir vorstellen kann, ist ein dedizierter "Authentifizierungsserver" in einer festen Domäne, der als redirect_url verwendet werden kann und dann eine neue, uneingeschränkte Weiterleitung an die Kundendomäne durchführen kann.

Desktop-Anwendungen umgehen dies, indem sie eine Dummy-redirect_url bereitstellen und dann das Live-Authentifizierungsfenster in einem dedizierten Web-Frame hosten, mit dem sie die Redirect-Anfragen abhören können. Dadurch können sie den Autorisierungscode aus der Weiterleitungs-URL lesen, auch wenn die URL selbst nicht gültig ist. Ich glaube, das ist in Webbrowsern aufgrund von domainübergreifenden Einschränkungen nicht möglich.

Im Wesentlichen wird OAuth benötigt, um die SkyDrive-Veröffentlichung in einer On-Premise-Webanwendung zu unterstützen.

    
Mikko Rantanen 30.01.2013, 12:23
quelle

1 Antwort

0

RFC 6749 (OAuth 2.0) gibt an, dass der Authorization Server die redirect_uri benötigt vorregistriert für öffentliche Clients , aber nicht für Vertrauliche Clients , solange sie die Implicit Grant nicht verwenden. Je nachdem, ob Sie Ihre Client-Anmeldeinformationen bei der Installation angeben oder der Systemadministrator ihre eigenen Client-Anmeldeinformationen eingibt, wird Ihr System in verschiedenen Kategorien enden. Es wird jedoch vom RFC empfohlen, immer eine vorregistrierte redirect_uri zu verlangen, so dass Sie höchstwahrscheinlich das gleiche Problem mit jeder Kategorisierung haben würden.

Ich würde sagen, dass die einzige Lösung, die für Sie in Frage kommt, ist, dass der Systemadministrator des Systems bei der Konfiguration des Systems seine eigenen Client-Anmeldeinformationen angeben muss. Wenn sie ihre eigenen Client Credentials angeben, müssen sie auch ihre eigene redirect_uri beim Authorization Server registrieren, und das Problem wird dadurch gelöst.

Sie sollten nicht einen zwischengeschalteten Authentifizierungsserver implementieren, da dies die Sicherheit Ihrer Anwendung erhöhen würde. Wenn ein Benutzer eine Installation Ihres Systems autorisiert, autorisiert er automatisch alle Installationen, die wiederum ihre persönlichen Daten anderen als den von ihnen autorisierten Organisationen zur Verfügung stellen können.

    
m__ 05.01.2016 22:11
quelle