Ruby on Rails
Sichere Speicherung von Authentifizierungsschlüsseln
Suche…
Einführung
Viele APIs von Drittanbietern erfordern einen Schlüssel, um Missbrauch zu verhindern. Wenn Sie einen Schlüssel ausstellen, ist es sehr wichtig, dass Sie den Schlüssel nicht in ein öffentliches Repository einbinden, da andere Benutzer Ihren Schlüssel stehlen können.
Authentifizierungsschlüssel mit Figaro speichern
Füge Gem gem 'figaro'
zu deinem Gemfile hinzu und führe das bundle install
. Führen Sie dann das bundle exec figaro install
. Dadurch wird config / application.yml erstellt und zu Ihrer .gitignore-Datei hinzugefügt, sodass es nicht zur Versionskontrolle hinzugefügt wird.
Sie können Ihre Schlüssel in application.yml in diesem Format speichern:
SECRET_NAME: secret_value
Dabei sind SECRET_NAME und secret_value der Name und der Wert Ihres API-Schlüssels.
Sie müssen diese Geheimnisse auch in config / secrets.yml benennen. Sie können in jeder Umgebung unterschiedliche Geheimnisse haben. Die Datei sollte so aussehen:
development:
secret_name: <%= ENV["SECRET_NAME"] %>
test:
secret_name: <%= ENV["SECRET_NAME"] %>
production:
secret_name: <%= ENV["SECRET_NAME"] %>
Die Art und Weise, wie Sie diese Schlüssel verwenden, ist unterschiedlich. some_component
in der Entwicklungsumgebung benötigt Zugriff auf secret_name
. In config /virones / development.rb würden Sie Folgendes eingeben:
Rails.application.configure do
config.some_component.configuration_hash = {
:secret => Rails.application.secrets.secret_name
}
end
Angenommen, Sie möchten eine Produktionsumgebung auf Heroku einrichten. Dieser Befehl lädt die Werte in config /virones / production.rb in Heroku hoch:
$ figaro heroku:set -e production