- - PR -
IISサーバとDBサーバが異なる時のアクセス
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-01-14 15:13
現在、WIN2000サーバ+IIS 5で、別にあるWIN2000サーバ+SQL Server2000のデータを表示するWEBアプリケーションを作成しています
イントラ専用という事で、ユーザーID・パスワードの入力はさせずに、ドメインのWINDOWSユーザーであれば閲覧可というものにしたいと思っています ところが、SQL Serverに接続しようとしたところ、「ユーザー 'NT AUTHORITY\ANONYMOUS LOGON' はログインできませんでした」となってしまいます --現在の設定-- IISは、匿名をオフ 統合WINDOWS認証にチェックとしています web.configには <authentication mode="Windows" /> <identity impersonate="true" /> とし、且つ <authorization> <deny users="?" /> SQL Serverは現在「統合WINDOWS認証」となっており、対象ユーザーはWINDOWSユーザーとして登録済みです 以下、ソースの一部です Dim cnString As String = "Data Source=SQLSV;Initial Catalog=Market;security=SSPI;trusted_connection=true" Dim cnMarket As SqlClient.SqlConnection = New SqlClient.SqlConnection(cnString) 何か根本的に間違っているのか、或いは設定もれなのか、是非ご教授ください | ||||
|
投稿日時: 2003-01-20 17:16
IIS5.0が起動されているほうのWIN2000サーバーでコンピュータの管理のユーザを
チェックするとASPNETというユーザがいませんか? SQL Serverと接続するユーザはこのユーザになりますので、SQL Server側にこの ASPNETというユーザを登録もしくは、ドメインユーザとしてASPNETを登録してみて ください。 | ||||
|
投稿日時: 2003-01-21 17:54
RESありがとうございます
基本的な事なのですが、<identity impersonate="true" />とする事は、「ASPNET」をドメインユーザー(例えば、「domain名\Metal Jack」)としてSQL Serverに接続しに行くのではないという事なのでしょうか? 勉強不足で申し訳ありませんが、ご教授下さい | ||||
|
投稿日時: 2003-01-21 18:48
METAL JACKさんがやりたいことを実現するには、Kerberosが必要です。IISとSQL Serverのマシンが両方ともActive Directoryドメインにいて、ユーザーも同じドメインにいる場合にのみ機能します。
この条件が満たされている場合は、IISのマシンを「委任に対して信頼」しなければなりません。Active Directoryでは、ユーザーのTGTはデフォルトでFORWARDABLEですので、ユーザーに関しては特に何かする必要はありません。これらはセキュリティ上好ましい設定ではないので、これらの意味がわからないようならやらないほうがいいでしょう。
そうです。ただしMETAL JACKさんの構成ではユーザーのチケットがSQL Serverの2ホップ先に存在するため、デフォルトではそのチケットは使えないのです。デフォルトで許可されない理由は、これが自動で行われてしまうようだと、IISのマシンがMETAL JACKさんをかたって、勝手にほうぼうに悪さをする可能性が考えられるからです。 Kerberosや委任についてご興味があって、お手元に資料がないようでしたら、拙著で恐縮ですがここから始まるシリーズで簡単な解説をしています。 | ||||
|
投稿日時: 2003-01-22 11:09
ありがとうございます
当方は、現在Active Directory環境では無い為、認証方法を再度検討しようと思います。 (そろそろ、真剣にActive Directoryへの移行を検討しなければいけないと思いつつ、なかなか手が出せません・・・) |
1