API Keys in Programm ablegen? Welche Stelle?

beta20

Top Contributor
Hallo zusammen,

ich habe mittlerweile mehrere API Keys, die ich in meinem Programm nutze, die ich derzeit in den verschiedenen Klassen als Konstante habe.
Mittlerweile wird das aber nicht mehr so ganz durchsichtig. Ebenfalls möchte ich die Flexibilität haben, den Key schnell ändern zu können ohne das Programm neu kompilieren zu müssen und erneut zu deployen (in der Entwicklungsumgebung geht das ja noch, aber nicht auf Produktion...)

Gerne möchte ich zwischen der Entwicklungsumgebung und Produktionumgebung unterscheiden.

Daher meine Frage, wo lege ich die Keys am Besten ab? Auch im Hinblick auf Security...
Erstelle ich in der Datenbank eine Tabelle?
- ID
- Username
- Passwort
- Token

Oder was ist die beste Lösung dafür?
 

httpdigest

Top Contributor
Kommt jetzt drauf an, wie deine Deployment-Umgebungen genau aussehen.
Bei AWS z.B. hat es sich bewährt, solche Keys zum Beispiel als Secret in den Parameter Store des Systems Managers zu schreiben.
Wenn du kein Cloud-Deployment hast, würde es sich anbieten, die Keys auf den Maschinen selbst einmal zu hinterlegen, da sie ja - wie du sagtest - umgebungsspezifisch sind.
Dort kannst du sie dann per SSH auch einfach ändern und musst sie nicht in deiner Anwendung vorhalten bzw. einen Umgebungs-Switch in deiner Anwendung benutzen, um pro Umgebung die richtigen Keys zu laden.
 

Dukel

Top Contributor
Ist das nicht eine Aufgabe für einen Vault?
 

beta20

Top Contributor
Kommt jetzt drauf an, wie deine Deployment-Umgebungen genau aussehen.
Bei AWS z.B. hat es sich bewährt, solche Keys zum Beispiel als Secret in den Parameter Store des Systems Managers zu schreiben.
Wenn du kein Cloud-Deployment hast, würde es sich anbieten, die Keys auf den Maschinen selbst einmal zu hinterlegen, da sie ja - wie du sagtest - umgebungsspezifisch sind.
Dort kannst du sie dann per SSH auch einfach ändern und musst sie nicht in deiner Anwendung vorhalten bzw. einen Umgebungs-Switch in deiner Anwendung benutzen, um pro Umgebung die richtigen Keys zu laden.

nein, ich verwende kein AWS...
Ich habe kein Cloud Deployment...
Ich habe zB 3 WildFly Instanzen, die dann als Master / Slave laufen...
 

Ähnliche Java Themen

Neue Themen


Oben