рдпрд╣ рд╕рд┐рдВрдЧрд▓ рд╕рд╛рдЗрди рдСрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИред рд╣рдо рдЕрдкрдиреА рдХрдВрдкрдиреА рдореЗрдВ рдПрдХ Microsoft рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд▓реЙрдЧрд┐рди ldap-sync рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдПрд╕рдПрд╕рдУ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕реЗ nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ :-(
рдХреНрдпрд╛ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рд╣реА SSO рдХреЗ рд╕рд╛рде Zammad рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░ рд▓реА рд╣реЛ? рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдирд┐рд░реНрджреЗрд╢ рдпрд╛ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдкрд╣рд▓реЗ рд╣реА, рдЖрдкрдХрд╛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
рд╣рд╛рдп @ рдЬреИрдЧрд░13 ,
рдмреЗрд╢рдХ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрдкрд╛рдЪреЗ httpd рдХрд╛ рдЙрдкрдпреЛрдЧ mod_auth_kerb рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕ рддрд░рд╣ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде:
<LocationMatch "/auth/sso">
SSLRequireSSL
AuthType Kerberos
AuthName "Your Zammad"
KrbMethodNegotiate On
KrbMethodK5Passwd On
KrbAuthRealms YOUR.REALM
KrbLocalUserMapping on
KrbServiceName HTTP/[email protected]
Krb5KeyTab /etc/httpd/zammad.keytab
require valid-user
</LocationMatch>
рдЪреБрдиреА рдЧрдИ рдпреВрдЖрдИрдбреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ sAMAccountName) рдпрд╣ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдФрд░ рдЖрдкрдХреЛ рдЕрдкрд╛рдЪреЗ рдХреЛ nginx рдХреЗ рдмрдЬрд╛рдп рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЬрдм рддрдХ рдСрде рдореЙрдбреНрдпреВрд▓ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ REMOTE_USER рдпрд╛ HTTP_REMOTE_USER рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИ, рддрдм рддрдХ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдЬреИрд╕реЗ auth_mellon рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдПрдЪрдЯреАрдПрдЪ, рд░реЙрдп
рдЕрд░реЗ @rkaldung ,
рдЖрдкрдХреЗ рддреЗрдЬрд╝ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ рдЕрдкрд╛рдЪреЗ рдФрд░ рдЖрдкрдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдЙрдВрдЧрд╛ :-)
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЗрд╕реЗ nginx рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ :-(
рдзрдиреНрдпрд╡рд╛рдж!
рд╣рд╛рдп @ рдЬреИрдЧрд░13 ,
Nginx рдХреЗ рд╕рд╛рде рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдордп рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд┐рдирд╛ред @martini рдЗрд╕ рдкрд░ рдЖрдкрдХреЗ рджреЛ рд╕реЗрдВрдЯ?
рдирдорд╕реНрддреЗ @rkaldung
рдХреНрдпрд╛ рдЖрдк рдПрдирдЬреАрдЖрдИрдПрдирдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рд░рд╛рд╕реНрддрд╛ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕рдореЗрдВ рднреА рдореБрдЭреЗ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред рдзрдиреНрдпрд╡рд╛рджред
рдирдорд╕реНрддреЗ @scimitar4444
@rkaldung рдХрд╛ рдЕрд░реНрде рд╣реИ https://github.com/jgraichen/omniauth-kerberos рдЬреИрд╕реЗ рд░реЗрд▓ рд╕реНрддрд░ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди - рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрд╣рд▓реЗ рдЬрд╝рдордж рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ
рдорд╛рд░реНрдЯрд┐рди
@ рдорд╛рд░реНрдЯрд┐рдиреА рдпрд╣ рд╣рдореЗрд╢рд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ ЁЯШЬ
рдореИрдВ рдЖрдкрдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SSO рдХреЛ рдХрд╛рдо рджрд┐рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ http://myserver.mydom.local/auth/sso рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдирд╛ рдореБрдЭреЗ рд╡рд╛рдкрд╕ рд▓реЙрдЧрд┐рди рдкреЗрдЬ рдкрд░ рд▓реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред . . рдХреНрдпрд╛ рдореЗрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ ?
(рд╕реНрдЯреИрдирдлреЛрд░реНрдб) рд╡реЗрдмрде (рдФрд░ рдПрд▓рдбреАрдПрдкреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рдПрд╕рдПрд╕рдУ рдореЗрдВ рд╕рдлрд▓ рд▓реЙрдЧрд┐рди рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рдорд╛рдб рдкреНрд░реЙрдореНрдкреНрдЯ рдорд┐рд▓рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛: рдЙрдмрдВрдЯреВ 16.04; рдЬрдорд╛рдж 2.2.0; рдЕрдкрд╛рдЪреЗ, рдорд╛рд░рд┐рдпрд╛рдбреАрдмреА; (REMOTE_USER webauth рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)
@rkaldung рдХреНрдпрд╛ рдЖрдк sth рдЬрд╛рдирддреЗ рд╣реИрдВред рдирдпрд╛?
рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛:
рд╕рдорд╕реНрдпрд╛: lib/sso/env.rb рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ PUMA рд╕реЗ рдЖрд╡рд╢реНрдпрдХ request.env рдХреЗ рдмрд┐рдирд╛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП 'REMOTE_USER' рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
рд╕рдорд╛рдзрд╛рди:
рдлрд╝рдВрдХреНрд╢рди 'create_sso' рдХреЗ рдЕрдВрджрд░ 'zammad/app/controllers/sessions_controller.rb' рдореЗрдВ request.env рд╕реЗ ENV рдореЗрдВ 'REMOTE_USER' рдЬреЛрдбрд╝реЗрдВ
# export required environment variables for sso
ENV['REMOTE_USER'] = request.env['REMOTE_USER']
ENV['HTTP_REMOTE_USER'] = request.env['HTTP_REMOTE_USER']
@martini рдХреНрдпрд╛ рдпрд╣ PUMA рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ?
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ httpd.conf рдореЗрдВ рд╣реЗрдбрд░-рдлрд╝реАрд▓реНрдб рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рдпрдо рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
RequestHeader merge REMOTE_USER %{REMOTE_USER}s
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ 2018-01-08:
рдкрд┐рдХрд╛рдЪреБрдкреНрд░реЛрдл рдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдЕрдм рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ /etc/krb5.conf рдХреЙрдиреНрдлрд┐рдЧ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рдерд╛ред
рдЬрд╛рдирдХрд╛рд░реА:
рдЬрд╝рдорд╛рдж рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг: рдирд╡реАрдирддрдо
рдЬрд╝рдордж рд╕рдВрд╕реНрдерд╛рдкрди рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛: rpm
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: рд╕реЗрдВрдЯреЛрд╕ 7
рдмреНрд░рд╛рдЙрдЬрд╝рд░ + рд╕рдВрд╕реНрдХрд░рдг: рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдирд╡реАрдирддрдо
Apache Server Config:
<VirtualHost *:443>
ServerName ***
ServerAdmin ***
DocumentRoot "/opt/zammad/public"
<IfModule !mod_auth_kerb.c>
LoadModule auth_kerb_module /usr/lib64/httpd/modules/mod_auth_kerb.so
</IfModule>
ProxyRequests Off
ProxyPreserveHost On
<Proxy localhost:3000>
Require local
</Proxy>
ProxyPass /assets !
ProxyPass /favicon.ico !
ProxyPass /robots.txt !
ProxyPass /ws ws://localhost:6042/
ProxyPass / http://localhost:3000/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/opt/zammad/public">
Options FollowSymLinks
Require all granted
</Directory>
<Location "/auth/sso">
Order allow,deny
Allow from all
AuthType Kerberos
AuthName "Ticketsystem Kerberos Login"
KrbServiceName HTTP
KrbMethodNegotiate on
KrbMethodK5Passwd on
KrbLocalUserMapping off
KrbSaveCredentials on
Require valid-user
# Environment specific: Path to the keytab and the realm
Krb5Keytab /etc/kerberos.keytab
KrbAuthRealm ***
</Location>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/***
SSLCertificateKeyFile /etc/pki/tls/private/***
ErrorLog "logs/***-error_log"
CustomLog "logs/***-access_log" common
</VirtualHost>
рдЬрдм рдореИрдВ https:// /auth/sso рдФрд░ "KrbLocalUserMapping on" рдЦреЛрд▓рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:рдЖрдВрддрд░рд┐рдХ рд╕рд░реНрд╡рд░ рддреНрд░реБрдЯрд┐рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рддреНрд░реБрдЯрд┐ рдпрд╛ рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рд╡рд╣ рдЖрдкрдХрд╛ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛редрдХреГрдкрдпрд╛ admin@ рдкрд░ рд╕рд░реНрд╡рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ ред
рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╕рд░реНрд╡рд░ рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЕрдЧрд░ рдореИрдВ "KrbLocalUserMapping off" рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ https:// * /#login . рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдореИрдВ "RequestHeader рдорд░реНрдЬ REMOTE_USER%{REMOTE_USER}s" рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ!
рд╣рдордиреЗ рдПрдХ рдФрд░ рдЫреЛрдЯрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЬреЛрдбрд╝рд╛ рд╣реИ:
RewriteEngine On
RewriteCond %{HTTP_COOKIE} !^.*zammad_session.*$
RewriteRule ^/$ https://%{SERVER_NAME}/auth/sso [R,L]
рдЕрдкрд╛рдЪреЗ-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдпреЗ рд▓рд╛рдЗрдиреЗрдВ '/' рдХреЛ '/auth/sso' рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреА рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдЬрд╝рдорд╛рдб рдХреБрдХреА рд╕реЗрдЯ рди рд╣реЛред рдпрд╣ рдЕрдВрддрд╣реАрди рд▓реВрдк рдмрдирд╛рдП рдмрд┐рдирд╛ SSO рд▓реЙрдЧрд┐рди рдкреГрд╖реНрда рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 'рдЖрдВрддрд░рд┐рдХ рд╕рд░реНрд╡рд░ рддреНрд░реБрдЯрд┐' рд╣реЛрддреА рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред . . рдЕрдкрд╛рдЪреЗ рд▓реЙрдЧ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХреЛ /auth/sso рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдореЗрд░рд╛ рдЕрдиреБрд░реЛрдз / рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред . . рд╢рд╛рдпрдж рдореИрдВрдиреЗ create_sso рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЧрд▓рддреА рдХреА рд╣реИ! рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реИ?
@pikachuprof рдореИрдВрдиреЗ omniauth-kerberos рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ "рдХреЗрд░реНрдмреЗрд░реЛрдЬ рдЯрд┐рдХрдЯ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЬрд╝рдорд╛рдб рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЕрдкрдиреЗ рдХреЗрд░реНрдмреЗрд░реЛрдЬ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдорд╢реАрди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП kinit
рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп "рдХрд░рдмрд░реЛрд╕ рдЯрд┐рдХрдЯрд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ" рд╕реЗ)
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╣реИрдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд░реНрдмреЗрд░реЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореВрд▓ рд▓реЙрдЧрд┐рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдареАрдХ рд╣реИред рдореИрдВ
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 'рд╡рди-рдЯрд╛рдЗрдо рд▓реЙрдЧрд┐рди/рдкреНрд░рдорд╛рдгреАрдХрд░рдг' рдХреЗ рд╕рд╛рде рдЙрдиреНрдирдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП kinit
рдПрдХ рдмрд╛рд░ рдФрд░ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдирд╛) рдФрд░ рдлрд┐рд░ рдЖрдк рдмрд┐рдирд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ zammad/рдЖрдВрддрд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ/ftp рдореЗрдВ ssh/рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ ( SPNEGO/GSSAPI) рдХреЗрд╡рд▓ рдлреНрд░рдВрдЯрдПрдВрдб рд╡реЗрдмрд╕рд░реНрд╡рд░ (рдЬреИрд╕реЗ рдЕрдкрд╛рдЪреЗ) рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЕрднреА рдХрд░ рд░рд╣реЗ рд╣реИрдВред
@muhammadn рд╣рдо рд╕реНрдЯреИрдирдлреЛрд░реНрдб рд╡реЗрдмрде (mod_auth_webauth) рдирд╛рдордХ рдПрдХ
рдЗрд╕ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдЕрдкрд╛рдЪреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ - рд▓реЗрдХрд┐рди Zammad рдХреЛ REMOTE_USER рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди "рд╡реЗрдмрд╕рд░реНрд╡рд░-рдСрде" рддрдВрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛ sthред рд╕рдорд╛рди?), рд╕рд╛рде рд╣реА рд╕рд╛рде рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдХреБрдХреА рдХреА рдЬрд╛рдВрдЪ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд┐рдП рдмрд┐рдирд╛ "рд▓реЙрдЧрд┐рди-рд▓реВрдк" рд╕реЗ рдмрд╛рд╣рд░, рдЬреЛ рдереЛрдбрд╝рд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд▓рдЧрддрд╛ рд╣реИред
@pikachuprof рдореИрдВрдиреЗ https://github.com/muhammadn/zammad/commit/7e8e01bff8226f2d74e80cbc307416db9bf2ac1d рдкрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рд╣реИ
рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдПрдХ рдЬрд╝рдорд╛рдб рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рд▓рд┐рдП omniauth-kerberos рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдЖрдкрдХреЛ apache рдХреЛ kerberos рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рд╕рдм рдХреБрдЫ Zammad рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рд░реЗрд▓-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ) рдФрд░ рд╣реЗрдбрд░ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ mod_auth_webauth рдореЗрдВ REMOTE_USER рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдЖрдкрдХреЛ рдмрд╕ рдЕрдкрдирд╛ krb5.conf рдареАрдХ рд╕реЗ рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
[logging]
default = FILE:/var/log/krb5.log
[libdefaults]
default_realm = ZAMMAD.COM
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
[realms]
ZAMMAD.COM = {
kdc = kdc.zammad.com
admin_server = kdc.zammad.com
default_domain = zammad.com
}
[domain_realm]
.zammad.com = ZAMMAD.COM
zammad.com = ZAMMAD.COM
рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдореБрджреНрджреЗ рдХреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп https://github.com/muhammadn/zammad/issues рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрд╝рдордж рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрд░рдХреЗрд╕ рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛: рдЙрджрд╛рд╣рд░рдг: [email protected]
рдХреЛрдИ рдореМрдХрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдХреЗрд░реНрдмреЗрд░реЛрдЬ рдЯрд┐рдХрдЯреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ? рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЬрдм рддрдХ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрд╕рдПрд╕рдУ рдХрд╛рдо рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдореБрдЭреЗ рдЬрдореНрдорд╛рдж рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ред рдореИрдВ рдЕрдкрд╛рдЪреЗ рдкрдХреНрд╖ рд╕реЗ рдПрдХ рдПрд╕рдПрд╕рдУ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ (рдЬреЛ REMOTE_USER
рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИ) 2 рд╡рд┐рдзрд┐рдпреЛрдВ (рдХреЗрд░реНрдмрд░реЛрд╕ рдФрд░ рдПрдХреНрд╕ 509 рдПрд╕рдПрд╕рдПрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░) рдХреЗ рд╕рд╛рдеред рдФрд░ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ Zammad LDAP рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рднрд░реЗ рд╣реБрдП рд╣реИрдВред
/auth/sso
рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдЕрдкрд╛рдЪреЗ рд▓реЙрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдореИрдВ рдлрд┐рд░ рд╕реЗ рд▓реЙрдЧрд┐рди рд╕реНрдХреНрд░реАрди рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реВрдВредzammad/app/controllers/sessions_controller.rb
( @pikachuprof hack) рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рд╣реИрдХ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди @EDVLeer рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╛ рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЧрд▓рдд рдЬрдЧрд╣ рдкрд░ рд░рдЦрд╛, рдпрд╛ рддреЛ рдХреЛрдб рдмрд╛рдж рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдЕрдм рдХрд╣реАрдВ рдФрд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛редрдЗрд╕рд▓рд┐рдП...
/auth/sso
рдЕрднреА рднреА рдорд╛рдиреНрдп рд╣реИ?рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:
<Location "/auth/sso">
Options FollowSymLinks
AuthType Kerberos
AuthName "My Name"
KrbMethodNegotiate On
# 'Off' to force users having a valid kerberos ticket, and not prompting for a login/pass
KrbMethodK5Passwd Off
KrbAuthRealms MY-DOMAIN.FR
Krb5KeyTab /etc/krb5.keytab
KrbLocalUserMapping On
KrbServiceName HTTP
Require valid-user
</Location>
рдиреЛрдЯ: рдЖрдкрдХреЛ рдЕрдкрдиреА рдЕрдкрд╛рдЪреЗ 'рд╕реАрдП рдмрдВрдбрд▓' рдлрд╝рд╛рдЗрд▓ ( SSLCACertificateFile
) рдореЗрдВ рдЕрдкрдирд╛ рд╕реАрдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ (.crt) рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЕрдкрд╛рдЪреЗ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреЗ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдареАрдХ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ
# Let this before <Location> to get the certificate at the first connect, and avoid SSL renegotiation
# when we now the real url
SSLVerifyClient require
<Location "/auth/sso">
Options FollowSymLinks
SSLRequireSSL
SSLVerifyDepth 1 # Depend of your config. Can be higher
Require expr %{SSL_CLIENT_I_DN_CN} in {'MY CA NAME'}
SSLOptions +StdEnvVars
# Get the 'firstname.lastname' part of the corporate email, and populate REMOTE_USER
RewriteEngine On
RewriteCond %{SSL:SSL_CLIENT_S_DN_Email} ^(.+)@.+$
RewriteRule .* - [E=REMOTE_USER:%1]
RequestHeader set REMOTE_USER %{REMOTE_USER}e
</Location>
рдореИрдВ рдПрд╕рдПрд╕рдУ рдореБрджреНрджреЗ рдХреЛ "рд╣рд▓" рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореЗрд░рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдирд╡реАрдирддрдо рдЬрд╝рдордж рд╕рдВрд╕реНрдХрд░рдг (2.5) рд╣реИ рдЬрд┐рд╕рдореЗрдВ Apache2 2.4 Postgres рдХреЗ рд╕рд╛рде рд╣реИред mod_auth_kerb рдХреЗ рд╕рд╛рде SSO рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП LDAP рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ SAMACOUNTNAME рдХреЛ рд▓реЙрдЧрд┐рди рдирд╛рдо рд╕реЗ рдореИрдк рдХрд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╡рд┐рдВрдбреЛрдЬ рдпреВрдЬрд░рдиреЗрдо рдЗрд╕реНрдЯ рд╕реНрдХрдореИрди рд╣реИред рддреЛ рдореИрдВ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░ рд╕рдХрддрд╛ рдерд╛ (рдИ-рдореЗрд▓ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ)ред
рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ session_controller.rb рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ (рд▓рд╛рдЗрди 173 рдкрд░)
ENV['HTTP_REMOTE_USER']=request.env['HTTP_REMOTE_USER']
рдЗрд╕рд▓рд┐рдП рдЬрд╝рдореНрдордж HTTP_REMOTE_USER рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж рд▓реЙрдЧрд┐рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ HTTP_REMOTE_USER рдХрд╛ рдорд╛рди рдЕрдм [email protected] рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ vHost рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВред
RequestHeader edit REMOTE_USER "@DOMAIN.AT" ""
рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (Apache2 рдФрд░ Zammad) рдореИрдВ http://zammad.domain.at/auth/sso рдХреЗ рд╕рд╛рде рдПрд╕рдПрд╕рдУ рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди рдХрд░ рд╕рдХрддрд╛ рдерд╛
рдЕрдЧрд░ рдХреЛрдИ рдЬрд░реНрдорди рдмреЛрд▓рддрд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдкрд░ рдПрдХ рдЫреЛрдЯреА рд╕реА рдкреЛрд╕реНрдЯ рд▓рд┐рдЦреА рд╣реИред
@schmanat рдЖрдкрдиреЗ "рд▓реЙрдЧрд┐рди-рд▓реВрдк" рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдпрд╛ рдХреНрдпрд╛ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ "/ auth/sso" рдпреВрдЖрд░рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВ?
рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ /auth/sso url рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЧрд▓реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЦреЛрджрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреЗ рдКрдкрд░ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ (рдкреБрдирд░реНрд▓реЗрдЦрди рдирд┐рдпрдо) рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ?
рд╣рд╛рдБ рдпрд╣ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИред
рдЗрд╕ рдкрд░ рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдФрд░ рдЖрдкрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╣реИ рдЙрд╕рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдиреБрдХрд╕рд╛рди рдореЗрдВ рд╣реВрдВред рдЬреИрд╕рд╛ рдХрд┐ рджреВрд╕рд░реЛрдВ рдиреЗ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рднреА "рдСрде/рдПрд╕рдПрд╕рдУ" рдПрдВрдбрдкреЙрдЗрдВрдЯ рдорд╛рд░рдиреЗ рдХреЗ рдмрд╛рдж рд▓реЙрдЧрд┐рди рдкреЗрдЬ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдпрд╣рд╛рдВ рд╣реИ:
samaccountname
-> login
)zammad
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)zammad
рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдореЗрдВ рдореИрдк рдХрд┐рдП рдЧрдП рдХреАрдЯреИрдм рдмрдирд╛рдпрд╛ рдЧрдпрд╛/etc/krb5.conf
)kinit
рд╕рд╛рде рд╕рддреНрдпрд╛рдкрд┐рдд kerberos рд╡рд╛рддрд╛рд╡рд░рдгsessions_controller.rb
(рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдХрд╛рдЪреБрдкреНрд░реЛрдл рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)рдореИрдВрдиреЗ рд╡рд┐рджреНрд╡рд╛рди рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдиреАрдЪреЗ рдореЗрд░реЗ Apache2 рд▓реЙрдЧ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ... рдореИрдВ рдХреИрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ REMOTE_USER
/ HTTP_REMOTE_USER
рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЪрд░рдг рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЖрдЬрд╝рдорд╛ рд╕рдХрддрд╛ рд╣реВрдБ?
zammad.example.com:443 10.1.4.197 - - [09/Aug/2018:09:39:23 -0500] "GET /auth/sso HTTP/1.1" 401 855 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
zammad.example.com:443 10.1.4.197 - [email protected] [09/Aug/2018:09:39:23 -0500] "GET /auth/sso HTTP/1.1" 302 969 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
zammad.example.com:443 10.1.4.197 - - [09/Aug/2018:09:39:23 -0500] "GET / HTTP/1.1" 200 1757 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
zammad.example.com:443 10.1.4.197 - - [09/Aug/2018:09:39:23 -0500] "POST /api/v1/signshow HTTP/1.1" 200 15874 "https://zammad.example.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
zammad.example.com:443 10.1.4.197 - - [09/Aug/2018:09:39:24 -0500] "GET /api/v1/translations/lang/en-us?_=1533825563736 HTTP/1.1" 200 720 "https://zammad.example.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
zammad.example.com:443 10.1.4.197 - - [09/Aug/2018:09:39:24 -0500] "GET /assets/images/fed16b83d2e87ea36cea961d6d8a2101.png HTTP/1.1" 304 210 "https://zammad.example.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
рдирдорд╕реНрддреЗ,
рдореЗрд░реЗ рдкрд╛рд╕ @ jeremyj563 рдЬреИрд╕реА рд╣реА рддреНрд░реБрдЯрд┐ рд╣реИред
рдХреНрдпрд╛ рдПрд╕рдПрд╕рдУ рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ?
рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдореБрдЭреЗ рдПрд╕рдПрд╕рдУ рдореЗрдВ рднреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред
рдпрд╣ SSO рдХреЗ рд▓рд┐рдП Azure AD рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ред
рд╣рдо рднреА рдмрд╣реБрдд рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпреВрдиреАрд╡реЗрд╢рди рдЯреЗрд╕реНрдЯ рдРрдк рд╕реЗрдВрдЯрд░ рдореЗрдВ рдРрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВред
рдЖрдкрдХреЛ рдмрджрдирд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ: рдПрдХрд░реВрдкрддрд╛ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ : рд╣рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕ рдпрд╛ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрд╕рдПрд╕рдУ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рд╣реЛрдЧреАред рдпрд╣рд╛рдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рд╕реБрд░рдХреНрд╖рд╛ рднреЗрджреНрдпрддрд╛ рд╣реИред рдпрд╣ рднреЗрджреНрдпрддрд╛ рдПрд╕рдПрд╕рдУ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдП рдЧрдП рд╕рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдиреА рд░рд╣реЗрдЧреАред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЧреИрд░-рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП рдПрд╕рдПрд╕рдУ рд╕рддреНрд░ рдХреЛ рд▓реЗрдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдЬрд╝рдореНрдордж рд╕рдВрджрд░реНрдн рдореЗрдВ)ред
рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рддрдХ SSO рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдкреБрд░рдЬрд╝реЛрд░ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрд╕рдПрд╕рдУ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рд╕рд┐рдВрдЧрд▓ рд╕рд╛рдЗрди-рдСрди рдЕрдВрддрдд: develop
рдЧрдпрд╛ рд╣реИ, @rue рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдХреБрдЫ рд╣реА рд╣рдлреНрддреЛрдВ рдореЗрдВ рдЖрдЧрд╛рдореА 3.2 рд░рд┐рд▓реАрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ develop
рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЬрд╝рдорд╛рдж рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЕрджреНрдпрддрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИред рд╣рдо рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк SSO рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдирдП Zammad (рдкрд░реАрдХреНрд╖рдг) рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@MrGeneration рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдЦрд╛рд▓реА рд╕рдордп рд╕реНрд▓реЙрдЯ рдореЗрдВ SSO рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдПрдХ рдЕрдиреБрд╡рд░реНрддреА рдерд╛ред рдХреГрдкрдпрд╛ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдмрдирд╛рдиреЗ рдореЗрдВ рдХреБрдЫ рдмрд╛рдзрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ https://github.com/zammad/zammad-admin-documentation рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХреА рдЕрддреНрдпрдзрд┐рдХ рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдПрдкреАрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯ /auth/sso
ред рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдореМрдЬреВрдж рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА login
рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА:
REMOTE_USER
HTTP_REMOTE_USER
X-Forwarded-User
рдореБрдЭреЗ рдмрддрд╛рдпреЗ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рднреА рд╕рд╡рд╛рд▓ рд╣реИред рдореБрдЭреЗ рдЙрдирдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред
рдЕрдм рдмрдВрдж рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП: SSO рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╡рд░реНрддрдорд╛рди рдореЗрдВ QA рдХреЗ рджреМрд░ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИред
https://github.com/zammad/zammad-documentation/pull/147
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рд┐рдВрдЧрд▓ рд╕рд╛рдЗрди-рдСрди рдЕрдВрддрдд:
develop
рдЧрдпрд╛ рд╣реИ, @rue рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдХреБрдЫ рд╣реА рд╣рдлреНрддреЛрдВ рдореЗрдВ рдЖрдЧрд╛рдореА 3.2 рд░рд┐рд▓реАрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐develop
рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЬрд╝рдорд╛рдж рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЕрджреНрдпрддрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИред рд╣рдо рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк SSO рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдирдП Zammad (рдкрд░реАрдХреНрд╖рдг) рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред@MrGeneration рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдЦрд╛рд▓реА рд╕рдордп рд╕реНрд▓реЙрдЯ рдореЗрдВ SSO рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?