apache - 更改 IdP,但无法识别属性
问题描述
我的雇主正在更新/更改我们的 IdP 服务器。旧服务器已经使用了大约 10 年,恕我直言,我们的网络团队明智地决定通过启动新服务器来“更新”,这样我们就可以单独更换现有的服务提供商,而不是一次全部更换,然后看到一堆他们中的所有同时打破。
是时候更新我从大约侏罗纪中期开始负责的供应商系统了,大约在 4-6 个职位描述之前。我们在 2012 年将其设置为单点登录,从那时起它一直正常工作,尽管我们确实在 2017 年从 CentOS 更改为 RHEL。也许我应该提一下,我几乎忘记了我所知道的关于 shibboleth 的所有知识。
我们的旧 IdP 位于 shibboleth.ourdomain,而新 IdP 位于 federate.ourdomain。在与 IdP 服务器 (MicroSoft ADFS) 上的工作人员进行了一些协商后,我们决定我应该编辑 /etc/shibboleth/attribute-map.xml 和 /etc/shibboleth/shibboleth2.xml,替换总共出现的三个shibboleth.ourdomain 和 federate.ourdomain 然后得到一个新的元数据文件来替换旧的元数据文件。(实际上,当然,我首先将旧文件复制到与 *.xml.old 完全不同的位置,然后创建相应的 *.xml.new 文件和一个 shell 脚本来放置新文件和一个相应的还原脚本将 .old 文件重新复制回 /etc/shibboleth。shell 例程自然包括切换元数据文件。)
第一次尝试惨遭失败,SP 似乎仍在寻找我已删除指示的旧 IdP,但我们带头操作的人想出了将 MetadataProvider 元素从
<MetadataProvider type="XML" file="metadata/shibboleth.ourdomain.xml"/>
至
<MetadataProvider type="XML" uri="https://federate.ourdomain/FederationMetadata/2007-06/FederationMetadata.xml"
backingFilePath="metadata/shibboleth/federate.ourdomain.xml" reloadInterval="7200"/>
现在我们获得了新 IdP 的登录页面,但 SP 无法识别数据。我确信“属性和断言”从旧 IdP 到新 IdP 都没有变化,但显然有些不同。
我们现在已经达到(又一个)我绝对没有达到的许多点之一知道发生了什么。我一直假设(我们都知道那里会发生什么)IdP 将成功的登录重定向回 SP 以及允许 SP 确定谁正在登录并采取相应行为的标头。我确实想到 IdP 可能只是在用户的浏览器中设置了一个 cookie。我认为从我所看到的一些事情来看,这是重定向回 SP 场景而不是 cookie 场景,但如果我错了,请告诉我。(我是自己写的,而不是咨询更博学的人。)IdP(两者)正在发送“eppn”属性,但如果应用程序从 Apache 获取 eppn,则处理程序通常会记录它收到的 eppn,无论它是已知用户还是未知用户。我'
我对我们的问题的天真理解是这样的:
- 我们知道我(例如)可以使用我们的旧 IdP 登录
- 我们知道我无法使用我们的新 IdP 登录
- 我们相信新旧 IdP 发送相同的属性和断言。
- 但是,无论是 Apache 还是我们未更改的应用程序,都没有将 IdP 传递的属性视为相同我现在真正需要的是一种查看发送和接收哪些属性和断言的方法。特别是,看起来我们需要一种方法来查看我们为 eppn 获得了什么值。
我们目前
<Handler type="Session" Location="/Session" showAttributeValues="true"/>
在 shibboleth2.xml.new 的 ApplicationDefaults 元素中也有,但我找不到任何有用的东西。我在 /var/log/httpd/access_log、/var/log/httpd/ssl_access_log 或 /var/log/httpd/ssl_request_log 以及我知道的任何其他日志文件中都找不到任何相关条目。还是showAttributeValues="true"
仅适用于https://SPserver.ourdomain/Shibboleth.sso/Session?在这种情况下,它对我的问题没有帮助,因为我根本没有使用新的 IdP 登录。
是否有日志显示 SP 上的 Apache 处理程序收到的断言?
有没有人对无能(我)有线索?
谢谢,保罗
解决方案
推荐阅读
- php - 如何在php中从geoip数组中回显项目
- html - 在 html 中的链接中查找问题不起作用
- python - TypeError: can only concatenate str (not "int") to str: 这是什么意思?
- javascript - gatsby-theme-material-ui 和 gatsby-plugin-material-ui 的区别
- node.js - Axios post 请求将整个文件内容呈现为响应,而不是执行服务器端文件
- asp.net - 某些模型属性在发布时始终为空,模型绑定问题
- python - 多输入 - 小数据集中的一个输出神经网络
- scala - 如何以 DRY 方式过滤/禁用 SBT 中所有子项目的 scalac 选项
- javascript - 在对 API 进行 fetch 调用后,如何将数据存储到 localStorage 中?
- spring-boot - Spring Batch 异步作业执行