web-dev-qa-db-ja.com

Apacheは「Authorization」ヘッダーを削除します

Apache2.2.15サーバーに少し問題があります。 mod_wsgiを使用してその上でDjangoアプリを実行しています。WSGIPassAuthorization Onをアクティブ化したため、基本認証が正常に機能しました。しかし、最近、APIを保護するためにOAuth2.0を実装しました。 (Implicit Grant)、Apacheは「Authorization:Bearer token」の形式であるため、通過させないと思います。「Bearer」は、それを回避する方法がわかりませんが、私が推測する問題です。

私は試した :

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

Httpd.conf、.htaccess(AllowOverride Allを設定した後)、および私の仮想ホスト。何もすることはありません、動作しません。私は一日中インターネットをクロールしましたが、これら2つの解決策以外は見つかりませんでした。

前もって感謝します !

編集:

OS : RedHatEL6.4
Apache : 2.2.15
Django: 1.6.6 w/ Django-oauth-toolkit
Python: 2.7.8
12
Martin Latrille

私は自分の問題を解決しましたが、それは最終的に私のApache構成とはまったく関係がありませんでした。したがって、同じ問題に対する答えを探しているこのトピックを見つけた場合は、以下の解決策のいずれかで修正する必要があります。

構成WSGI:

WSGIPAssAuthorization On

Config .htaccess:

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

これらの両方をhttpd/conf.d /project.confファイルに入れることができます。

27
Martin Latrille

開発者が明示的にこれを有効にしない限り、いくつかのモジュールは、スクリプトがユーザー名、パスワードなどを参照できないようにすることでセキュリティを強化しようとするために、Authorizationヘッダーを取り除きます。これらのモジュールの多くは、.htaccessに次の行を追加するだけでこのヘッダーを許可します。CGIPassAuth on(ソース: Apache docs および StackOverflow

7
BeetleJuice