1

クラウドにデプロイされ、次の認証シナリオをサポートする必要がある asp.net MVC Web アプリケーションを開発しています。

  1. イントラネット上のドメイン ユーザーの透過的な認証。これらのユーザーは、サインインせずにアプリケーションにアクセスできる必要があります。
  2. インターネット上の任意の非ドメイン ユーザーのフォーム ログイン。これらのユーザーには、フォーム認証を使用してログイン ページを表示する必要があり、メンバーシップはアプリケーションによって内部的に管理されます。
  3. パブリック インターネット上のドメイン ユーザーのフォーム ログイン。非ドメイン ユーザーと同じログイン フォームを使用できる必要がありますが、代わりにドメイン資格情報を使用してサインインします。

パッシブ認証を使用した Active Directory フェデレーション サービス (ADFS) は、ケース #1 と #3 に対応できます。フェデレーション プロバイダーのログイン ページにリダイレクトされるため、2 番目のケースはカバーされません。私のアプリケーションによるアクティブ認証は 3 つのケースすべてをサポートできる可能性があることは理解していますが、これがどのように実装されるかについてのドキュメントはあまりありません。

理想的には、私のアプリケーションが ADFS フェデレーション プロバイダーでドメインのユーザー名とパスワードを認証する方法が必要です。

これが可能かどうかは誰にもわかりません。

4

2 に答える 2

2

これの標準的なパターンは、イントラネット用の IWA とインターネット用の Forms という分割 DNS を持つ ADFS です。

ただし、ADFS は AD に対してのみ認証できるため、オプション 2 は実現できません。

オプション 2 にはIdentityServerを使用することをお勧めします。メンバーシップの「フレーバー」に応じてカスタマイズする必要がある場合があります。その後、ADFS と IdentityServer をフェデレーションします。

IdentityServer は無料/オープン ソースです。

于 2013-04-26T02:05:25.070 に答える
0

nzpcmad の回答を拡張するには、ADFS 管理コンソールの [Trust Relationships] > [Claims Provider Trusts] で、Active Directory 以外の Claims Provider トラストを設定できます。これらは、ADFS をカスタム STS サービスと効果的にチェーンします。

追加したエントリは、ADFS Web サイト内のホーム レルム検出ページに追加されます。これにより、認証ユーザーには、認証対象のクレーム プロバイダーを基本的に選択するためのドロップダウン リストが表示されます。

自動サインインは、Active Directory (ADFS プロバイダー) を選択した内部ユーザーに対して引き続き機能しますが、他のプロバイダーのメンバーは、選択したクレーム プロバイダーの Web サイトにリダイレクトされます。エンド メンバーシップ データベース、すべての外部ユーザー (NTLM または Kerberos トークンを提示できないユーザーは、詳細を入力する必要があります。AD ユーザーの場合、これはドメイン\ユーザー文字列 (またはユーザー@ドメイン) および内部を入力する必要があることを意味します)パスワード。

もちろん、これらのプロバイダーを自分で作成する必要があります。古い WIF の時代には、これはかなり不格好なカスタム STS テンプレートを使用することを意味していましたが、今では単純な OWIN ベースの MVC5 サイトを使用して手順を合理化できます。または、nzpcmad が示唆するように、IdentityServer の使用を検討することもできます。

于 2014-09-15T11:43:05.103 に答える