Beste Möglichkeit Connection String extern abzugreifen?

3 Antworten

Wie wäre es mit einer Umgebungsvariable? Mit

Environment.GetEnvironmentVariable("VariableName")

kannst du in C# darauf zugreifen.

Ansonsten gibt es speziell für Entwicklungsarbeiten solche Tools wie den Secret Manager in .NET Core. Du kannst es  über die 

Configuration

-API abrufen.

Lagere den Anwendungsteil, der mit der Datenbank kommuniziert, in eine eigene Anwendung aus und hoste sie auf einem zentralen Server. Die Clientanwendungen dürfen sich mit dem Server verbinden, aber die Verbindungsdaten selbst erhalten sie zu keinem Zeitpunkt. Die Kommunikation kannst du via OAuth, JWT, u.ä. Methoden absichern (Stichworte: REST-API, Authentication, Authorization).

Auf dem Server selbst kannst du die Verbindungsdaten in einer Konfigurationsdatei o.ä. speichern. Außerhalb vom publizierten Bereich (z.B. Rootverzeichnis bei einer Webanwendung).

Rico06 hat recht, schau dir die Configuration API an, es gibt auch Lösungen für secret management, ich denke einfach eine Konfigurationsdatei wird schon okay sein.

Gibt es bei deinem Projekt noch keine Config wie zb die Web.config?

Was mir zu denken gibt ist, dass du behauptest das Projekt ist öffentlich und läuft auf mehreren PCs. Das sollte natürlich sauber hinter einer API und einem internen Netz liegen und auf keinen Fall von Clients die außerhalb deiner Kontrolle sind direkt auf die Datenbank zugegriffen werde.

Environment Variablen würde ich nur verwenden wenn du Container oder ähnliches nutzt, in dem Fall informiere dich über best practices bei der gewählten deployment Lösung.

Kommt extrem auf deinen Stack und Anforderungen an, denke ein zentrales Secret Management und so was wie hashicorp vault ist völlig out of scope aber erwähnen könnte man es ja mal.