私はApacheサーバーを介して前面にある開発環境を持っています。このApacheサーバーには、グループアクセスを使用してWebページを表示する、ADバックエンドでのSSLおよびCentrify対応のNTLM認証/承認が必要です。この環境を使用するプロジェクトは複数あるので、仮想ホスティングを設定します。これにより、各プロジェクトが特定のApacheモジュールを使用して独自の仮想ホストを変更できるようになります。 Webファイルは/ var/www/project1にあります;/var/www/project2;等..
* .domainがApacheサーバーを指すようにDNSを適切に構成し、altDNSNameフィールドに* .domainが設定されたワイルドカードSSL証明書を既に設定しています。
問題はNTLM認証部分です。
ブラウザで https://hostname.fqdn/project1/index.html を指定すると、NTLM認証は希望どおりに処理されます。これは私のデフォルトの仮想ホストで実行されると思います。
代わりにブラウザで https://project1.domain/index.html を指定すると、Apacheエラーログに「ユーザーが/index.htmlのNTLM認証に失敗しました。エラー:ログオンに失敗しました。
<VirtualHost ipaddress:443>
Servername "hostname.fqdn"
DocumentRoot "/var/www/"
SSLEngine on
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/cert.key
</VirtualHost>
<VirtualHost ipaddress:443>
ServerName "project1.domain"
DocumentRoot "/var/www/project1"
SSLEngine on
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/cert.key
</VirtualHost>
<Directory "/var/www">
Options Indexes FollowSymLinks
SSLRequireSSL
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/project1">
AuthType CENTRIFYDC
EnableBasicAuth false
EnableKerberosAuth false
EnableNtlmAuth true
Require group required_ad_group
</Directory>
IEとFirefoxの両方でこれを試みましたが、*。domainがIEのローカルイントラネットゾーンにあり、network.automatic-ntlm-auth.trusted-urisおよびnetwork.negotiate-auth.trusted-uris設定はFirefoxで正しく設定されています。
Centrifyディレクティブを削除すると、名前ベースの仮想ホストが期待どおりに機能するため、NTLMの問題に絞り込みました。各仮想ホスト内にDirectoryタグを配置しようとしました。また、Locationタグを使用しようとしましたが、前進することができませんでした。
期待どおりに機能する2つのしっかりと分離されたVirtualHostを作成することから始め、その後、段階的な変更によってハイブリッドの種類に戻ります。
2つのVirtualHostが次のように解決されると思います。
<VirtualHost ipaddress:443>
Servername "hostname.fqdn"
DocumentRoot "/var/www/"
SSLEngine on
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/cert.key
<Directory "/var/www">
Options Indexes FollowSymLinks
SSLRequireSSL
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/project1">
AuthType CENTRIFYDC
EnableBasicAuth false
EnableKerberosAuth false
EnableNtlmAuth true
Require group required_ad_group
</Directory>
</VirtualHost>
<VirtualHost ipaddress:443>
ServerName "project1.domain"
DocumentRoot "/var/www/project1"
SSLEngine on
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/cert.key
<Directory "/var/www/project1">
AuthType CENTRIFYDC
EnableBasicAuth false
EnableKerberosAuth false
EnableNtlmAuth true
Require group required_ad_group
</Directory>
</VirtualHost>
だから私はそのようなものをテストし、次にそれらをお互いのサブディレクトリから移動し、どのディレクティブが競合しているかを確認します
さらに調査したところ、Apacheの構成に問題はありませんでした。ブラウザがNTLMを通過し、Apacheが受信しているように見えますが、Centrifyはそれを適切に検証していません。ここで、内訳がどこにあるかを把握する必要がありますが、それは別のスレッドです。