Webクライアントからのアクセス権いろいろ
Webクライアントからのアクセスを制御したい場合に、何をどう設定するんだー!というのをまとめてみました。
間違いがある可能性大きいですが。
- nsfファイルを開く際に認証したい
■やりたいこと
WebからアクセスしたときもDBに設定してあるACLの内容を反映させたい。
ドミノディレクトリに登録されてない利用者には全然使わせない。
■方法
目的のDBのACLに「Anonymous」エントリを追加して、アクセス権を「なし」にする。
「-Default-」のアクセス権も「なし」にする。
登録されていない利用者にも見せるだけならOKであれば、「Anonymous」を「読者」とか。
■補足
サーバ文書の[インターネット]−[Domino Web Engine]の「HTTPセッション」の設定次第で認証方法が違ってきます。
「無効」だと基本認証、「単一サーバ」か「複数サーバ」だとセッション認証って認証方法になるみたい。
更に、サーバ文書の[セキュリティ]の「Webサーバー認証」の設定次第で、どんな名前を使ってログインできるかが違ってくるようです。
→システム管理ヘルプの「Web クライアントの認証レベルを制御する」参照。
■補足2−「You are not authorized to perform this operation [/DB名.nsf]」って?
アクセス権のあるユーザでアクセスしていて、普通にwebから使えてるのに、サーバコンソールには
You are not authorized to perform this operation [/DB名.nsf]
って記録されているのは何故?
↓
アクセスしてるユーザが、そのDBのACLの「詳細」で設定してる「Webユーザによるアクセスの上限」のアクセス権以上の権限を持っている場合、このエラーが記録されるような感じです。
「Webユーザによるアクセスの上限」が「編集者」なのに、アクセスしてるユーザのACL上の権限は「管理者」だったりした場合。
- htmlファイルにアクセスするときにも認証したい
■やりたいこと
データディレクトリの\dominoフォルダ以下に置いた普通のhtmlファイル(とかcgiファイル)にアクセスするときにユーザ名、パスワードを入力させて、ドミノディレクトリに登録されてるユーザにしかアクセスさせないようにしたい。
■方法
- サーバ文書の[ポート]−[インターネットポート]の設定で、TCP/IPの認証オプションの「匿名」の欄を「いいえ」にして匿名アクセスを不可にする。
- サーバ文書のアクションボタンの[Web]−[領域の作成]を選択してWeb領域を作成。
→システム管理ヘルプの「Web 領域を作成する」参照。
- 「パス」のところは、システム管理ヘルプには「ドミノ サーバーのデータディレクトリからの相対パスで指定します。」って書いてあるので、この場合は「domino\」を入力(フルパスでも問題なく動いてるっぽい気がしますが)。
- 「アクセスが拒否されたときに返される領域」には、認証ダイアログに表示させる用の適当な文字列を入力。(「Password Area」とか)
- 文書を保存して、コンソールから「tell http restart」を入力してhttpタスクを再起動。
■補足
- 領域を作らないと、ファイルが入ってるディレクトリを読みに行く毎に名前とパスワード聞かれます。
画像とかを別フォルダに入れたhtml作っていると、htmlファイルの読み出し+画像フォルダの読み出しで2回ユーザ名とパスワード聞かれたり。
領域を作っておけば、その領域で設定したパス(とそのサブフォルダ)内のファイルは、キャッシュされたユーザ名とパスワードで読み出せるようです。
- 上記の手順で作った文書は、管理クライアントの[設定]タブを開いたときに出てくる左側のナビゲータから[Web]カテゴリを開いて、「Webサーバーの設定」のビューを開くと出てきます。
■補足2−「User not authenticated [/DB名.nsf]」って?
認証も通って、Webから普通に画面は表示できてるのに、サーバコンソールには
User not authenticated [/DB名.nsf]
って記録されているのは何故?
↓
原因はわからないのですが、Domlog.nsfを有効にしてアクセスログを見てみると、認証領域にアクセスすると、名前無しの状態で先にファイルをいくつか読みに行ってるみたいで、その分がエラーになってこのログが記録されてるっぽいです。
認証がエラーなのにファイルを表示させてるというわけではないみたいです。
- htmlファイルでもアクセス制御したい
■やりたいこと
上で書いたのとちょっと似てる感じがしますが、ドミノディレクトリに登録されてる利用者の中で更に各ファイルの読み書き実行のアクセス権を制御したいとき。
■方法
- サーバ文書のアクションボタンの[Web]−[ファイル保護の作成]を選択してファイル保護文書を作成。
→システム管理ヘルプの「Web クライアントのアクセスからサーバーのファイルを保護する」参照。
- [基本]タブの「パス」のところは、アクセス制御したいファイルまたはディレクトリ名を指定。
- [アクセス制御]タブから、「アクセス制御リストの設定/変更」ボタンを押して、そのファイルに適用したいアクセス権を設定。
- 文書を保存して、コンソールから「tell http restart」を入力してhttpタスクを再起動。
■補足
- 上記の手順で作った文書は、管理クライアントの[設定]タブを開いたときに出てくる左側のナビゲータから[Web]カテゴリを開いて、「Webサーバーの設定」のビューを開くと出てきます。
- アクセスログ取りたい
■方法
- サーバ文書の[インターネット]−[HTTP]の「ログ書き込み」の項で、ログファイルかDomlog.nsfのどっちか(または両方)を「有効」にする。
→システム管理ヘルプの「ドミノ Web サーバーのログ用テキストファイルの設定」参照。
- 文書を保存して、コンソールから「tell http restart」を入力してhttpタスクを再起動。
Domlog.nsfは特に明示的に作らなくても、「有効」にした時点で勝手に出来るっぽいです。
目次に戻る