ユーザーが自分のドメインのGoogleアプリにのみログインすることを許可したい。 このGoogleヘルプページ で説明されているように、HTTPヘッダーX-GoogApps-Allowed-Domains
を追加して解決策を見つけました。
私はSquidを使用していますが、これを行うようにSquidを構成する方法がわかりません。 Squidを使用してこのリクエストヘッダーを追加するにはどうすればよいですか?
コマンド「request_header_add」をサポートする新しいSquid 3.3でできますか?私はそれをするためにCentOSを使いました。
私のSquid.confは:
acl CONNECT method CONNECT
visible_hostname MySERVER.local
acl local src 192.168.0.0/24
http_access allow local
ssl_bump client-first all
always_direct allow all
http_port 3128 ssl_bump generate-Host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/usr/local/squid/etc/cert.pem
request_header_add X-GoogApps-Allowed-Domains "mycompany.com" all
cache_dir ufs /usr/local/squid/var/cache 8192 32 256
SSL証明書の場合、openSSLで生成する必要がありますか?
openssl req -new -newkey rsa:1024 -days 36500 -nodes -x509 -keyout /usr/local/squid/etc/cert.pem -out /usr/local/squid/etc/cert.pem
ユーザーがブラウザーでエラーを表示できない場合は、これを各コンピューターで信頼されたルートとしてインストールするか、Active Directoryに追加します(Googleがこれに役立つ場合があります)。
openssl x509 -in /usr/local/squid/etc/cert.pem -outform DER -out /usr/local/squid/etc/cert.der
イカを使用すると、次のことができます。
そのため、WebプロキシとICAPサーバーを組み合わせてこれを行うことができます。 ICAPのSquid ProxyとGreasySpoonに最も精通しています。 Squid v3.2.1とGreasySpoon 1.0.8を使用しています。
とにかく、標準のキャッシュとして機能するようにSquidを構成します。次に設定例を示します。適切なSquid設定の詳細については、そこにある広範なドキュメントをチェックしてください。この質問で気になるセクションは# ICAP Configurations
下部にあります。
cache_effective_user squid
cache_effective_group squid
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 81 # http - public
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # Gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny blocksites
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128 transparent
# Leave coredumps in the first cache dir
core dump_dir /var/cache/squid
# ICAP Configurations
icap_enable on
icap_preview_enable on
icap_service service_req reqmod_precache bypass=0 icap://127.0.0.1:1344/reqmod
adaptation_access service_req allow all
icap_service service_resp respmod_precache bypass=0 icap://127.0.0.1:1344/respmod
adaptation_access service_resp allow all
私が使用したICAPサーバーは、squidプロキシと同じホスト上にあったため、127.0.0.1を使用したことに注意してください。プロキシとICAPが異なるホスト上にある場合は、ループバックを他のサーバーのIPまたはサーバー名に交換してください。
これは簡単な部分です。
繰り返しになりますが、私は今では使用されなくなった「Greasy Spoon」ICAPサーバーを使用しています。私はそれが非常に簡単であることがわかり、最小限の頭痛で私が望んだことをしました。また、他のオプションも利用できますが、Javaプラグイン機能を使用します。
GreasySpoonの場合、HTTPリクエストをターゲットとする小さなJava JavaScriptではありませんが、多くのICAPサーバーで可能です)を作成し、必要なヘッダーを追加しました(先頭のコメントに注意してください) GSサーバーにメタデータを提供します。おそらく他の人には必要ありません):
//-------------------------------------------------------------------
// ==ServerScript==
// @name Add_Header
// @status on
// @description
// @include .*
// @exclude
// @order 0
// ==/ServerScript==
// --------------------------------------------------------------------
public void main(HttpMessage httpMessage){
// Add the "my-header" header with a value of "test.server.com"
httpMessage.addHeader("my-header", "test.server.com");
}
これにより、my-headerヘッダー要素がすべてのリクエストに追加されます。
Squidを使用してカスタムヘッダーを追加することは非常に困難です。私は試しましたが失敗しましたが、次の方法を使用して消費者アカウントをブロックする別の解決策を見つけました:
小さな組織では、Burpプロキシの方が優れていると思います。これが現在使用されているものです。
どうやらICAPで行うことができます
サーバー: http://icap-server.sourceforge.net/irml.html
クライアントはsquid3にあります: http://ftp.meisei-u.ac.jp/mirror/squid/squid-3.0-RELEASENOTES.html#ss4.1
上からの設定:(squid.conf)
icap_enable on
icap_service service_req reqmod_precache 1 icap://127.0.0.1:1344/request
icap_service service_resp respmod_precache 0 icap://127.0.0.1:1344/response
icap_class class_req service_req
icap_class class_resp service_resp
icap_access class_req allow all
icap_access class_resp allow all
次に、宛先ドメインに基づいてヘッダーを変更するかどうかを決定するようにサーバーを構成します。
????+
利益?これを行うルールの書き方を理解できません。たぶん、もっと運がいいでしょう。