Ruby on Rails
Almacenamiento seguro de claves de autenticación
Buscar..
Introducción
Muchas API de terceros requieren una clave, lo que les permite evitar el abuso. Si te emiten una clave, es muy importante que no la ingreses en un repositorio público, ya que esto permitirá que otros roben tu clave.
Almacenando claves de autentificación con Figaro
Agregue gem 'figaro'
a su Gemfile y ejecute bundle install
. Luego ejecute bundle exec figaro install
; esto creará config / application.yml y lo agregará a su archivo .gitignore, evitando que se agregue al control de versiones.
Puede almacenar sus claves en application.yml en este formato:
SECRET_NAME: secret_value
donde SECRET_NAME y secret_value son el nombre y el valor de su clave API.
También debe nombrar estos secretos en config / secrets.yml. Puedes tener diferentes secretos en cada entorno. El archivo debería verse así:
development:
secret_name: <%= ENV["SECRET_NAME"] %>
test:
secret_name: <%= ENV["SECRET_NAME"] %>
production:
secret_name: <%= ENV["SECRET_NAME"] %>
La forma en que utiliza estas claves varía, pero digamos, por ejemplo, que algunos some_component
en el entorno de desarrollo necesitan acceso a secret_name
. En config / environment / development.rb, pondrías:
Rails.application.configure do
config.some_component.configuration_hash = {
:secret => Rails.application.secrets.secret_name
}
end
Por último, supongamos que desea crear un entorno de producción en Heroku. Este comando cargará los valores en config / environment / production.rb a Heroku:
$ figaro heroku:set -e production