0

Webサイトの認証に問題があります。

イントラネットサイトと同じシングルサインオンを使用する必要があるWebサイトを構築しています。

私のアイデアは、WebサイトでWindows認証を使用してユーザーの資格情報を取得し、LDAPを使用してクライアントのドメインコントローラーに対してそれらを認証することでした。問題のWebサイトは、クライアントのドメイン外のサーバーでホストされています。ActiveDirectoryMembershipProviderを使用してみましたが、統合認証で機能させることができません。

私の問題は、LDAPをメンバーシッププロバイダーとして使用するためのWindows認証を取得できないことです。現時点では、Windows認証はユーザーの資格情報を取得し、コンピューター上のユーザーに対してユーザーの資格情報を認証しようとしますが、Webサーバーがドメイン上にないため失敗します。クレデンシャルを取得し、LDAPを使用してそれらを認証するドメインコントローラーに送信したいと思います。

認証にLDAP接続を使用して統合認証を行う方法はありますか?

4

1 に答える 1

2

更新しました

Webサイトがクライアントのドメイン外のサーバーでホストされている場合、ユーザー認証を取得することはできません。

クレデンシャルをホストサーバーに送信すると、ドメインサーバーにLocationオブジェクトがあり、 最初にWebサイトをホストしたローカルで指定されたユーザーを検索し、次にlocation(で指定されたDoaminサーバーを検索するためです。優先度を設定することもできますが)

ローカルでユーザーが見つからない場合は、

その後、それらの資格情報を使用してドメインサーバーにリクエストを送信します。

あなたの場合、最初に、通信先のロケーションオブジェクトにそのドメインサーバー名が見つかりません。

例:

 PrincipalContext pr = new PrincipalContext(ContextType.Domain, "corp.local", "dc=corp,dc=local", username, password);

ここで、 Corp.Localは、私のLocationオブジェクトにあるドメイン名であり、ドメインサーバー内の任意のユーザーを編集/更新/削除するための管理者権限を持つそのユーザーのユーザー名とパスワードです。

したがって、プロセス全体が再び実行され、指定されたドメインサーバーがLocationオブジェクトで見つかると、そのドメインと通信してトークンが生成されます。

この場合の唯一の解決策は、すべてのユーザーをクライアントサーバーからドメインサーバーに複製する必要があるか、2つのドメインサーバー間で信頼を確立する必要があることです。

これがあなたが探しているものであることを願っています。

于 2012-09-13T16:17:22.543 に答える