Ruby on Rails
Bezpieczne przechowywanie kluczy uwierzytelniających
Szukaj…
Wprowadzenie
Wiele interfejsów API innych firm wymaga klucza, który pozwala im zapobiegać nadużyciom. Jeśli wydadzą ci klucz, bardzo ważne jest, aby nie przekazać klucza do publicznego repozytorium, ponieważ pozwoli to innym osobom ukraść ten klucz.
Przechowywanie kluczy uwierzytelniających za pomocą Figaro
Dodaj gem 'figaro'
do Gemfile i uruchom bundle install
. Następnie uruchom bundle exec figaro install
; spowoduje to utworzenie config / application.yml i doda go do pliku .gitignore, zapobiegając dodaniu go do kontroli wersji.
Możesz przechowywać klucze w application.yml w tym formacie:
SECRET_NAME: secret_value
gdzie SECRET_NAME i wartość tajna to nazwa i wartość klucza API.
Musisz także nazwać te sekrety w config / secrets.yml. Możesz mieć różne tajemnice w każdym środowisku. Plik powinien wyglądać następująco:
development:
secret_name: <%= ENV["SECRET_NAME"] %>
test:
secret_name: <%= ENV["SECRET_NAME"] %>
production:
secret_name: <%= ENV["SECRET_NAME"] %>
Sposób korzystania z tych kluczy jest różny, ale powiedzmy na przykład, że some_component
w środowisku programistycznym potrzebuje dostępu do secret_name
. W config / environment / development.rb umieściłbyś:
Rails.application.configure do
config.some_component.configuration_hash = {
:secret => Rails.application.secrets.secret_name
}
end
Na koniec załóżmy, że chcesz uruchomić środowisko produkcyjne w Heroku. To polecenie prześle wartości z config / environment / production.rb do Heroku:
$ figaro heroku:set -e production