0

DMZサーバーでホストされているWebサイト用のカスタム認証プロバイダーを作成しています。このWebサイトは、.NET4.0フレームワークで実行されるKenticoと呼ばれるCMS上に構築されています。Kenticoホスティングサーバーは、DMZActiveDirectoryフォレストにあります。別の内部ActiveDirectoryフォレストがあり、DMZ ADは内部ADと一方向の信頼を持っています(DMZは内部ADを信頼し、内部ADはDMZを信頼しません)。

DMZADユーザーを問題なく認証できます。ただし、内部ADユーザーを認証できる必要もあります。ファイアウォール設定により、内部ADドメインコントローラーへの直接アクセスがブロックされているため、信頼を介して認証要求をDMZADDCに送信する必要があります。

内部ADユーザーを認証しようとすると、認証プロバイダーからDMZ DCに送信されたLDAPクエリが失敗し、「ユーザーが見つかりません」と表示されます。

誰かが以前にこの問題に対処したことがあるかどうか、そしてそれがどのように解決されたか疑問に思います。よろしくお願いします。

4

1 に答える 1

0

一方向の信頼の反対側にいるユーザーを認証するために私が見つけた確実な方法の1つは、advapi32.dllライブラリのLogonUserEx関数を使用することです。LOGON32_LOGON_INTERACTIVEログオンタイプが機能し、LOGON32_LOGON_BATCHが機能しないことは確かです。LogonUserExは、ドメインとユーザー名の両方を個別の引数として受け入れるか、ドメイン引数がnullのユーザー名のUPNを受け入れます。

Kenticoには、すぐに使用できる2つの認証プロバイダーがあります。1つはKentico DBに対する認証用で、もう1つはSystem.Web.SecurityパッケージのActiveDirectoryMembershipProviderを使用してADにログオンするためのものです。そのプロバイダーは、一方向の信頼の反対側にいる誰にもログインできないようです。現在、Kenticoでは、代わりに使用するカスタムプロバイダーを作成することはできませんが、イベントハンドラーを介してカスタム認証を行う必要があります。

Kenticoのドキュメントは、カスタムイベントハンドラーの作成方法に少し弱いです。Kentico 7(Kentico 6の場合とほぼ同じ)のリンクは次のとおりです-http ://bit.ly/13DXrFA。カスタムイベントハンドラーの作成に関するその他の実用的な情報は、Kentico 6の場合のみですが、Kentico 7の場合は正常に機能するはずであり、ここ(http://bit.ly/13DXLEc )にあります。そのリンクからわかるように、ターゲットとするイベントはSecurityEvents.Authenticate.Executeです。

お役に立てば幸いです。

于 2013-01-16T18:45:51.363 に答える