0

我想构建一些功能,让我能够分析我的公共网站的用户如何使用各种身份提供者进行登录。

我有多个通过 WIF 连接到 ACS 的网站。ACS 通过社交网络登录以及我的自定义 STS 提供身份联合。

我希望能够从 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可能是一个不错的选择)
  • 在该事件处理程序中收集我需要的所有内容,包括当前正在运行的应用程序标识,并将其异步写入 Azure 表存储
  • 将上述代码打包在单独的类库中,并从我拥有的所有 Web 应用程序中引用它

我的想法是写入 Azure 存储表,因为我认为它非常适合该场景。我可以将几乎无限数量的 Web 应用程序写入 Azure 表服务。如果我仔细选择分区键/行键组合,我将拥有无限的审计日志存储。设计 Azure 表的主要问题实际上是关于如何读取数据。

于 2013-04-25T05:14:25.970 回答