- - PR -
IISへのログインユーザーについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-12-17 15:35
はじめまして基本的な質問で恐縮ですが、
小生、ActiveDirectory環境下で社内イントラでのWebアプリケーションを作成しているものです。 以下の環境でIISへのログインについて質問があります。 ----------------------環境----------------------- サーバー構成 OS: Win2000 Server SP4(Active Directory構築済みで唯一のサーバー) IPAddress: 192.168.1.1 IIS: Ver 5.1 DNS: 192.168.1.1 Domain名: TESTDOMAIN.local Computer名: SERVER1.TESTDOMAIN.local ・DNSサーバーは前方・逆引きともに下記クライアント・自分自身ともに解決済み ・ActiveDirectoryのユーザーとコンピューターにてTESTUSER1@TESTDOMAIN.local(所属するグループはDomain Users)を追加 ・IISのディレクトリーセキュリティーはWindows統合環境 ・IISのアプリケーションルートディレクトリーは ./LOGINTEST ・そのスタートアップページは ./LOGINTEST/main.aspx (このファイルの中でRequest.ServerVariablesの全てのKeyを列挙) クライアント OS: WinXP Ver2002 SP1 Professional IPAddress: 192.168.1.2 DNS: 192.168.1.1 Computer名: CLIENT1.TESTDOMAIN.local IE: Ver 6.0 ・Administrator権限を付与したローカルユーザーTESTUSER1とTESTUSER2を追加 -------------------------------------------------- ここで 1、Client側からTESTUSER2でローカルログイン後、IEでhttp://SERVER1/LOGINTEST/main.aspxを表示 Request.ServerVariablesの"LOGON_USER"には何も入っておりません。 また 2、Client側からTESTUSER1でネットワークログイン後は Request.ServerVariablesの"LOGON_USER"には"TESTDOMAIN/TESTUSER1"が入っています。 ということは 3、Client側からTESTUSER1でローカルログイン後は "LOGON_USER"には何も入っていないとおもいきや"TESTDOMAIN/TESTUSER1"が入っています。 社内イントラなので匿名アクセスは許可させますが、それは"LOGON_USER"の中身をみれば制御できます。 しかしドメインユーザー名とローカルユーザー名が一緒の場合は一度ネットワークにログインしてから使用させたいと思っています。 そうなると、リクエスト側のユーザーがローカルユーザーかドメインユーザーか判断できなくなると思います。 ローカルログインしているにもかかわらずIISはドメインユーザーと判断しているんでしょうか? そもそもWebサーバーだからHttpを使用してのログインユーザー管理は別物と考えたほうがよいのでしょうか? |
|
投稿日時: 2004-12-20 11:16
IIS のヘルプには
> 統合 Windows 認証では、クライアント コンピュータ上にある > 最新の Windows ユーザー情報が使用されます。 とあります。 ここを理解すれば自ずと問題解決できるのではないでしょうか。 ドメイン管理はよく分かりませんが、そもそも ドメインユーザー名とローカルユーザー名が一緒の場合がある というのがあまりよろしくないのでは? 【引用部】 iishelp より [管理] - [サーバーの管理] - [セキュリティ] - [認証] - [認証について] から [統合 Windows 認証] の項目を参照 MS サイト上にも同様の情報あり |
|
投稿日時: 2004-12-20 17:35
いげ太様書き込みありがとうございます。
仰るとおりです。 運用側で管理してもらう必要がありそうです。 Webアプリケーション側では、 Request.ServerVariablesの値と.NETが提供しているセキュリティークラス (詳しくはまだ調べてないのでわかりませんが・・・、あるとおもわれますので) を使用して匿名ユーザーか、ドメインユーザーかを判断させるようにします。 |
|
投稿日時: 2004-12-21 08:36
1、CLIENT1\TESTUSER2でログイン→LOGON_USER=(null)
2、TESTDOMAIN\TESTUSER1でログイン→LOGON_USER="TESTDOMAIN/TESTUSER1" 3、CLIENT1\TESTUSER1でログイン→LOGON_USER="TESTDOMAIN/TESTUSER1" CLIENT1\TESTUSER1と、TESTDOMAIN\TESTUSER1のパスワードが同一で、 3の場合、暗黙的にTESTDOMAINに認証しているのでは? |
|
投稿日時: 2004-12-21 11:42
なな様書き込みありがとうございます。
実験しました。 IISの匿名アクセス許可がキーとなるようです。 以下実験結果 ・IIS匿名アクセス許可 ドメインユーザーなしでローカルユーザーあり ローカルログイン: NULL ドメインログイン: 不可 ドメインユーザーありでローカルユーザーなし ローカルログイン: 不可 ドメインログイン: NULL ドメインユーザー(=パスワードB)ありでローカルユーザー(=パスワードA)あり[パスワードが違う] パスワードAのローカルログイン: NULL パスワードAのドメインログイン: 不可 パスワードBのローカルログイン: 不可 パスワードBのドメインログイン: NULL ドメインユーザーありでローカルユーザーあり[パスワードも同じ] ローカルログイン: NULL ドメインログイン: NULL ・IIS匿名アクセス不許可 ドメインユーザーなしでローカルユーザーあり ローカルログイン: 認証用ダイアログ出現 ドメインログイン: 不可 ドメインユーザーありでローカルユーザーなし ローカルログイン: 不可 ドメインログイン: ドメインユーザーとして認識 ドメインユーザー(=パスワードB)ありでローカルユーザー(=パスワードA)あり[パスワードが違う] パスワードAのローカルログイン: 認証用ダイアログ出現 パスワードAのドメインログイン: 不可 パスワードBのローカルログイン: 不可 パスワードBのドメインログイン: ドメインユーザーとして認識 ドメインユーザーありでローカルユーザーあり[パスワードも同じ] ローカルログイン: ドメインユーザーとして認識 ドメインログイン: ドメインユーザーとして認識 どうやら、匿名アクセスを許可するとIUSR_マシーン名がログインユーザーとして 使用されるようです。ファイル単位で設定できるようなのでなんとかなりそうです。 ただ、匿名ユーザーかドメインユーザーかの識別は必要なのでいずれにしろ 認証ダイアログへのユーザーの入力作業は発生してしまうと思われます。 |
|
投稿日時: 2004-12-21 13:02
数点、確認させてください。
Q1.NULLや不可は、どのような状況のことを表しているのでしょうか? Q2.どのような設定・動作が希望なのでしょうか? # 下記のとおりと思っていますが... # ・匿名アクセスは不許可 # ・ドメインユーザでログオンしている場合は、ポップアップなしで認証 # ・ローカルユーザでログオンしている場合は、ポップアップありで認証 # ・認証したユーザ名を、Webアプリケーションで取得したい |
|
投稿日時: 2004-12-21 15:25
はい。
Q1について NULLとは前述のRequest.ServerVariablesの"LOGON_USER"の中身を指します。 不可とはローカル又はドメインログインできないとういことを指します。 Q2について 背景:現状はネットワークといってもワークグループ管理されているだけの もので各Webアプリケーションは各自のDBのUser情報を基に業務の権限等を 付与しています。つまり、ログイン画面でユーザー名とパスワードを入力後 DBへ問い合わせをしてその権限によってビジネスルールに沿った制御をさせています。 要求:客先の指針によりActiveDirectoryを導入することでユーザーの一元管理 をさせたいということ 影響:それにともないDBの変更はもちろんのこと、ログイン時、ログイン後の ユーザーの認証がWebアプリ側でも必要になり現在調査をしているところです。 ># 下記のとおりと思っていますが... ># ・匿名アクセスは不許可 ># ・ドメインユーザでログオンしている場合は、ポップアップなしで認証 ># ・ローカルユーザでログオンしている場合は、ポップアップありで認証 ># ・認証したユーザ名を、Webアプリケーションで取得したい 当初は匿名アクセスは許可を希望しておりました。あとは仰せの通りです。 Webサーバーは匿名を許可してしまえば誰であろうと匿名ユーザーでログイン させるんだということを自分ではこの件で理解しました。(間違っていればご指摘ください。) なので現在では匿名アクセスは不許可で実装させるつもりです。 |
1