1つのリバースプロキシ(SSLオフロードなど)を介してすべてのサイトにリクエストを渡す場合、Shibboleth Service Provider(SP)を1つだけにすることができるのではないかと思います。
それで、私が異なるドメインに次のサイトを持っているとしましょう:
example.org
blog.example.org
wiki.example.org
サイト自体とそれぞれのWebサーバーはすべて独自のVMにあり、外部と直接通信することはできません。別のVMは、リバースプロキシのみを実行します。これらすべてのドメインを使用して、それぞれのVMのWebサーバーにリクエストを渡します。そのリバースプロキシをproxy.example.org
と呼びましょう(アクセス可能なドメイン名ではないことに注意してください)。
ここで、サイトごとにSPを構成する代わりに、proxy.example.org
にのみインストールしたいので、各要求が
example.org/secure
blog.example.org
wiki.example.org
shibboleth認証をトリガーします。認証が成功すると、リクエストが渡されます。それは可能ですか?
このリソースしか見つけられなかったので、私は尋ねています https://wiki.shibboleth.net/confluence/display/SHIB2/SPReverseProxy それだけが言っているので、私は非常に曖昧だと思います
だから私はSPをどこにインストールする必要があるのか本当にわかりません...
はい、可能です。数年前に単一のShibプロキシを構成しました。これが私が当時書いたすべてのドキュメントです(Solarisでのセットアップ、Linuxではいくつかの違いがあるかもしれません)。保護したいアプリケーションを保持するサーバーと、Shibbolethのものといくつかのプロキシルールを備えたプロキシサーバーが必要になります。
shibd -t -c /opt/AAI/etc/shibboleth/shibboleth2.xml
Handler type="Status"
そして最後にACLを削除します。ハンドラーは次のようになります。<Handler type="Status" Location="/Status" />
<ApplicationOverride id="<APP NAME>" entityID="https://<DOMAIN>/shibboleth" />
このスタブをコピーする
NameVirtualHost IPADDR:80
<VirtualHost IPADDR:80>
ServerName DOMAIN
ServerAdmin [email protected]
Redirect / https://DOMAIN/
ErrorLog var/log/aai.error.log
CustomLog var/log/aai.access.log common
</VirtualHost>
<VirtualHost IPADDR:443>
ServerName DOMAIN
ServerAdmin [email protected]
# The Shibboleth handler shall process all HTTPS requests...
<Location />
Order deny,allow
Allow from all
AuthType shibboleth
ShibRequestSetting applicationId APPNAME
ShibUseHeaders On
Require shibboleth
</Location>
# ...but only enforce a Session for the location below.
<Location /secure>
AuthType shibboleth
ShibRequireSession On
ShibRequestSetting applicationId APPNAME
ShibUseHeaders On
Require valid-user
</Location>
SSLEngine On
SSLCertificateFile etc/server.crt
SSLCertificateKeyFile etc/server.key
SSLCertificateChainFile etc/server-ca.crt
SSLProxyEngine on
ProxyRequests off
ProxyPass /secure https://WEBSERVERURL
ProxyPassReverse /secure https://WEBSERVERURL
ProxyPreserveHost On
ErrorLog var/log/APPNAME.error.log
CustomLog var/log/APPNAME.access.log common
</VirtualHost>
APP NAME、WEBSERVER URL、IP ADDR、DOMAINを置き換えます。セットアップのパスも変更する必要があります。
Apacheとshibdを再起動します
楽しい