Guest User

nginx authenticator setup example

a guest
Jul 31st, 2020
120
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Ezt hívja autentikációkor minden oldalra kiszolgálás előtt, amin be van állítva itt az nginx confban, hogy authentikálni kell
  2. # Globálisan bekapcsoljuk mindenre, hogy a saját autentikációs modulunkat meg kell hívni előtte. Amit védtelenül akarunk hagyni, arra kikapcsoljuk explicit ezze: auth_request off;
  3. auth_request /auth;
  4.  
  5. location = /auth {
  6. internal;
  7. proxy_pass http://127.0.0.1:XXXX/auth;
  8. proxy_pass_request_body off; # no need to send the POST body
  9. proxy_set_header Content-Length "";
  10. proxy_set_header X-Real-IP $remote_addr;
  11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  12. proxy_set_header X-Forwarded-Proto $scheme;
  13. proxy_set_header X-Original-URI $request_uri;
  14. proxy_set_header X-Forwarded-Context "";
  15. proxy_set_header X-Forwarded-Port "443";
  16. proxy_set_header X-Forwarded-Proto "https";
  17. proxy_set_header X-Forwarded-Server "mydomain.com";
  18. proxy_set_header X-Auth "auth";
  19. }
  20. # Ez a login oldal. Ugyanaz a szerver van mögötte, mint az auth mögött.
  21. location /login {
  22. auth_request off;
  23. proxy_pass http://127.0.0.1:XXX/login;
  24. proxy_set_header X-Real-IP $remote_addr;
  25. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  26. proxy_set_header X-Forwarded-Proto $scheme;
  27. proxy_set_header X-Original-URI $request_uri;
  28. proxy_set_header X-Forwarded-Context "";
  29. proxy_set_header X-Forwarded-Port "443";
  30. proxy_set_header X-Forwarded-Proto "https";
  31. proxy_set_header X-Forwarded-Server "mydomain.com";
  32. proxy_set_header X-Auth "login";
  33. }
  34. # If the user is not logged in, redirect them to login URL
  35. location @error401 {
  36. return 302 https://mydomain.com/login/redirect?url=https://$http_host$request_uri;
  37. }
  38.  
  39. location /szolgaltatas1/ {
  40. # a globális auth_request beállítás erre is érvényes, nem kell újra felvenni
  41.  
  42. # Ezeket az alkalmazás speckója szerint kell beállítani, amire annak szüksége van. Ha az alkalmazás képes
  43. # a kontextusát proxy headerekből kiolvasni, akkor külön konfigurációra nincs is szüksége
  44. proxy_set_header X-Real-IP $remote_addr;
  45. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  46. proxy_set_header X-Forwarded-Proto $scheme;
  47. proxy_set_header X-Original-URI $request_uri;
  48. proxy_set_header X-Forwarded-Context "/szolgaltatas1";
  49. proxy_set_header X-Forwarded-Port "443";
  50. proxy_set_header X-Forwarded-Proto "https";
  51. proxy_set_header X-Forwarded-Server "mydomain.com";
  52.  
  53. # Return value parsed from the access file - ezeket a headereket az autentikátor kitölti a response-ban
  54. # És az aloldal már mint a kérés headerjeit kapja meg a bejelentkezett usert és groupot
  55. # Ez az a rész, ami nem akart elsőre működni, végül az autentikátor a kisbetűs "my_user" és "my_groups" headereket állítja be, és így minden működik
  56. # a My-User és My-Groups változók megfelelő kezelése a szolgaltatas1 feladata
  57. auth_request_set $dynamic1 $upstream_http_my_user;
  58. proxy_set_header My-User $dynamic1;
  59. auth_request_set $dynamic2 $upstream_http_my_groups;
  60. proxy_set_header My-Groups $dynamic2;
  61.  
  62. proxy_pass http://127.0.0.1:YYY/;
  63. }
  64.  
RAW Paste Data