Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@end0tknr

リバースプロキシで認証したREMOTE_USERを受け側のapacheに渡す

More than 5 years have passed since last update.

http://notebook99.blog87.fc2.com/blog-entry-64.html
↑こちらのurlを参考。というか写経

実現したい構成

以下の様な構成で、リバースプロキシ側で認証されたユーザID ( $ENV{REMOTE_USER} )を裏側?のアプリケーションサーバに渡すことが目的。
※通常、revserse proxy と app servserは、別のプロセスで動作しているので、$ENV{REMOTE_USER} のような環境変数は渡すことができません

┌RV PROXY────────┐                ┌ APP SERVER ────┐
│※AuthType BASIC├>(REMOTE USER)->│※AuthType NONE │
└────────────────┘                └────────────────┘

まずはリバースプロキシ側で、mod_rewrite & mod_headers を利用

以下は、リバースプロキシ側のhttpd.conf抜粋です。
mod_rewrite と mod_headers で環境変数:REMOTE_USERを、アプリケーションサーバへのリクエストhttpヘッダ:X-Forwarded-User に追加できます。

<LocationMatch "/xing_g/">
 AuthType Basic
 AuthName member
 AuthUserFile /home/xing/httpd/.htpasswd
 require valid-user
 ErrorDocument 401 /error/authen-error-xing.html
</LocationMatch>

ProxyRequests Off

<Location /xing_g>
 ProxyPass         http://10.209.15.XXX/XingG/
 ProxyPassReverse  http://10.209.15.XXX/XingG/

 RewriteEngine On
 RewriteCond %{LA-U:REMOTE_USER} (.+)
 RewriteRule . - [E=RU:%1,NS]
 RequestHeader add X-Forwarded-User %{RU}e
</Location>

アプリケーションサーバ側で、 httpヘッダ:X-Forwarded-User を受信

RewriteEngine On
RewriteCond %{REMOTE_USER} $^
RewriteCond %{HTTP:X-Forwarded-User} (.+) [NC]
RewriteRule . - [E=REMOTE_USER:%1,NS]

先程の http://notebook99.blog87.fc2.com/blog-entry-64.html によれば、裏側のapacheのhttpd.confで上記のように記載することで、X-Forwarded-User を REMOTE_USER として受信できるようですが...
次のようなエラーとなり、この方法は採用しませんでした。
( Options FollowSymLinks を追加することで解消するという情報もありましたが、私の環境では効果がありませんでした)

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: ...

アプリケーションサーバ側で、httpヘッダは大文字化等の変換有り

結局、リバースプロキシ側でセットされたHTTPヘッダ: X-Forwarded-User は、バックエンドのapache (mod_perl)で次のような環境変数で受信することにしました。

$ENV{"HTTP_X_FORWARDED_USER"}

perlに限った話かもしれませんが、大文字化、ハイフン(-)はアンダースコア(_)、先頭に「HTTP」の文字列 付加等、ヘッダ名が変更されるみたい

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
end0tknr

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?