次の方法で共有


ASPを使用したADSIの認証の問題

イントラネットの構成によっては、ADSIコードがASPページから実行されるときに認証の問題が発生することがあります。

ドメインコントローラーにアクセスするための認証は、委任を使用して行うことができます。 委任は、サービスがユーザーとして機能することを許可するため、そのユーザー資格情報を使用してネットワークリソースにアクセスできます。 イントラネットがこの構成に従っている場合は、委任を使用するようにIISを設定する必要があります。 IIS認証メカニズムを匿名またはNTLMに設定します。 匿名を選択した場合、セキュリティコンテキストはIUSR_MACHINEアカウントにマップされます。 NTLMを選択した場合、Webサイトにログオンするユーザーに応じて、セキュリティコンテキストが変更されます。

NTチャレンジ/応答を使用するIISサーバー、またはKerberosをサポートしていないブラウザークライアントを使用している場合、ダブルホップ認証はサポートされていません。 ダブルホップ認証とは、ユーザーの資格情報がブラウザークライアントからIISサーバーに渡され、IISサーバーがその資格情報をバックエンドサーバーに渡すことを意味します。 この状況では、次のいずれかのソリューションを使用して、ASPページからディレクトリへのアクセスを許可できます。

  • IADsOpenDSObject :: OpenDSObjectまたはADsOpenObjectを使用して、Active Directoryに資格情報を渡します。 Webページは、IISサーバーに対して接続されているユーザーを認証します。 ユーザーが認証されると、WebページはOpenDSObjectまたはADsOpenObjectを使用して、ユーザー名とパスワードをディレクトリサービスに渡し、バックエンドサーバーへの認証を取得できます。 その後、Webページはディレクトリからデータにアクセスできます。
  • COMオブジェクトにコードを追加し、このオブジェクトをCOM+アプリケーション (以前はMTSパッケージと呼ばれていました) に配置します。 その後、COM+アプリケーションをドメインユーザーアカウントとして実行できます。
  • 複数のASPページを使用します。1つのページはクライアントを認証し、別のページはドメインユーザーアカウントで匿名認証を使用してディレクトリに資格情報を渡します。

これらの方法では、webクライアントを認証し、ディレクトリに接続するときに資格情報を変更する必要があります。これは、同じ資格情報を使用してダブルホップ認証を行うことができないためです。