0

IIS7 で asp .net Web サービスを実行しています。後者は Windows 2008 R2 サーバーで実行されています。IIS7/Web サービスは、asp .net 偽装用に構成されています。ワーカー プロセスの所有者は NETWORK SERVICE に設定されます。

Web サービスは、サーバー上の自分のドメイン アカウントで偽装された sqlplus.exe を呼び出します。タスクマネージャーで確認できます。ただし、sqlplus を開始すると、oracle はユーザー名/パスワードが間違っていると言います。

sqlplus.exe は次のように開始されます: sqlplu.exe / 。ユーザーアカウントでサーバーに手動でログオンし、上記のステートメントを入力すると、これはうまく機能します。すべてがうまく機能します

4

1 に答える 1

3

ここで「ダブルホップ」の問題に遭遇していると思います。

最初のホップは、クライアントのコンピューターから Web サーバーへの偽装を使用しています。2 番目のホップは、Web サーバーからデータベース サーバーへのホップであり、同じ資格情報をデータベースに渡そうとしています。

手動でログオンして sqlplus ステートメントを実行すると、Web サーバーからデータベース サーバーへのホップは 1 つだけになります。

以下、MSDNより引用。クライアントから Web サーバーへの基本認証の使用が推奨されていることに注意してください。

ASPX ページが IIS サーバーとは異なるサーバーにあるリソースを使用しようとすると、ダブル ホップの問題が発生します。この場合、最初の "ホップ" は Web ブラウザー クライアントから IIS ASPX ページです。2 番目のホップは Active Directory です。Active Directory にはプライマリ トークンが必要です。したがって、IIS サーバーは、クライアントがプライマリ トークンを Active Directory に渡すためのパスワードを知っている必要があります。IIS サーバーにセカンダリ トークンがある場合は、NTAUTHORITY\ANONYMOUS アカウントの資格情報が使用されます。このアカウントはドメイン アカウントではなく、Active Directory へのアクセスが非常に制限されています。

セカンダリ トークンを使用したダブル ホップは、たとえば、ブラウザー クライアントが NTLM 認証を使用して IIS ASPX ページに対して認証される場合に発生します。この例では、NTLM を使用した結果として、IIS サーバーにハッシュ化されたバージョンのパスワードがあります。IIS が方向転換して資格情報を Active Directory に渡す場合、IIS はハッシュされたパスワードを渡しています。Active Directory はパスワードを検証できないため、認証に NTAUTHORITY\ANONYMOUS LOGON を使用します。

ブラウザー クライアントが IIS ASPX ページへの認証に基本認証を使用している場合、IIS サーバーはクライアント パスワードを持っており、プライマリ トークンを作成して Active Directory に渡すことができます。Active Directory はパスワードを検証し、ドメイン ユーザーを認証できます。

http://msdn.microsoft.com/en-us/library/ms817871.aspx

于 2010-02-17T02:08:06.763 に答える