Ruby on Rails
Stockage sécurisé des clés d'authentification
Recherche…
Introduction
De nombreuses API tierces requièrent une clé leur permettant de prévenir les abus. S'ils vous délivrent une clé, il est très important que vous ne commettiez pas la clé dans un référentiel public, car cela permettra aux autres de voler votre clé.
Stockage des clés d'authentification avec Figaro
Ajoutez gem 'figaro'
à votre Gemfile et exécutez l' bundle install
. Puis exécutez bundle exec figaro install
; Cela va créer config / application.yml et l'ajouter à votre fichier .gitignore, l'empêchant d'être ajouté au contrôle de version.
Vous pouvez stocker vos clés dans application.yml dans ce format:
SECRET_NAME: secret_value
où SECRET_NAME et secret_value sont le nom et la valeur de votre clé API.
Vous devez également nommer ces secrets dans config / secrets.yml. Vous pouvez avoir différents secrets dans chaque environnement. Le fichier devrait ressembler à ceci:
development:
secret_name: <%= ENV["SECRET_NAME"] %>
test:
secret_name: <%= ENV["SECRET_NAME"] %>
production:
secret_name: <%= ENV["SECRET_NAME"] %>
La manière dont vous utilisez ces clés varie, mais par exemple, some_component
dans l'environnement de développement nécessite l'accès à secret_name
. Dans config / environnements / development.rb, vous mettriez:
Rails.application.configure do
config.some_component.configuration_hash = {
:secret => Rails.application.secrets.secret_name
}
end
Enfin, supposons que vous souhaitiez créer un environnement de production sur Heroku. Cette commande téléchargera les valeurs dans config / environnements / production.rb vers Heroku:
$ figaro heroku:set -e production