
Windows AD에 LAMP 서버를 설치하고 통과 인증을 작동시키려고 합니다. 한 가지 문제(내가 만드는 것만큼 큰 문제는 아닐 수 있음), 호스트 이름과 호스팅된 URL이 일치하지 않습니다. LAMP 호스트 이름은 이고 intranethost.mspca.org
, 호스팅된 URL은 다음과 같습니다.https://testintranet.mspca.org
AD는 포리스트/도메인 수준 2012R2입니다.
LAMP는 Apache와 함께 mod_auth_gssapi가 설치된 Debian 11.8입니다. LAMP에는 Samba가 설치되어 있지 않으며 AD 도메인의 구성원이 아닙니다(필요한지 확실하지 않음).
다음을 사용하여 Windows DC에서 keyspan 파일을 만들었습니다.
ktpass -princ HTTPS/[email protected] -mapuser [email protected] -pass ******** -ptype KRB5_NT_PRINCIPAL -out testintranet-spn.keytab
내 영역이 krb5.cnf에 올바르게 추가되었으며 LAMP의 kinit가 멋진 색상으로 전달되었습니다.
Apache conf(다음 튜토리얼을 기반으로 함)https://www.jfcarter.net/%7Ejimc/documents/bugfix/41-auth-kerb.html):
<IfModule !mod_auth_gssapi.c>
LoadModule auth_gssapi_module /usr/lib64/httpd/modules/mod_auth_gssapi.so
</IfModule>
<VirtualHost *:80>
ServerName testintranet.mspca.org
# Redirect permanent / https://testintranet.mspca.org/
</VirtualHost>
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/ssl/certs/star_mspca_org.crt
SSLCertificateKeyFile /etc/ssl/private/star_mspca_org.key
ServerAdmin [email protected]
ServerName testintranet.mspca.org
DocumentRoot /var/www/html/wordpress/
<Directory "/var/www/html/wordpress/">
AllowOverride All
AuthType GSSAPI
AuthName "GSSAPI Single Sign On Login"
GssapiSSLonly On
GssapiAllowedMech krb5
GssapiBasicAuth On
GssapiCredStore keytab:/etc/apache2/testintranet-spn.keytab
GssapiLocalName On
BrowserMatch Windows gssapi-no-negotiate
Require valid-user
GssapiNegotiateOnce on
</Directory>
ErrorLog ${APACHE_LOG_DIR}/wordpress.error.log
CustomLog ${APACHE_LOG_DIR}/wordpress.access.log combined
LogLevel info auth_gssapi:debug ssl:warn
</VirtualHost>
인증 자체는 실제로 작동하지만 사이트에 대한 초기 로그인 프롬프트가 계속 표시됩니다. 현재 로그인된 자격 증명을 세션으로 전달하지 않습니다. 인트라넷 보안 수준 페이지에 대한 GPO에 사이트의 모든 순열(http/s, 짧은 이름, FQDN)을 추가했지만 크롬은 여전히 로그인 대화 상자를 표시합니다. Apache 로그의 '오류'만 항상 도움이 됩니다.NO AUTH DATA Client did not send any authentication headers
OFF로 전환하면 GssapiBasicAuth
대화 상자가 사라지지만 즉시 401 Unauthorized가 표시되므로 승인되지 않은 것 같습니다.견딜 수 없는헤더를 전달하려면...
어떤 제안이 있으십니까?
답변1
이 작은 사람:
BrowserMatch Windows gssapi-no-negotiate
맹세코, 난 봤어요여러 사이트"이 줄이 없으면 Windows 클라이언트가 작동하지 않습니다..."
나는 그 줄을 택했다밖으로, 이제 예상대로 100% 작동합니다. 인증은 현재 로그인된 Windows 사용자로부터(Chrome을 통해 FQDN 내부 호스트로) 정상적으로 전달됩니다.
미래의 Google 검색으로 인해 누군가가 여기로 연결될 경우를 대비해...