2017-08-30 1 views
0

Wir versuchen, Authorization und Authentifizierung in zwei separate Dienste aufzuteilen. Beide verwenden Identity Server 4. Möglicherweise fügen wir eines Tages weitere externe Authentifizierungsanbieter hinzu. Ich glaube, Federated Gateway ist der Begriff (http://docs.identityserver.io/en/release/topics/federation_gateway.html?highlight=Federation)IdentityServer4 Fedarated Gateway-Ressourcenbesitzer-Setup

Meine bisherigen Untersuchungen zeigen, dass wir in der Lage sind, die Autorisierung als externe Anbieter einzurichten und [LocalLoginEnabled] auf false zu setzen. Dies funktioniert gut für Web-Apps, da es entlang der traditionellen Flüsse umleitet. Unsere Anforderung ist, dass sowohl webbasierte als auch Client-Apps (Windows und Mobile) unsere Lösung aufrufen. Dies würde implizite oder Ressourcenbesitzer (Passwort) benötigt.

Suchen Sie nach Leitlinien für den besten Weg, dies einzurichten. Ich bin versucht, eine benutzerdefinierte Endpunkt-API zu schreiben, um die Authentifizierung an die Authentifizierungsinstanz weiterzuleiten.

FRAGE:

Wie kann ich "Passwort Flow" zwischen zwei ID4 Instanzen (Authorization + Authentifizierung) erreichen?

Vielen Dank im Voraus!

Antwort

0

Obwohl meine ursprüngliche Antwort funktionierte, war es nicht der beste Weg, um mein Endergebnis zu erreichen. Anstatt einen neuen Endpunkt zu erstellen, bin ich in der Lage, meine eigene Handhabung von Passwort-Grants durch Erweiterung des IResourceOwnerPasswordValidator zu injizieren. Ich kann dann einen einzigen Endpunkt für alle Autorisierungen haben. Diese Lösung ist "natürlicher" und fügt sich nahtlos in die beabsichtigte Architektur ein.

Die IResourceOwnerValidator Schnittstelle implementiert nur eine Funktion ...

öffentliche Aufgabe ValidateAsync (ResourceOwnerPasswordValidationContext Kontext)

Eine wesentlich elegantere Lösung.

0

Nach viel Forschung und wenig Anleitung, entschied ich mich, einen Sprung zu machen und habe nur einen neuen API-Endpunkt erstellt, der nur für Ressourcenbesitzer/Passwort-Grant-Typen verwendet wird. Diese API validiert einfach die notwendigen Informationen, war Grant-Type, Secret, User/Pwd usw. ... und leitet sie dann an die Authentication-Instanz weiter. Es mag mehr "elegante" Wege geben, dies zu tun, aber dieses scheint zu funktionieren.

Ich hoffe, das könnte jemandem helfen.

Verwandte Themen