Secret-Resolver Credential Manager
Beschreibung
Damit sensible Daten wie z. B. Passwörter nicht direkt in Konfigurationen gespeichert werden müssen, können diese über einen Secret-Resolver aus einem externen Credential Store bezogen werden.
Der Secret Resolver prüft Konfigurationswerte darauf, ob sie einen Verweis auf ein extern gespeichertes Secret enthalten, und löst diesen bei Bedarf auf.
Ein Verweis wird durch das Präfix secret:// gekennzeichnet. In diesem Fall wird der nachfolgende Schlüssel als Identifier verwendet, um das entsprechende Credential vom Typ Generic Credential aus dem Windows Credential Manager zu laden.
Für den Wert secret://mysecret in einer Konfiguration wird das Feld Password des Credentials mit der Internet or network address mysecret aus dem Windows Credential Manager zurückgegeben.
Aus dem Credential Manager wird ausschliesslich das Attribut Password gelesen. Der Benutzername wird nicht berücksichtigt.
Für den Zugriff auf den Windows Credential Manager wird die Library Meziantou.Framework.Win32.CredentialManager verwendet.
In Provider-Konfigurationen wird der Secret Resolver automatisch angewendet.
In globalen Variablen wird er bewusst nicht automatisch ausgeführt, da diese in der Anwendung angezeigt werden können und so sensible Daten unbeabsichtigt offengelegt würden. Bei Bedarf kann der Secret Resolver jedoch manuell verwendet werden. Dazu kann er per Dependency Injection über das Interface ISecretResolver eingebunden und ein Wert explizit über ResolveAsync(value) aufgelöst werden.
Bausteine
Es werden keine Standard-Bausteine verwendet, damit sichergestellt ist, dass kein Secret geloggt wird.
Tabellen
Es werden keine Daten gespeichert.
Configs
Es sind keine Configs möglich.
Voraussetzungen
Der Credential Manager existiert nur auf dem Betriebssystem Windows.
Beispiel
Folgende Abbildung zeigt, wo im Credential Manager ein Generic Credential erfasst wird:
