webentwicklung-frage-antwort-db.com.de

Was ist der Signaturnachweis in IdentityServer4?

Wir sind dabei, Identity Server 4 mit unserer .NET Core-Web-App zu implementieren.

Ich habe die Identity Server-Dokumentation durchgesehen. Bei der Konfiguration des Identity Servers (über DI) gibt es folgende Zeile:

.AddTemporarySigningCredential

Ich versuche zu verstehen, was diese Anmeldeinformation ist, konnte es aber nicht herausfinden. Daher weiß ich nicht, ob es in Ordnung ist, die eingebaute temporäre Funktion zu verwenden, oder ob ich eine andere bereitstellen sollte.

Meine Frage ist, was ist ein Signaturnachweis und wie soll ich ihn verwenden?

In der Identity Server-Dokumentation ist dies die Definition:

Fügt einen Signaturschlüsseldienst hinzu, der den verschiedenen Tokenerstellungs-/Validierungsdiensten das angegebene Schlüsselmaterial bereitstellt. Sie können entweder ein X509Certificate2, ein SigningCredential oder einen Verweis auf ein Zertifikat aus dem Zertifikatspeicher übergeben.

Also scheint es wichtig zu sein :)

14
Shaul Zuarets

Der Authorization Server signiert Token mit einem Schlüssel. Ressourcenserver sollten die Integrität des Tokens mit einem Schlüssel überprüfen. Zusammen bilden sie ein asymmetrisches (z. B. öffentliches/privates) Schlüsselpaar. Standardmäßig veröffentlicht IdentityServer den öffentlichen Schlüssel zum Überprüfen von Token auf dem Endpunkt /.well-known/openid-configuration.

In Entwicklungsszenarien möchten Sie in der Regel den Aufwand für die ordnungsgemäße Verwaltung von Geheimnissen wie den genannten Schlüsseln überspringen (was wirklich in der Produktion wichtig ist!). Für diese Entwicklungsszenarien haben Sie die Möglichkeit, Ad-hoc-Lösungen wie AddTemporarySigningCredential zu verwenden, die für . NET Core 1.x verwendet wurden.

Mit . NET Core 2.x wird dies ändern und Sie benötigen die AddDeveloperSigningCredential() -Erweiterungsmethode.

Das beantwortet die Frage von was es ist. Hinweise zur Verwendung: Sie rufen einfach die von Ihrer .NET Core-Version abhängige Methode in der ConfigureServices(...) -Methode der Startup -Klasse Ihrer Anwendung auf.

Abgesehen davon müssen Sie nichts Besonderes tun, außer natürlich darauf achten, dass Sie in der Produktion ein geeignetes Schlüsselpaar verwenden.

Siehe auch die Dokumentation zu Kryptografie, Schlüssel und HTTPS und das Bit zum Konfigurieren von Diensten für Schlüssel . Aus dem letztgenannten Dokument ist hier eine relevante Alternative für Produktionsfälle:

  • AddSigningCredential

    Fügt einen Signaturschlüsseldienst hinzu, der den verschiedenen Tokenerstellungs-/Validierungsdiensten das angegebene Schlüsselmaterial bereitstellt. Sie können entweder einen X509Certificate2, Einen SigningCredential oder einen Verweis auf ein Zertifikat aus dem Zertifikatspeicher übergeben.

25
Jeroen