4

Gegeben:IdentityServer Authentifizierung AspCore und Angular-Client bestpractice

  • Asp MVC-Core-Client
  • JavaScript-Client von ASP MVC-Core gehostet
  • Asp Web Api

Alle mit authentifizieren IdentityServer

Problem

Für einen normalen Benutzer ist die Auth mit ASP-Kern und dem OIDC-Client getan. Ich benutze das Zugriffstoken in asp-Kern, um auf die API zuzugreifen.

Jetzt möchte eine JavaScript-Funktion auf eine autorisierte API zugreifen und benötigt dazu das access_token.

Was ist die beste Praxis in Javascript zu haben Ich sehe vor allem zwei Option

1.) ich eine "stille" Auth in Javascript mit einem OIDC Client machen. (Fühlt doppelte Arbeit)

2.) Ich speichere die access_token in einem Cookie, wo Javascript es abholen konnte (Pot. Ungesichert)

3.) (Man fühlt sich wie ein Geruch) machen einen autorisierten Endpunkt wie/me/Token Rückgabe des access_token

Was ist der beabsichtigte Weg in diesem Szenario?

+0

Ich habe die gleiche Frage. Meine MVC-Anwendung verwendet einen Angular-Client. Ich mag auch jetzt, was die beste Praxis dafür ist. A.t.m Ich habe Option 1 gemacht. Aber das ist in der Tat doppelte Arbeit. – ErazerBrecht

+0

@ErazerBrecht, Ich versuche, "stille" Auth zu machen, aber es scheint, dass ich mich zuerst anmelden und dann das Token erneuern muss, also melde ich mich zweimal in MVC und auf der Clientseite an. Können Sie mir zeigen, wie man Option 1 implementiert? –

Antwort

0

Sie könnten in einer MVC-Ansicht ein Skript-Tag rendern, das Ihre AJAX-Header konfiguriert, sodass Sie den Autorisierungsheader mit dem access_token hinzufügen können, das Sie in MVC haben.

Tokens sind sicher, da die Facts signiert sind, so dass Sie sie ändern können, ohne den zu unterzeichnenden Schlüssel zu kennen und zeitlich begrenzt. Auch Token müssen überprüft werden, bevor Sie sie verwenden sollten.