adfs - 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 服务器,然后它会重定向回与索赔申请?我这样想错了吗?
解决方案
不,这是正确的。
两种可能:
- Org2 的 ADFS 有错误的声明规则
- 您的 ADFS 没有传递声明规则。您需要在您的 CP(对于 Org2)和您的 RP 上使用这些规则
它需要这些规则来传递从 Org2 接收到的内容。
推荐阅读
- reactjs - 当值是一个对象时,反应从选择的对象数组中获取下拉列表
- three.js - 从物体发射光
- django - Django 休息令牌认证
- postgresql - Postgresql - 语法错误 - 使用 table_name 作为
- java - JSON数据未显示,而是显示空白屏幕
- javascript - 如何创建外部按钮来操作单元格
- php - 如何使用特定列名作为数组索引获取特定列的结果?
- r - Shiny + downloadHandler + Openxlsx 不生成 xlsx 文件
- laravel - 队列工作人员的合适数量是多少?
- amazon-cloudfront - Prometheus 不会从 Cloudfront 抓取指标 - 时间戳问题?