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
私は自分の問題を解決しましたが、それは最終的に私のApache構成とはまったく関係がありませんでした。したがって、同じ問題に対する答えを探しているこのトピックを見つけた場合は、以下の解決策のいずれかで修正する必要があります。
構成WSGI:
WSGIPAssAuthorization On
Config .htaccess:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
これらの両方をhttpd/conf.d /project.confファイルに入れることができます。
開発者が明示的にこれを有効にしない限り、いくつかのモジュールは、スクリプトがユーザー名、パスワードなどを参照できないようにすることでセキュリティを強化しようとするために、Authorizationヘッダーを取り除きます。これらのモジュールの多くは、.htaccessに次の行を追加するだけでこのヘッダーを許可します。CGIPassAuth on
(ソース: Apache docs および StackOverflow )