首页 > 解决方案 > MVC 4 Web 应用程序使用 ADFS 对来自不同组织的用户进行身份验证

问题描述

我有一个使用 ASP.NET 4.5 和 MVC 4 开发的 Web 应用程序。它最初使用表单身份验证供用户登录,但是,我们将其移至 ADFS(WS 联合)身份验证。这个想法是来自我的组织 (Org 1) 和另一个组织 (Org 2) 的用户将能够使用 ADFS (ws-fed) 登录。ADFS 已设置好,因此当您导航到 Web 应用程序的 URL 时,它会重定向到 ADFS 登录屏幕。此时,它会显示两个组织的选项,即 Org 1 和 Org 2。如果您属于 Org 1,请单击此按钮,用户必须输入其用户名和密码。如果您单击 Org 2 按钮,也会发生同样的事情。组织 1 和组织 2 中的 ADFS 服务器已交换元数据/证书和声明值。

当来自 Org 1 的用户登录时,没有问题,在成功进行 ADFS 身份验证后,他们将被重定向回具有所需声明的 Web 应用程序(Web 应用程序使用这些声明中的信息)。但是,当来自 Org 2 的用户登录时,他们已通过身份验证,但他们的声明未到达 Web 应用程序。

Web 应用程序是否需要配置为与 Org 1 和 Org 2 的 ADFS 服务器一起使用?我最初的想法是 Org 1(我自己的组织),将处理所有 ADFS 身份验证。Web 应用程序会指向它,当来自 Org 2 的用户尝试登录时,我们的 ADFS 会将请求重定向到 Org 2,然后 Org 2 会将声明发送回我们的源 ADFS 服务器,然后它会重定向回与索赔申请?我这样想错了吗?

标签: adfsws-federation

解决方案


不,这是正确的。

两种可能:

  • Org2 的 ADFS 有错误的声明规则
  • 您的 ADFS 没有传递声明规则。您需要在您的 CP(对于 Org2)和您的 RP 上使用这些规则

它需要这些规则来传递从 Org2 接收到的内容。


推荐阅读