Zammad: рдмреЗрд╕рд┐рдХ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде HTTP 401 рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рдХреЗ рдХрд╛рд░рдг рд╕рдорд╕реНрдпрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдорд╛рд░реНрдЪ 2020  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: zammad/zammad

рдЗрдиреНрдлреЛрд╕:

  • рдкреНрд░рдпреБрдХреНрдд рдЬрд╝рдореНрдорд╛рдж рд╕рдВрд╕реНрдХрд░рдг: 3.2.0
  • рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдзрд┐ (рд╕реНрд░реЛрдд, рдкреИрдХреЗрдЬ, ..): рд░реВрдмреА 2.5.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд░реЛрдд рд╕реЗ, рдирдЧрдиреЗрдХреНрд╕ рд░реЙрдкреНрд░рд┐рдХреНрд╕ рдХреЗ рдкреАрдЫреЗред
  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: Ubuntu 18.04.4 LTS (рдмрд╛рдпреЛрдирд┐рдХ)
  • рдбреЗрдЯрд╛рдмреЗрд╕ + рд╕рдВрд╕реНрдХрд░рдг: 9.5.21 рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЯ рдХрд░рддрд╛ рд╣реИ
  • рдПрд▓рд┐рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рд╕рдВрд╕реНрдХрд░рдг: 5.6.16
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ + рд╕рдВрд╕реНрдХрд░рдг: Google Chrome 80.0.3987.132

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░:

рдЬрд╝рдорд╛рдж рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдПрдХ рдкрд░рдд рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реНрдерд┐рддрд┐ рдХреЛрдб "HTTP 401 рдЕрдирдзрд┐рдХреГрдд" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрдерд┐рддрд┐ рдХреЛрдб 403 рдПрдХ рдЙрдЪрд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛрдЧрд╛ред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░:

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

рдХреЛрдбрдмреЗрд╕ рдХреЛ 401 (рдпрд╛ unauthorized ) рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдЦреЛрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
https://github.com/zammad/zammad/search?l=Ruby&q=%3Aunuthorized

рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо:

  • рдПрдХ Zammad рдЙрджрд╛рд╣рд░рдг рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдкреАрдЫреЗ рд░рдЦреЗрдВ

рддрдм рдлрд┐рд░

  • рдЧрд▓рдд рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд┐рддрд┐ рдХреЛрдб 401 рдХреЗ рд╕рд╛рде рдПрдХ рдкреГрд╖реНрда рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ

рдпрд╛

  • рдПрдХ рд╕рдореВрд╣ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдЯрд┐рдХрдЯ рдмрдирд╛рдПрдВ рдЬрд╣рд╛рдВ рд╡реНрдпрдХреНрддрд┐ 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
  • рд╡реНрдпрдХреНрддрд┐ 1 рдЙрд╕ рдЯрд┐рдХрдЯ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ
  • рдЙрд╕ рдЯрд┐рдХрдЯ рдХреЛ рджреВрд╕рд░реЗ рд╕рдореВрд╣ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ рдЬреЛ рд╡реНрдпрдХреНрддрд┐ 1 рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реИ
  • рд╡реНрдпрдХреНрддрд┐ 1 рдХреЛ рдЕрднреА рднреА рдЕрдкрдиреЗ рдЬрд╝рдорд╛рдж рдЕрд╡рд▓реЛрдХрди рдХреЗ рдКрдкрд░ рдЯрд┐рдХрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ 401 рдЕрдиреБрд░реЛрдз рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЬреЛ рдЙрд╕реЗ рдореВрд▓ рд╕реНрд░реЛрдд рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдЧрд╛

рд╣рд╛рдВ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ рдФрд░ рдХреЛрдИ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣реЗ рд▓реЛрдЧреЛрдВ! рдмрд╣реБрдореВрд▓реНрдп рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ RFC рдХреЛ рдкрдврд╝рд╛ рдФрд░ рдЕрднреА рднреА 401 рдФрд░ 403 рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд╕реНрдЯреИрдХрдСрд╡рд░рдлреНрд▓реЛ рдореЗрдВ рдпрд╣ рд╢рд╛рдирджрд╛рд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдорд┐рд▓рд╛ред рдЙрджреНрдзрд░рдг:

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП HTTP рд╕реНрдерд┐рддрд┐ рдХреЛрдб 401 рдЕрдирдзрд┐рдХреГрдд рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдпрд╣ рд╣реИ: рдпрд╣ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣реИ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд╣реАрдВред

рдЬреЛ рдЗрд╕реЗ рдореБрджреНрджреЗ рдкрд░ рд▓рд╛рддрд╛ рд╣реИред Zammad authorization рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП 401 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдмрдЧ рд╣реИред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реВрдВрдЧрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдореЗрдВ рдкреНрд░рднрд╛рд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдПрдкреАрдЖрдИ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред
рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛ Zammad 3.4 рдХреЗ рд╕рд╛рде 401 authorization рдХреЛ рдирд░рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЗрд╕реЗ 3.5 (рдпрд╛ 3.6) рдХреЗ рд╕рд╛рде рдХрдареЛрд░ рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ 403 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред
рд╣рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдЧреЗ рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рдХреЛ рд╡рд┐рдЪрд╛рд░?

рд╕рднреА 12 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреГрдкрдпрд╛ рдЕрдкрдиреА рд╕рдЯреАрдХ рд╕реНрдерд╛рдкрдирд╛ рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ - "рдХреЛрдИ рднреА" рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ - рдХреНрд╖рдорд╛ рдХрд░реЗрдВред :)

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдкреВрд░рд╛ рд╡реЗрдмрд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░реЗрдВ (рдФрд░ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рдЕрднреА рдпрд╣ рдПрдХ рддрдХрдиреАрдХреА рдкреНрд░рд╢реНрди рдХреА рддрд░рд╣ рдорд╣рдХ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рдЪрд╛рд╣рд┐рдПред ;)

рдзрдиреНрдпрд╡рд╛рджред

рдлрд┐рд░ рд╕реЗ рдирдорд╕реНрдХрд╛рд░,
рдореИрдВрдиреЗ рдореБрджреНрджрд╛ рд╡рд┐рд╡рд░рдг рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ - рдЗрд╕рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ!
рд╕рдмрд╕реЗ рдмреЗрд╣рддрд░

рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЖрдкрдХреЗ рд╡реЗрдмрд╕рд░реНрд╡рд░ рдХрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдореВрд▓рднреВрдд рдбрд┐рдлреЙрд▓реНрдЯ рджреНрд╡рд╛рд░рд╛ рдмрдврд╝рд╛рдпрд╛ рдЧрдпрд╛ рд╣рдорд╛рд░рд╛ рдбрд┐рдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рд╡реАрдПрдЪрдПрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рднреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдмрд╕ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдВ, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рд┐рд░реНрдл Zammad Default config + Basic Auth рд╣реИред рдпрд╣рд╛рдБ vhost рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:

auth_basic 'Restricted: general basic auth';
auth_basic_user_file /etc/.htpasswd.d/zammad;
location /ws {
    proxy_pass  http://zammad_ws;
    proxy_redirect  off;
    proxy_hide_header X-Powered-By;
    proxy_set_header  Host              $host;
    proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header  X-Forwarded-Proto $scheme;
    proxy_set_header  X-Real-IP         $remote_addr;
    proxy_set_header  X-Forwarded-Host  $host;
    proxy_set_header  X-Forwarded-Port  443;
    proxy_set_header CLIENT_IP $remote_addr;
    proxy_read_timeout 86400;
    proxy_http_version 1.1;
    proxy_set_header  Upgrade           $http_upgrade;
    proxy_set_header  Connection        "upgrade";
    proxy_max_temp_file_size  0;
    error_page 502 503 504 =503 @fallback;
}
location / { 
    try_files $uri @proxy;
}
location <strong i="6">@proxy</strong> { 
    proxy_pass  http://zammad;
    proxy_redirect  off;
    proxy_hide_header X-Powered-By;
    proxy_set_header  Host              $host;
    proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header  X-Forwarded-Proto https;
    proxy_set_header  X-Real-IP         $remote_addr;
    proxy_set_header  X-Forwarded-Host  $host;
    proxy_set_header  X-Forwarded-Port  $server_port;
    proxy_http_version 1.1;
    proxy_set_header  Upgrade           $http_upgrade;
    proxy_set_header  Connection        "upgrade";
    proxy_max_temp_file_size  0;
    proxy_set_header CLIENT_IP $remote_addr;
    error_page 502 503 504 =503 @fallback;
}

рд╣рдордиреЗ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрд╛ред
рд╣рдорд╛рд░рд╛ рдЕрдиреБрдорд╛рди (рдЬреИрд╕рд╛ рдХрд┐ рдорд╛рдЗрдХрд▓ рдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ) рдПрдХ HTTP 401 (рдЬреЛ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ рджрд┐рдП рдЧрдП рдореВрд▓ рдЕрдзрд┐рдХрд╛рд░ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдЧрд▓рдд рд╣реИрдВ) рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди HTTP 403 рдХреЛ рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдЧрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рджреЗрдЦрд╛, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛

рдРрдк / рдХрдВрдЯреНрд░реЛрд▓рд░ / рдПрдкреНрд▓рд┐рдХреЗрд╢рди_рдХрдВрдЯреНрд░реЛрд▓рд░ / рд╣реИрдВрдбрд▓_рдЗрд░рд░реНрд╕.рдЖрд░рдмреА # рдПрд▓ 39
respond_to_exception(e, :unauthorized)

рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
respond_to_exception(e, :forbidden)

RFC рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (https://tools.ietf.org/html/rfc7231#section-6.5.3): "рдпрджрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдереЗ, рддреЛ рд╕рд░реНрд╡рд░ рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд╕ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд░реНрдпрд╛рдкреНрдд рдорд╛рдирддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ SHOULD рд╕рдорд╛рди рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рдПрдВ рдирд╣реАрдВред "

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдПрдХ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛ рдФрд░ 403 рдХрд╛рд░реНрдпред
рдпрджрд┐ рдЖрдкрдХреЛ 403 рд▓реМрдЯрд╛рдиреЗ рдореЗрдВ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рджрд┐рдЦрддреА рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рдкреАрдЖрд░ рдЬрд╛рд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдмреЗрд╣рддрд░

рдЗрддрдиреА рджреЗрд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдЬрд╝рдорд╛рдж рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛ (рдЖрд╡реЗрджрди рдЖрдзрд╛рд░рд┐рдд) рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЖрдкрдХреЗ рдирдЧреАрдиреЗ рдкрд░ рдПрдХ "рдмреИрдХрдПрдВрдб рдореБрджреНрджрд╛" рд╣реИред

рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЕрдиреБрд░реЛрдз рдХрднреА рднреА рдЖрд╡реЗрджрди рдХреЗ рд░реВрдк рдореЗрдВ Zammad рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ (рдФрд░ рдЖрдкрдХреЗ nginx рдпрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реЗрдмрд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реНрд░реЛрдд рдХреЛрдб рдмрджрд▓рдирд╛ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдПрдХ 401 рдЕрдирдзрд┐рдХреГрдд рд╣реИ рдЬреЛ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ (рднрд▓реЗ рд╣реА рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк 403 рдЪрд╛рд╣рддреЗ рд╣реИрдВ) рд╕реЗ рд╕рд╣реА рд╣реИред

рдпрд╣ рд╕рднреА рджреЗрдЦреЗрдВ:
https://serverfault.com/questions/616770/nginx-auth-basic-401-htpassiond

рд╡реИрд╕реЗ:
рд╕рд┐рд░реНрдл рджреЛ рдмрд╛рд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ Zammad рдкреНрд░реЙрдХреНрд╕реА рднрд╛рдЧреЛрдВ рдХреЛ рдЯрд┐рдкреНрдкрдгреА рдХреА рддрд╛рдХрд┐ Zammad рдХрд╛ рдмреИрдХрдПрдВрдб рдЙрддреНрддрд░ рди рджреЗ рд╕рдХреЗ ред 401 рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╣реА рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ nginx рдХреА рдЧрд▓рддреА рд╣реИред :)

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдмрдЧ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рддрдХрдиреАрдХреА рд╕рд╡рд╛рд▓ рд╣реИред

рд╣рд╛рдп @ рдкреНрд░рд╛рд░реНрдердирд╛ ,
рдЗрд╕ рдорд╛рдорд▓реЗ рдХреА рддрд▓рд╛рд╢ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЬрдмрдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЬрд╝рдорд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯ-рдСрдл-рд╕реНрдХреЛрдк рд▓рдЧрддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ (рдФрд░ рдирдЧрдирд┐рдХреНрд╕ рдирд╣реАрдВ)ред рдореИрдВ рдХреНрдпреЛрдВ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛:

рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ ngnix рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _not_ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рджреЛрдиреЛрдВ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдЬрд╝рдорд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди ("рдирдЧрдирд┐рдХреНрд╕ рдХреЗ рдкреАрдЫреЗ") рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╡рд╣ рдХрднреА-рдХрднреА рдмрд╛рдж рдореЗрдВ рд╣реЛрддреА рд╣реИ (Zammad рджреНрд╡рд╛рд░рд╛!) рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд┐рд╕реА рдкреГрд╖реНрда рдХреЛ рдХреЛрдб рдХреЛрдб 401 рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, _any webserver_ рд╕рдХреНрд╖рдо рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдБ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╢рдмреНрджрд╢рдГ 401 рдзреНрд╡рдирд┐рдпрд╛рдБ "рдЙрдЪрд┐рдд" рд╣реИрдВред рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдмреЛрд▓рдирд╛, рдпрд╣ рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдореБрджреНрджреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ 403 рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреГрдкрдпрд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП Zammad рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ UX рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@thorsteneckel рдЗрд╕ рдкрд░ рдЖрдкрдХреА рдХреНрдпрд╛ рд░рд╛рдп рд╣реИ?

рд╣реЗ рд▓реЛрдЧреЛрдВ! рдмрд╣реБрдореВрд▓реНрдп рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ RFC рдХреЛ рдкрдврд╝рд╛ рдФрд░ рдЕрднреА рднреА 401 рдФрд░ 403 рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд╕реНрдЯреИрдХрдСрд╡рд░рдлреНрд▓реЛ рдореЗрдВ рдпрд╣ рд╢рд╛рдирджрд╛рд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдорд┐рд▓рд╛ред рдЙрджреНрдзрд░рдг:

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП HTTP рд╕реНрдерд┐рддрд┐ рдХреЛрдб 401 рдЕрдирдзрд┐рдХреГрдд рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдпрд╣ рд╣реИ: рдпрд╣ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣реИ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд╣реАрдВред

рдЬреЛ рдЗрд╕реЗ рдореБрджреНрджреЗ рдкрд░ рд▓рд╛рддрд╛ рд╣реИред Zammad authorization рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП 401 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдмрдЧ рд╣реИред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реВрдВрдЧрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдореЗрдВ рдкреНрд░рднрд╛рд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдПрдкреАрдЖрдИ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред
рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛ Zammad 3.4 рдХреЗ рд╕рд╛рде 401 authorization рдХреЛ рдирд░рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЗрд╕реЗ 3.5 (рдпрд╛ 3.6) рдХреЗ рд╕рд╛рде рдХрдареЛрд░ рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ 403 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред
рд╣рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдЧреЗ рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рдХреЛ рд╡рд┐рдЪрд╛рд░?

рд╡реЛ рдмрдбрд╝реА рдЦреБрд╢рдЦрдмрд░реА рд╣реИрдВ! рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЖрдкрдХреЛ рд▓реВрдк рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП: рд╣рдо рдЗрд╕реЗ рдЖрдЧрд╛рдореА 4.0 рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред

рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП: https://thoughtbot.com/blog/forbidden-kisses-http-fluency-in-clearance

рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрдорд┐рдЯ рдХреЗ рд╕рд╛рде рдлрд┐рдХреНрд╕реНрдбред рд╣рдордиреЗ рдореМрдХрд╛ рд▓рд┐рдпрд╛ рдФрд░ 401 рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХреБрдЫ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╣рдордиреЗ рдмрджрд▓реА рд╡рд╣ 403 Forbidden рдореЗрдВ рдЧреИрд░-рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддреНрд░реБрдЯрд┐рдпрд╛рдВред

рдЕрдм рд╕реЗ рд▓рдЧрднрдЧ 30 рдорд┐рдирдЯ рдореЗрдВ рдЖрдк рдирд╡реАрдирддрдо develop рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╢рд╛рдЦрд╛ рд╣реИ рдФрд░ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдмреИрдХрдЕрдк рд▓реЗрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЙрдореНрдореАрдж рдХрд░реЗрдВ :) рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реИрдВ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

metasnw picture metasnw  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

julenl picture julenl  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

BigAndini picture BigAndini  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

infestdead picture infestdead  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

minions1291 picture minions1291  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ