Hallo zusammen,
ich habe auf GitHub ein Beispiel zur Verfügung gestellt, wie der IdentityServer4 im Rahmen einer "Plattform" genutzt werden kann.
Viele Beispiele sind nur mit JavaScript Clients (zB React oder Angular); hier war das Ziel alles mit .NET Elementen (ASP.NET Core MVC; ASP.NET Core WebAPI, .NET Core Console) umzusetzen und ein durchgängiges Beispiel zu bieten.
Das ganze ist völlig frei auf GitHub zu nutzen.
Ich hoffe es hilft evtl. dem ein oder anderen den Einstieg einfacher zu schaffen.
https://github.com/BenjaminAbt/Samples.AspNetCore-IdentityServer4
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Da nun der IdentityServer4 als stable 2.0 release raus kam, hab ich entsprechend meine Bits auch aktualisiert.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ich würde gerne den IdentityServer4 nutzen aber alle anderen WebService auf dem klassischen .net belassen. Gibt es da Probleme oder besser gesagt gibt es irgendwelche stolpersteine die dafür sprechen in dem Umfeld IdentityServer3 zu nutzen?
Wenn Du das Model-Projekt durch den .NET Standard in Deinen anderen .NET Framework Projekten nutzen kannst, dann steht das nichts im Wege
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi,
selbst wenn nicht - so wie ich das verstehe soll ihr denn eine separate IdentityServer4-Anwendung erstellt werden, deren Tokens widerum im normalen .NET-Stack verwendet werden sollen.
Da das ganze ja auf OAth und/oder JWT herausläuft als Schnittstelle - was .NET ja durchaus unterstützt - sehe ich da kein Problem.
LG
Prinzipiell ist es eine völlig getrennte Anwendung, korrekt.
Sprich eine .NET Core Anwendung kann problemlos mit einer .NET Framework, einer NodeJS oder einer Delphi-Anwendung den Token-Handshake austauschen.
OAuth und OpenID sind völlig unabhängige Technologien.
In meinem Beispiel lass ich jedoch den Token durch IdentityServer4.AccessTokenValidation validieren, da sein NuGet Pakete auf Basis .NET Standard ist.
Also wenn man das 1:1 so machen will, dann muss man eine .NET Framework Version haben oder nutzen, die .NET Standard 2.0 implementiert.
Ansonsten muss man einen anderen Weg finden, um den Token validieren zu können; gibt es aber sicher.
Coffeebean hat seine GitHub Samples aber gestern IIRC von IdentityServer3 auf IdentityServer4 migriert.
Wenn also er das schafft, dann schaffen das andere auch 😃
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Sorry da hätte ich mich wohl genauer ausdrücken müssen. Aber ihr habt ja schon richtig interpoliert das der IdentiyServer4 als eigenständige Instanz laufen soll und die Authenzifizierung über OpenIdConnect/OAuth2 laufen. Klar kann man immer alles irgendwie so umbiegen das es am ende doch funktioniert. Ich wollte auch nur abklären ob der Aufwand vllt viel zu groß ist und die Benefits gegenüber einfach den IdentityServer3 zu verwenden unterliegen.
Um was geht es Dir, um die Funktion oder die Implementierung?
Der IdentityServer4 hat OAuth oder OpenID nicht neu erfunden; an der Funktionalität des Handshakes ändert sich nichts.
Es geht vor allem darum, wie sich der IdentityServer in die ASP.NET Welt integriert; und der IdentityServer3 läuft in der .NET Core Welt so eben nicht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code