0

私は azure mvc4 Web サイト (azurewebsites) を次のように作成したいと考えています。

  • 会社のドメイン内の従業員の SSO (ADFS は既に ACS とフェデレートされています)
  • ローカル アカウントまたは LiveID OAuth (liveid は ACS の IdP) による外部 (非従業員) のアクセス。
  • 要件は、アプリケーション内でユーザー プロファイルとロールを管理することです。

次のオプションが表示されます。

  1. アプリを ACS とフェデレートし、フェデレーション認証を使用し、UserProfiles とメンバーシップなどのテーブルのカスタム セットを作成します。このアプローチでは、既存のプロバイダーを使用できません。クレームに必要な情報がありません。

  2. ACS 用のカスタム OAuth/OAuth2 クライアントを作成し (何も見つかりません)、OAuthWebSecurity を使用して登録します。このアプローチは私にとって正しいようです.SimpleMembershipなどを使用できます.問題は、正しい方法で実装する方法の例が見つからないことです.

Q:

このシナリオでの正しいアプローチは何ですか?

私の要件を満たす他のオプションはありますか?

ACS 用の OAuthWebSecurity クライアントはありますか?

ありがとう、マチェイ

4

3 に答える 3

1

私はアプローチ1に行きます。なぜなら-

a)ADFSを組み込むにはとにかくws-fedが必要ですb)ACS用のOAuthクライアントはありません-ACSはOAuthのいくつかの特別なユースケースのみをサポートします(そのため、クライアントが見つかりませんでした)。

あなたはとにかくあなたのデータベースを完全に制御したいです-そして魔法/半分焼かれた(あなたの視点に依存します)単純なメンバーシップのものを使用しないでください...

于 2013-01-31T08:20:34.603 に答える
1

最近、同様の問題に対する解決策を実装しました。私たちがしたことは次のとおりです。

  • ID トークンに ACS と ID プロバイダー (Windows Live、Google など) を使用する
  • 独自のメカニズムを使用して、これらの ID をユーザー/ロールにマップします。たとえば、最初のログイン時に給与データを使用して、従業員に対する請求を検証します。
  • ソーシャル メディア ID を使用したくないユーザーの場合、ACS 経由でリンクされた「独自の」ID プロバイダーでユーザー名/パスワードを作成できます。これは別のサービスであり、Thinktecture Identity Serverの変更されたバージョンを実行します。そのため、thinktecture ID サービスを STS エンドポイントとして使用します。
  • フェデレーション ADFS についても同じことを行います (既に行ったように)。

時間の経過とともに、Thinktecture サーバーを使用して ACS 機能を置き換え、ACS で利用できるよりも多くの制御 (独自のドメイン名を使用するなど) を提供できるように思われますが、今のところ ACS は機能しており、そのままにしておきます。その時。しかし、単純なユーザー名/パスワードの代替ログインとしての Thinktecture サービスは、私たちにとって重要です。ただし、別のクラウド サービスをホストすることを意味します。

SimpleMembership に何を求めていますか? ユーザー名/パスワードのログイン (この場合、ユーザー名/パスワードの STS エンドポイントを使用/ホスト/構築)、またはメンバーシップ/ロール テーブル (いずれにせよそれほど素晴らしいものではありません)。

于 2013-05-28T15:31:59.190 に答える