0

パブリック Web サイトのユーザーがさまざまな ID プロバイダーを使用してログインする方法を分析できる機能を構築したいと考えています。

複数の Web サイトが WIF を介して ACS に接続されています。ACS は、ソーシャル ネットワーク ログインとカスタム STS を使用した ID フェデレーションを提供します。

ACS から「アクティビティ ログ」を取得できるようにしたいと考えています。次の行に沿ったもの:

1. RP: Web1; IdP: Google; Claims: [email: user1@gmail.com, name: User One]; Time: 15:37
2. RP: Web2; IdP: Custom; Claims: [email: user2@custom.com, name: User Two]; Time: 15:38
3. RP: Web1; IdP: Facebook; Claims: [email: user3@email.com, name: User Three]; Time: 15:39

(これは単純化したものであり、各プロバイダーが異なるクレームを送信することなどを理解しています)。

管理サービスを使用してそのようなものを取得できることを望んでいましたが、方法が見つかりません。

私が検討した他のオプションは、RP-STS をクレーム チェーンに追加することです: Web -> RP-STS -> ACS -> IdP。しかし、使用状況の情報を収集するためだけにチェーンに別のホップを追加するのは、少しやり過ぎのように感じます。これを達成するためのよりスマートな方法はありますか?

4

1 に答える 1

1

いいえ。申し訳ありませんが、今日そのような情報を取得することはできません。監査ログは自分で行う必要があります。簡易版の情報が必要な場合は、中間 STS がなくても達成するのはそれほど難しくありません。

私は次のことをします:

  • WsFederationAuthenticationModule からいくつかのイベントをピックアップします( SessionSecurityTokenCreatedが適切な選択かもしれません)。
  • そのイベント ハンドラーで、現在実行中のアプリケーションの ID など、必要なものをすべて収集し、Azure Table Storage に非同期で書き込みます。
  • 上記のコードを別のクラス ライブラリにパックし、私が持っているすべての Web アプリから参照します

私の考えは、シナリオに完全に適合すると思うので、Azure Storage テーブルに書き込むことです。Azure Table Service に書き込む Web アプリの数は事実上無制限です。また、パーティション キーと行キーの組み合わせを慎重に選択すると、無限の監査ログ ストアが作成されます。Azure テーブルを設計する際の主な問題は、データをどのように読み取るかということです。

于 2013-04-25T05:14:25.970 に答える