Chcę ustawić prywatny serwer pomostowy na heroku za pomocą prostego uwierzytelniania http. Czy to jest możliwe?Czy istnieje sposób ustawienia prostego uwierzytelniania http dla aplikacji na heroku?
Odpowiedz
Absolutnie. Najprostszym rozwiązaniem jest po prostu wstawienie czegoś do kontrolera aplikacji, który używa wbudowanej w Rails podstawowej obsługi uwierzytelniania (zobacz tutaj: http://railscasts.com/episodes/82-http-basic-authentication) i po prostu zapakuj ją w tryb warunkowy dla twojego Rails.env
. Zauważ, że na Heroku, domyślnie RAILS_ENV jest ustawiony na produkcję, ale możesz to zmienić dla swoich nieprodukcyjnych aplikacji przy użyciu heroku config
(http://docs.heroku.com/config-vars).
Można również rozważyć zainstalowanie oprogramowania pośredniego typu Rack w stylu blokowania drogi, ale wystarczy, że wykonam powyższe czynności.
Czystsze sposobem jest po prostu wpaść na kilka linii zasilającej middleware do swojej konfiguracji środowiska staging, pozostawiając sam Logic Controller:
# config/environments/staging.rb
MyApp::Application.configure do
config.middleware.insert_after(::Rack::Lock, "::Rack::Auth::Basic", "Staging") do |u, p|
[u, p] == ['username', 'password']
end
#... other config
end
Ta wskazówka uprzejmości Ole Morten Amundsena. Więcej informacji oraz specyfikacji hasłem Heroku:
To rozwiązanie jest czystsze i ma dla mnie więcej sensu, ponieważ jest agnostyczne. – Juanda
Należy pamiętać, że plik index.html jest obsługiwany bezpośrednio przez serwer WWW, a nie przez Rack-Rails, dlatego adres URL index.html nie będzie chroniony. Wszystkie pozostałe serwery Rails będą chronione. –
Na Rails4, mam "Nie ma takiego middleware do wstawienia po: Rack :: Lock" błąd. Wymień kod Adama do poniżej:
# config/environments/staging.rb
MyApp::Application.configure do
config.middleware.use '::Rack::Auth::Basic' do |u, p|
[u, p] == ['username', 'password']
end
# ...
end
Patrz: http://www.intridea.com/blog/2013/6/4/tips-and-tricks-for-deploying-rails-4-apps-on-heroku
potwierdzone prace na Railsach 3.2 –
W Railsach 5, middleware chce rzeczywistego modułu, a nie ciąg. 'config.middleware.use :: Rack :: Auth :: Basic' – Frexuz
Jest miły Heroku dodatek, który używa Mozilla Persona do uwierzytelniania. Jest bezpłatny dla stron o niskiej głośności (poniżej 10.000 uwierzytelnień miesięcznie):
https://addons.heroku.com/wwwhisper
Bardzo łatwy w instalacji i konfiguracji.
Uzgodnione. Limit 2 użytkowników jest jedynym możliwym problemem. – freemanoid
Tylko USA.Również Mozilla Persona została wycofana. '' '30 listopada 2016 r. Mozilla zamknie usługi persona.org. Persona.org i powiązane domeny zostaną podjęte w trybie offline "" – Webdevotion
Innym sposobem, aby to zrobić za pomocą application_controller.rb:
# app/controllers/application_controller.rb
before_filter :http_basic_auth
def http_basic_auth
if ENV['HTTP_AUTH'] =~ %r{(.+)\:(.+)}
unless authenticate_with_http_basic { |user, password| user == $1 && password == $2 }
request_http_basic_authentication
end
end
end
a następnie trzeba wyeksportować wartości: dla rozwoju:
export HTTP_AUTH=test:test
Dla Heroku:
heroku config:set HTTP_AUTH=test:test
Teraz, gdy okno dialogowe należy wprowadzić dla użytkownika/hasło => test/test.
To jest nadzieja, że okaże się przydatna.
- 1. Czy istnieje sposób ustawienia domyślnej aplikacji Heroku Toolbet?
- 2. W Heroku istnieje sposób na dodanie wielu haków po HTTP?
- 3. Czy istnieje sposób na usunięcie oddziału na heroku?
- 4. Wyłączone metody HTTP na Heroku
- 5. Czy istnieje sposób uruchamiania polecenia na wszystkich dynamach Heroku?
- 6. Czy istnieje maksymalna długość nazwy użytkownika uwierzytelniania HTTP BASIC?
- 7. Czy istnieje sposób ustawienia oddzielnego krótkiego tytułu dla UITabBar?
- 8. Czy istnieje sposób domyślnego ustawienia flagi dla polecenia git?
- 9. Czy istnieje sposób na przyspieszenie funkcji uwierzytelniania w django?
- 10. Czy istnieje sposób ustawienia pionowego paska przewijania dla elementu div?
- 11. Czy istnieje sposób ustawienia Web Worker na niski priorytet?
- 12. Czy istnieje sposób na zdobycie poszczególnych elementów paska narzędziowego heroku?
- 13. Czy istnieje sposób ustawiania i ikona aplikacji dla urządzeń Samsung?
- 14. Czy istnieje odpowiednik Heroku dla platformy ASP.NET?
- 15. Sposób automatycznego wielokrotnego uwierzytelniania plików cookie dla pojedynczej aplikacji
- 16. ssl na niestandardowej domenie dla aplikacji heroku
- 17. Czy istnieje sposób na zlokalizowanie aplikacji na różnych platformach?
- 18. Czy istnieje sposób dołączenia mojej konsoli do aplikacji Heroku, aby zobaczyć aktywność aplikacji/witryny?
- 19. Czy istnieje sposób ustawienia obrazu tła jako obrazu kodowanego base64?
- 20. Wyłączanie SSL dla aplikacji Heroku
- 21. Czy istnieje inny sposób na odzyskanie domyślnego wzorca dla danego ustawienia narodowego?
- 22. Czy istnieje sposób ustawienia priorytetu wątku tła używanego przez SwingWorker?
- 23. Czy istnieje sposób na usunięcie użytkowników do aplikacji Facebook?
- 24. Czy istnieje sposób na użycie PHP WebSocket w Heroku ?, domyślnie jest tylko wsparcie dla innych technologii
- 25. Czy istnieje sposób na odzyskanie bieżącego zużycia pamięci aplikacji C#?
- 26. Wdrożenie prostego kodu serwera do Heroku
- 27. Przyspieszenie wdrażania Heroku dla aplikacji Rails 4
- 28. Czy istnieje sposób ustawienia priorytetu ładowania obrazów w witrynie?
- 29. Czy istnieje sposób ustawienia domyślnego parametru równego innej wartości parametru?
- 30. Pamięć podręczna uwierzytelniania http
Lepiej przechowywać nazwę użytkownika i hasło jako zmienne konfiguracyjne Heroku (http://blog.heroku.com/archives/2009/4/7/config-vars/) i hashe (http: //www.zacharyfox. com/blog/ruby-on-rails/hash-hashing), chociaż uwierzytelnianie powinno wystąpić tylko wtedy, gdy Rails.env == 'production' then. – avalez