Nginx + Google-рдкреНрд░рдорд╛рдгрдХ рдпрд╛ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ ...

рдЧреВрдЧрд▓ рд╡рди-рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ nginx рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдгред

рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдореБрдЭреЗ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрд╛рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдЬреНрдЮрд╛рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред

рдЙрдиреНрд╣реЛрдВрдиреЗ рдиреЗрдЧреНрдиреЗрдХреНрд╕ (http_auth_request_module) + рдЕрдкрд╛рдЪреЗ (Google-рдкреНрд░рдорд╛рдгрдХ-рдЕрдкрд╛рдЪреЗ-рдореЙрдбреНрдпреВрд▓) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ред

рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдХрдИ рджрд┐рдиреЛрдВ рддрдХ рдЙрдард╛рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХреЗ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕рдордЭ рдирд╣реАрдВ рд╕рдХрд╛ред рдЖрд╕рдкрд╛рд╕ рдЭрд╛рдБрдХрдиреЗ рдХрд╛ рднреА рдкрддрд╛ рдЪрд▓рд╛ред





рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЬрд╛рдБрдЪ nginx рдкрд░ рд╣реА рдирд╣реАрдВ рдЕрдкрд┐рддреБ рдЕрдкрд╛рдЪреЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреА рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рдЧрдиреЗрдХреНрд╕_рд░реЗрдХреНрд╡реЗрд╕реНрдЯ рд╕рдмрдХреНрд╡реЗрд░реА рдХреЛ рдЕрдкрд╛рдЪреЗ 'рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░' рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред рдпрджрд┐ рдПрдЪрдЯреАрдЯреАрдкреА рдПрдЪрдЯреАрдПрд╕ 200 рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдЦреБрд╢реА рд╕реЗ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? 'рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░' рдкрд░ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ (рдлрд╝рд╛рдЗрд▓ рдирд╛рдо - рд▓реЙрдЧрд┐рди) рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реБрд░рдХреНрд╖рд┐рдд рдХреБрдВрдЬреА рд╣реЛрддреА рд╣реИред
рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╕реБрд░рдХреНрд╖рд┐рдд рдХреБрдВрдЬреА рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рд░реНрд╡рд░ рдХреА рддрд░рдл рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд░рдл рд╕реЗ, рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ, рд╣рд░ рдорд┐рдирдЯ рдПрдХ-рд╕рдордп рдкрд╛рд╕рд╡рд░реНрдб рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред

рдкрд╛рд╕рд╡рд░реНрдб рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

Android рдХреЗ рд▓рд┐рдП Google рдкреНрд░рдорд╛рдгрдХ ред
IOS рдХреЗ рд▓рд┐рдП Google рдкреНрд░рдорд╛рдгрдХ ред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдлреЛрди рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рд╣реИ:
рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП Google рдкреНрд░рдорд╛рдгрдХ ред
рдЬрд╛рд╡рд╛ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рднреА рд╣реИ ...

рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдЕрдм рд╕рд░реНрд╡рд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпрд╛ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Nginx рдХреЗ рддрд╣рдд рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ Nginx рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рд░рд╛рдЬреНрдп рдорд╛рд╢реАрди рдФрд░ рдЗрддрдиреЗ рдкрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛ ... :)

рд▓реЗрдХрд┐рди рдЕрдкрд╛рдЪреЗ рдХреЗ рдиреАрдЪреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ !!! рдЬрд┐рд╕реЗ Google-рдкреНрд░рдорд╛рдгрдХ-рдЕрдкрд╛рдЪреЗ-рдореЙрдбреНрдпреВрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╕реЗрдВрдЯреНрд╕ 6 рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓реА рднреА рд╣реИрдВ - рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИрдВ рдФрд░ рд░реЗрдкреЛ рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреБрдЫ рдФрд░ рд╣реИред рдореИрдВрдиреЗ рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рд╛рде рдЪрд╛рд░реЛрдВ рдУрд░ рдЦреЗрд▓рд╛ рдФрд░ рдлрд┐рд░ рд╕реНрд░реЛрдд рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ред

рддреЛ, рдЕрдкрд╛рдЪреЗ + рдЧреВрдЧрд▓-рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди-рдЕрдкрд╛рдЪреЗ-рдореЙрдбреНрдпреВрд▓ рдкрд░, рд╣рдо рдПрдХ "рдСрдерд░рд╛рдЗрдЬреЗрд╢рди рд╕рд░реНрд╡рд░" рдмрдирд╛рддреЗ рд╣реИрдВ (рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП 2 рд╕рд░реНрд╡рд░ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ Nginx_y рдХреЛ рдЙрди рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рд╣рдо Apache2 рд▓реЗрддреЗ рд╣реИрдВ, Google-Authator-Apache-рдореЙрдбреНрдпреВрд▓ рдмрд╛рдЗрдирд░реА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрдХрдЯреНрдард╛ рдпрд╛ рд▓реЗрддреЗ рд╣реИрдВред

рдФрд░ рдпрд╣ рд╡рд┐рдиреНрдпрд╛рд╕ рд▓рд┐рдЦреЗрдВ:

Loadmodule authn_google_module modules/mod_authn_google.so Listen *:8888 <Location ~ "/(|_auth/)" > #        Nginx_.         :) Order deny,allow Deny from all Allow from 10.0.0.0/8 Allow from 192.168.0.0/24 AuthType Basic AuthName "My Closed Zone Gauth" AuthBasicProvider "google_authenticator" Require valid-user GoogleAuthUserPath /etc/httpd/ga_auth GoogleAuthCookieLife 600 GoogleAuthEntryWindow 3 # GoogleAuthLogLevel -        . GoogleAuthLogLevel 1 </Location> 


рд╣рдо рдЕрдкрд╛рдЪреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЦреЛрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ - рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЕрдиреБрд░реЛрдз рд╣реИ? рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ !!!

рдЕрдзрд┐рдХ ...

/ etc / httpd / ga_auth - рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд╣рд╛рдВ рдирд┐рдЬреА рдХреБрдВрдЬреА рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред

рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдФрд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП: google-Authatorator

рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, libpam-google-Authatorator , рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ google-Authatorator ред рдпрд╣рд╛рдБ рд╡рд╣ рд╡рд╣ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рддрд╛рдХрд┐ рдлрд╛рдЗрд▓ рд╡рд╣реАрдВ рдЬрд╛рдП рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдереАред

 #!/bin/bash /usr/bin/google-authenticator -t -D -f -l$1@mydomain.com -r3 -R600 -s /etc/httpd/ga_auth/$1 -w2 /bin/chown apache:apache /etc/httpd/ga_auth/$1 


рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛:

 https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/zzzz@mydomain.auth%3Fsecret%3DQYYY34XXXX534A4QA Your new secret key is: DQYYY34XXXX534A4QA Your verification code is 123456 Your emergency scratch codes are: 99942105 28654999 45999608 33300650 99907825 


/ etc / httpd / ga_auth / _user_login_ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрд╣реБрдд рд╕реА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬрд╝реЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди "рдЖрдкрдХреА рдирдИ рдЧреБрдкреНрдд рдХреБрдВрдЬреА рд╣реИ:" рдХреЗ рдЕрд▓рд╛рд╡рд╛ Google-рдкреНрд░рдорд╛рдгрдХ-рдЕрдкрд╛рдЪреЗ-рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдХреБрдЫ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: ", рдХрдо рд╕реЗ рдХрдо рдореИрдВрдиреЗ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ - рдХреБрдЫ рднреА рдирд╣реАрдВ ... рддрд╛рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдЫреЛрдбрд╝ рд╕рдХреЗрдВ QUCFKE6AK3PBA4QA рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рд▓реЗрдХрд┐рди рдЖрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд╣реАрдВ рдЫреВ рд╕рдХрддреЗ рд╣реИрдВред

рдлрд┐рд░ рд╣рдо рд▓рд┐рдВрдХ https://www.google.com/chart?chs=200x200&chld=MIND0&cht=qr&chl=otpauth тЧПtotp/zzzz@mydomain.auth%3Fsecec%3DQYY34XXXX534A4QA рдЦреЛрд▓рддреЗ рд╣реИрдВ
(рд▓рд┐рдВрдХ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╡рдХреНрд░)
рдФрд░ рджреЗрдЦреЛ



рдЕрдкрдиреЗ рдлрд╝реЛрди рдкрд░ Google рдкреНрд░рдорд╛рдгрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдпрджрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ)ред рд╣рдо рдХреНрдпреВрдЖрд░ рдХреЛрдб рдХреЛ рд╕реНрдХреИрди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреВрд░реЗ рдлреЛрди рдореЗрдВ рд╣рд░ рдорд┐рдирдЯ рдПрдХ рдмрд╛рд░ рдкрд╛рд╕рд╡рд░реНрдб рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

рдЖрдк рдЕрдкрд╛рдЪреЗ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ 404 рдЬрд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рдСрдерд░рд╛рдЗрдЬреЗрд╢рди рдХреЗ рдмрд╛рдж рдЕрдкрд╛рдЪреЗ рдХреБрдЫ рддрд░рд╣ рдХреЗ index.html рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИред

рд╡реИрд╕реЗ google-Authator-apache-рдореЙрдбреНрдпреВрд▓ рдореЙрдбреНрдпреВрд▓ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ / var / log / httpd / error_log рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ "рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░" рдФрд░ рдПрдХ рдлреЛрди рд╣реИ - рджреЛрдиреЛрдВ рдПрдХ рд╣реА рд╕рдордп рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдПрдХ рд╣реА рдЕрдиреБрдХреНрд░рдо рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред

рдЪрд▓реЛ nginx рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред

рд╣рдо рдирдЧрдиреЗрдХреНрд╕ рдлреНрд░реЗрд╢рд░ рд▓реЗрддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рд░ 1.5.7 рд▓рд┐рдпрд╛, рд╣рдо --with-http_auth_request_module (http_auth_request_module рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБ) рдХреЗ рд╕рд╛рде рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред

  auth_request_set $auth_cookie $upstream_http_set_cookie; add_header Set-Cookie $auth_cookie; location = /_auth/ { internal; proxy_pass http://gauth_pool/; proxy_pass_request_body off; proxy_buffering off; proxy_cache off; proxy_set_header Content-Length ""; proxy_set_header Host mydomain.com; } 


рдореИрдВрдиреЗ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЪреБрдирд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЬрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рд╢рд╛рдорд┐рд▓ рдХрд░реВрдВрдЧрд╛ред

/etc/nginx/nginx.conf рдореЗрдВ рдЕрдВрдд рдореЗрдВ рдЕрдкрд╛рдЪреЗ рдХрд╛ рдкреВрд▓ рдЬреЛрдбрд╝реЗрдВ + рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 2 рд╕рд░реНрд╡рд░

 upstream gauth_pool { server ga1.mydomain.com:8888 weight=1; server ga2.mydomain.com:8888 weight=5; } 


рдЕрдм рд╣рдореЗрдВ рдЬрд╣рд╛рдБ рднреА рдирдЧреАрдирдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╣рдо рдЬреЛрдбрд╝реЗрдВрдЧреЗ:

 server { listen 443 ssl spdy; # listen 80; server_name www.mydomain.com; satisfy any; include /etc/nginx/allow_nets.txt; deny all; auth_request /_auth/; include location_auth.conf; 


рдЪреЗрдХ рдХрд░реЗрдВ :)

/etc/nginx/allow_nets.txt - рдЖрдИрдкреА рдХреА рдПрдХ рд╕реВрдЪреА рдЬрд┐рд╕реЗ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рднреА рдХреЛ рдкреАрдбрд╝рд╛ рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рд╣реИ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ:

рдпрд╣ рд╕рдм рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ред рдЬрдм рдЖрдк рд╕рд╛рдЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдХреБрдХреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рд▓рдЧрд╛рддрд╛рд░ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ
set-cookie: google_authn=user:1390714695:FRxZCSDzox/a5KEGXXXXXXX5TYGIYZrRf=

рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, 1390714695 - рд╡рд╣ рд╕рдордп рдЬрдм рдХреБрдХреА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЕрдкрд╛рдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рдордп + {GoogleAuthCookieLife 600} рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рд╕рдордп рдХреЛ рд╣рдо рдкреГрд╖реНрда рдкрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред 10 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ - рдлрд┐рд░ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред

рдФрд░ рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рди-рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд░рд╣рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╢рдмреНрдж 1 рдорд┐рдирдЯ рдХрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣реИред рд▓реЗрдХрд┐рди рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП
GoogleAuthEntryWindow 3, рдЖрдк рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ "рдЯрд╛рдЗрдо рд╡рд┐рдВрдбреЛ" рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ Google-рдкреНрд░рдорд╛рдгрдХ-рдЕрдкрд╛рдЪреЗ-рдореЙрдбреНрдпреВрд▓, рд╡рд░реНрддрдорд╛рди рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, GoogleAuthEntryWindow рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдШрдбрд╝реА рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдореМрдЬреВрдж рдШрдбрд╝реА рдХрд╛ рдореЗрд▓ рди рд╣реЛ, рддреЛ рднреА рдЖрдк рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рд╡рди-рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓реЗ, рдЗрд╕рд╕реЗ рдЖрдк рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ "рдкрд╛рд░рд┐рдд" рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ;

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдкрд╛рдЪреЗ рд╕реЗ рд▓реЙрдЧ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛:

 [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] **** COOKIE AUTH at T=1390714549, referer: https://www.mydomain.com/ [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] Cookie auth is DECLINED, referer: https://www.mydomain.com/ [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] **** PW AUTH at T=1390714549 user "my_user", referer: https://www.mydomain.com/ [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] getUserSecret with username "my_user", referer: https://www.mydomain.com/ [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] OPENING FILENAME /etc/httpd/ga_auth/my_user, referer: https://www.mydomain.com/ [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] Comparing Authentication @ T=46017151 Code=475002 "332994" vs. "475002", referer: https://www.mydomain.com/ [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] Comparing Authentication @ T=46017151 Code=87841 "332994" vs. "087841", referer: https://www.mydomain.com/ [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] Comparing Authentication @ T=46017151 Code=627132 "332994" vs. "627132", referer: https://www.mydomain.com/ [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] Comparing Authentication @ T=46017151 Code=332994 "332994" vs. "332994", referer: https://www.mydomain.com/ [Sun Jan 20 09:01:49 2014] [error] [client 1.2.3.4] Created cookie expires 1390715149 hash is sEFQLm92bSI= Cookie: google_authn=my_user:1390715149:sEFQLm92bSI=, referer: https://www.mydomain.com/ 


рдзреАрд░реЗ-рдзреАрд░реЗ, рдпрд╛ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░, рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд╛рд░
Comparing Authentication @ T=46017151 Code=87841 "332994" vs.
рддрдм рддрдХ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рди рд╣реЛ, рдФрд░ рдПрдХ рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж - рдПрдХ рдирдпрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдгред

Source: https://habr.com/ru/post/In210316/


All Articles