2

Ich habe eine Web-Ui-Anwendung in Angular 4 hinter IIS mit SSL und eins-zu-eins-Client-Zertifikatszuordnung geschrieben geschrieben.Wie zu sichern. NET-Core-API-Projekt

Diese SSL-Webanwendung ruft ein .net-Core-API-Projekt auf, das ebenfalls SignalR verwendet, um seine Daten in die ui-App zu übertragen.

Diese laufen zwei verschiedene URLs unter der gleichen Domäne ab.

https://ui.mysite.com 
https://api.mysite.com 

Beide Anwendungen sind für die Öffentlichkeit NICHT verfügbar und erfordern eine gute Sicherheit.

Ich bin zufrieden mit der Sperrung der UI-Site über einzelne Zertifikate. Das SSL-Zertifikat erfolgt über eine vertrauenswürdige Zertifizierungsstelle und erstellt dann selbstsignierte Zertifikate für die Client-Authentifizierung.

Was würden Sie vorschlagen, um die API-Site an die Außenwelt zu sperren, so dass nur die ui-Site (und interne Entwickler innerhalb unseres Netzwerks für Debugging-Zwecke, also JSON-Antworten) zugreifen können?

Ich habe Leute oauth2/jwt erwähnt? Irgendwelche Beispiele?

Die einzigen Personen, die Zugriff benötigen, sind Personen in unserem Unternehmen, aber auf Geräten, die möglicherweise nicht mit unserem internen Netzwerk verbunden sind, z. B. Mobiltelefone oder Laptops auf Reisen.

Antwort

0

Sie können definitiv JWT verwenden, um die Web-API zu schützen.

Hier ist ein guter Ausgangspunkt: https://dev.to/samueleresca/developing-token-authentication-using-aspnet-core

Im Grunde, wie diese Umsetzung funktioniert, ist jeder Controller oder Aktion, die das [Authorize] Attribut hat, erfordert eine Zugriffstoken der durch Authorization-Header der Anforderung gesendet werden sollte. Dieses Zugriffstoken erhalten Sie, indem Sie eine POST-Anfrage mit dem Benutzernamen und dem Passwort an /api/token senden. Jeder Schlüssel hat eine festgelegte Ablaufzeit, die Sie im Code ändern können.

Dies ist ein einfaches JWT, aber Sie können es auch mit Behauptungen wie Rollen erweitern.