/etc/Apache2/httpd.conf
には次のものがあります。
Include /private/etc/Apache2/passenger_pane_vhosts/*.conf
/etc/Apache2/passenger_pane_vhosts/my_site.conf
には次のものがあります。
LoadModule auth_cas_module /usr/libexec/Apache2/mod_auth_cas.so
CASCookiePath /tmp/mod_auth_cas/
CASVersion 2
CASDebug on
CASValidateServer off
CASAllowWildcardCert on
CASTimeout 86400
CASIdleTimeout 7200
CASLoginURL https://cas.mycompany.com/cas/login
CASValidateURL https://cas.mycompany.com/cas/serviceValidate
CASCookieDomain hattip-dev.mitre.org
LogLevel debug
<VirtualHost *:80>
LogLevel debug
ServerName hattip.local
DocumentRoot "/path/to/Rails_app/public"
RailsEnv development
<Location />
AuthType CAS
AuthName "MyCompany CAS"
CASAuthNHeader MOD_AUTH_CAS_USER
require valid-user
</Location>
<directory "/path/to/Rails_app/public">
Order allow,deny
Allow from all
</directory>
</VirtualHost>
Apacheは正常に起動しますが、私のRailsアプリケーションへのすべてのリクエストは、CASサーバーにリダイレクトせずに403を返します。CASDebug
であっても、ログにCAS関連の情報はありません。はon
であり、LogLevel
はdebug
です。
PS:mod_auth_cas
宣言を<VirtualHost>
定義内に配置するなど、上記の構成のいくつかのバリエーションを試しましたが、ほとんどは起動時に失敗します。また、<Location>
ブロックを削除し、その認証を<Directory>
ブロックに移動してみました。変更はありません。
mod_auth_cas
を取得して実際にCASサーバーにリダイレクトする方法を知っている人はいますか?
(から移動 StackOverflow )
とった。答えは、<Location>
ブロックと<Directory>
ブロックを組み合わせて、Satisfy
ディレクティブを追加することでした。
LoadModule auth_cas_module /usr/libexec/Apache2/mod_auth_cas.so
CASCookiePath /tmp/mod_auth_cas/
CASVersion 2
CASDebug on
CASValidateServer off
CASAllowWildcardCert on
CASTimeout 86400
CASIdleTimeout 7200
LogLevel debug
<VirtualHost *:80>
CASCookieDomain "myapp"
CASLoginURL "https://cas.mycompany.com/cas/login"
CASValidateURL "https://cas.mycompany.com/cas/serviceValidate"
LogLevel debug
ServerName "myapp"
DocumentRoot "/path/to/Rails_app/public"
RailsEnv development
<Location />
Order deny,allow
Deny from all
AuthType CAS
AuthName "MyCompany CAS"
require valid-user
Satisfy Any
</Location>
</VirtualHost>