Google グループは Usenet の新規の投稿と購読のサポートを終了しました。過去のコンテンツは引き続き閲覧できます。
表示しない

複数のアクセス制御

閲覧: 0 回
最初の未読メッセージにスキップ

j...@nih.go.jp

未読、
2003/09/16 6:14:442003/09/16
To:
あるディレクトリに対して

<Directory "/usr/local/apache/somewhere">
Options All
Order allow,deny
Allow from hostA
</Directory>

という制御を行っているのですが、同じディレクトリにホストBがアク
セスしてきた時にはパスワードを要求する、というような制御は出来る
のでしょうか?

--
石川 淳 国立感染症研究所
(Jun Ishikawa) 生物活性物質部第四室
j...@nih.go.jp (旧遺伝生化学室)
Tel. 03-5285-1111 Fax 03-5285-1272
http://nocardia.nih.go.jp/
I hate damn sequences!


Yasushi Shinjo

未読、
2003/09/16 11:58:002003/09/16
To:
新城@筑波大学情報です。こんにちは。

In article <JUN.03Se...@watson.nih.go.jp>


j...@nih.go.jp writes:
> あるディレクトリに対して
> <Directory "/usr/local/apache/somewhere">
> Options All
> Order allow,deny
> Allow from hostA
> </Directory>
> という制御を行っているのですが、同じディレクトリにホストBがアク
> セスしてきた時にはパスワードを要求する、というような制御は出来る
> のでしょうか?

httpd は、Apache ですよね。一応、この間同じことをシンボリッ
ク・リンクを張ってごまかしてやりました。

ln -s /usr/local/apache/somewhere /usr/local/apache/somewhere2

で、後は、<Directory "/usr/local/apache/somewhere2"> に対し
て、パスワードを聞いてくるように設定します。

ただ、なんかもっとスマートにできる方法を発見した気がしたんで
すが、忘れました。気がしただけかもしれません。

今、Apache のドキュメントを見ていたら、こんなものがでてきま
した。

http://httpd.apache.org/docs/howto/auth.html
------------------------------------------------------------
<Directory /usr/local/apache/htdocs/sekrit>
AuthType Basic
AuthName intranet
AuthUserFile /www/passwd/users
AuthGroupFile /www/passwd/groups
Require group customers
Order allow,deny
Allow from internal.com
Satisfy any
</Directory>
------------------------------------------------------------
この Satisfy any というのが、それっぽいんじゃないですか。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

MAEDA Atusi

未読、
2003/09/16 14:25:212003/09/16
To:
y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes:

> この Satisfy any というのが、それっぽいんじゃないですか。

Satisfy any や Satisfy all は確かにor条件,and条件ですが,入れ子にでき
ないんですよね…

石川さんがやりたいのは,

hostA または (hostB かつ パスワード)

なわけですが,

<Directory dir>
hostAなら許可
</Directory>

<Directory dir>
hostBなら許可
パスワードで許可
Satisfy all
</Directory>

と書いても,

<Directory dir>
hostAなら許可
hostBなら許可
パスワードで許可
Satisfy all
</Directory>

とみなされてしまって,意図どおりになりません.

新城さんが書いたシンボリックリンクのトリックを使って,

<Directory realname>
hostAなら許可
</Directory>

<Directory alias>
hostBなら許可
パスワード)なら許可
Satisfy all
</Directory>

と書くとほぼ意図どおりのアクセス制御が出来ますが,hostAからとアクセス
する場合とhostBからの場合で,URLを変える必要がありますね.

もし,

<Directory foo>
<Satisfy Any>
<ClientMatch>hostA</ClientMatch>
<Satisfy All>
<ClientMatch>hostB</ClientMatch>
<Auth type=basic userfile=... require=valid-user />
</Satisfy>
</Satisfy>
</Directory>

とか書けると分かりやすいんでしょうけどねえ.

前田敦司

j...@nih.go.jp

未読、
2003/09/16 22:09:362003/09/16
To:
In article <YAS.03Se...@kirk.is.tsukuba.ac.jp> y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes:

> httpd は、Apache ですよね。一応、この間同じことをシンボリッ
> ク・リンクを張ってごまかしてやりました。

シンボリックリンクを使う方法は思いついたのですが、
前田さんが<m34qzcr...@maedapc.cc.tsukuba.ac.jp>ご指摘のよう
に、URLが変わってしまいます。apacheのコンフィグレーションででき
ないとなると、それ用のCGIを作るとかしないとダメそうですね。そこ
までする気になれないので、シンボリックリンクでごまかそうと思いま
す。ありがとうございました。

Masamichi Takatsu

未読、
2003/09/16 22:59:522003/09/16
To:
高津@ドーガです。

記事 <m34qzcr...@maedapc.cc.tsukuba.ac.jp> で
MAEDA Atusiさんは書きました

> 新城さんが書いたシンボリックリンクのトリックを使って,

> <Directory realname>
> hostAなら許可
> </Directory>

> <Directory alias>
> hostBなら許可
> パスワード)なら許可
> Satisfy all
> </Directory>

> と書くとほぼ意図どおりのアクセス制御が出来ますが,hostAからとアクセス
> する場合とhostBからの場合で,URLを変える必要がありますね.

mod_rewrite を使って振り分けてやれば同じURLにできるんじゃないでしょうか。

<Directory realname>
RewriteCond %{REMOTE_HOST} ^hostA$
RewriteRule ^(.*)$ /aliasA/$1
RewriteCond %{REMOTE_HOST} ^hostB$
RewriteRule ^(.*)$ /aliasB/$1
</Directory>

<Directory aliasA>
hostAなら許可
</Directory>

<Directory aliasB>
hostBなら許可
パスワードなら許可
Satisfy all
</Directory>

といった感じで。

PROJECT TEAM DoGA 高津正道 ta...@doga.jp
TBD0...@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
9月17日(水) 今日のマーフィーの法則 [マッキーの法則]
急いでいるときは、車が完全に停止したとたんに信号機は青に変わる。

新着メール 0 件