web-dev-qa-db-ja.com

Shibboleth環境変数をApache経由でTomcatに転送する

ApacheWebサーバーとTomcatアプリケーションサーバーでShibbolethv2.3を使用しています。 mod_proxy.soを使用してリバースプロキシとしてApacheを使用しています。 Shibboleth環境変数をApacheからTomcatに転送できません。ヘッダーの属性を転送することはできますが、wikiですでに述べたように、このアプローチは安全ではありません。次のディレクティブで環境変数を転送しようとしました。

SetEnv AJP_username $ {username}

次に、Java側で:request.getAttribute( "username");によって属性にアクセスできます。ここで奇妙なことは、Shibbolethによって設定された値の代わりに異なる値を取得することです。その結果、Windowsアカウント名が取得されます。他の属性名を使用すると、null値が取得されます。

私はたくさん検索し、オプションを使い果たしました。正しい解決策に向けて私を導いてください。

私のセットアップの詳細:

  1. シボレスバージョン:2.3
  2. OS:Windows XP SP3
  3. Webサーバー:Apache 2.2
  4. アプリケーションサーバー:Tomcat 6
  5. プロキシモジュール:mod_proxy.so
2

Httpd.confでajpを使用してプロキシしていることを確認してください

ProxyPass /example ajp://example.org/example

そして、ApplicationDefaultsセクションのshibboleth2.xmlに追加する必要があります

attributePrefix="AJP_"

だからそれは次のように見えます

<ApplicationDefaults id="default" policyId="default"
    entityID="https://idp.example.org"
    REMOTE_USER="eppn persistent-id targeted-id"
    signing="false" encryption="false" attributePrefix="AJP_">

Shibメーリングリストでこの質問をチェックしてください: http://groups.google.com/group/shibboleth-users/browse_thread/thread/2bdd3e272baf49a2?pli=1

2
Josh