在 Spring Security SAML 身份验证请求中配置 POST ProtocolBinding

2024-05-09

Spring Security SAML 坚持在 SAML 身份验证请求中请求 Artifact 绑定(ProtocolBinding 属性):

<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                 AssertionConsumerServiceURL="http://sp.com/saml/SSO/alias/defaultAlias"
                 Destination="https://idp.com/idp"
                 ForceAuthn="false"
                 ID="a4acj06d42fdc0d3494h859g3f7005c"
                 IsPassive="false"
                 IssueInstant="2012-12-05T17:07:18.271Z"
                 ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
                 Version="2.0"
                 >

如何配置 POST 绑定? 感谢您的任何答复!

——安德烈亚斯


谢谢诺比和桑吉夫,我最近将其应用于类似的案例,它让我走上了正轨。

作为 Spring Security SAML2 扩展的新手,我必须进行一些额外的挖掘才能应用 WebSSOProfileOptions。本质上,要在 SAML 身份验证请求上获得 HTTP-POST 绑定,您需要将配置文件选项传递给org.springframework.security.saml.websso.WebSSOProfileImpl#sendAuthenticationRequest() method.

对于我们的配置,它与Spring RC2 示例项目中的配置 https://github.com/SpringSource/spring-security-saml/blob/master/saml2-sample/src/main/resources/security/securityContext.xml,这意味着通过WebSSOProfileOptionsbean 如 Sanjeev 的解决方案中所述samlEntryPoint.defaultProfileOptions属性(或在那里添加绑定属性)。

问题是,这并没有导致 AuthnRequest 拾取所设置的绑定属性。在我们的例子中,我们的 SAML 元数据指定isDefault=true在 HTTP-Artifact 绑定上AssertionConsumerService。在我们的 Spring Security SAML2 库的 RC2 版本中,这是默认行为org.springframework.security.saml.metadata.MetadataGenerator.

这可以通过设置来覆盖assertionConsumerIndexMetadataGenerator 的属性。在我们的例子中,HTTP Post 断言使用者在索引 1 处配置。

<bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter">
   <constructor-arg>
      <bean class="org.springframework.security.saml.metadata.MetadataGenerator">
         <property name="assertionConsumerIndex" value="1" /><!-- 1=HTTP-POST -->
      </bean>
   </constructor-arg>
</bean>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spring Security SAML 身份验证请求中配置 POST ProtocolBinding 的相关文章

随机推荐

  • 如何在jquery中创建一个全局函数,并从另一个加载的页面调用它

    如何在 jquery 中声明全局函数 如何从使用 jquery 的 load 函数加载到该页面上的某个 div 中的页面调用它 该功能很简单第 1 个子页面 main links 1st sub page myfun function is
  • 合并字符数组中的最小重复次数

    假设我有两个数组 我想合并它们 以便合并后的数组具有最小重复次数 例如 x x 是重复 arr1 x d d m f m arr2 d d x f f m 唯一的条件是在合并数组中 元素来自arr1 and arr2必须出现在各自的订单中a
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • 为什么 Excel 有时会在工作表名称中添加 $?

    我有时但并非总是发现 Excel 会放置一个 位于工作表名称末尾 但在 Excel 中看不到 只有在尝试使用 C 将其导入 SQL Server 时才可见 我遇到过很多不同的情况 它保留了原始工作表 但也创建了第二个空的 隐藏 工作表 其中
  • Laravel 雄辩的 withCount() 应该比 with() 慢

    所以我问这个的原因是在我当前的应用程序中withCount 与仅通过以下方式获取关系的所有数据相比 响应时间几乎增加了三倍with 并只是从前端获取长度 javascript 我认为使用的要点withCount 是为了加快查询速度 但也许我
  • 在 WooCommerce 3.3 中使用 Google Map API 计算结帐距离

    我已经发布几个月前有类似的问题 https stackoverflow com questions 46348735 calculated distance shipping cart fee via google api in wooco
  • 如何将 currentTimeMillis 转换为可读的日期格式? [复制]

    这个问题在这里已经有答案了 我想用currentTimeMillis两次 这样我就可以计算持续时间 但我也想以用户可读的格式显示时间和日期 我遇到了麻烦currentTimeMillis有利于计算 但我看不到内置函数可以转换为合适的时间或时
  • Spring @Value 添加验证小于

    我使用以下属性值注入 我如何向此操作添加小于验证 我的意思是我想设置一个验证user maxpassiveday可以说 财产价值不得低于 100 Value user maxpassiveday int maxpassiveday 使用Sp
  • 如何使用 msgpack 进行读写?

    如何序列化 反序列化字典data with msgpack http msgpack org The Python 文档 http msgpack python readthedocs io en latest badge latest似乎
  • 嵌套对象的 AJV 模式验证

    函数返回的对象看起来像这样 answer vehicle type 1 message Car model VW color red 答案 对象始终存在 其他字段基于 vehicle type E g 如果vehicle type 1 则有
  • 按自定义字母顺序对数组进行排序

    如何对这样的数组进行排序 apple very auto tom tim violet 要按 v a t x b 等排序 不按字母顺序 violet very auto tom tim 在脚本中 我会做这样的事情 myArray sort
  • UISearchBAR 范围Bar 色调颜色

    有没有人设法为 UISearchBar 的范围栏部分着色 它有一个 TintColor 属性 但设置它不会影响附加的范围栏 UISegmentedControl 我在吧台上有一个手柄可以给它着色 但似乎不起作用 即 for id subvi
  • 单线程公寓问题

    从我的主窗体中 我调用以下命令来打开一个新窗体 MyForm sth new MyForm sth show 一切都很好 但是这个表单有一个组合框 当我将其 AutoCompleteMode 切换为建议和追加时 我在显示表单时遇到了这个异常
  • SQL Server 全文搜索 - 是否可以在单词中间进行搜索?

    我的数据库有全文搜索 是否可以在单词中间搜索某些文本 例如 我有一个描述列 其中包含以下文本 Revolution 是否可以搜索 EVO 并让它在 革命 一词中找到它 或者我是否一直在做 LIKE SELECT FROM Table WHE
  • 用于测试的嵌入式 H2 数据库的 Spring 配置

    使用 Spring 进行集成测试的配置是什么样的 嵌入式 h2 数据源 http www h2database com html main html以及可选的 JUnit 我第一次尝试单连接数据源 http static springsou
  • 提交表格并上传带有请求的文件

    我正在努力提交特定的表格蟒蛇请求 http www python requests org 我想使用它的网站上的其他表单工作正常 我可以提交登录表单等 这只是我遇到问题的文件上传 显然 提交表单效果很好 因为我从网站收到一条消息 说 请返回
  • 如何滚动到 jQuery Mobile 中的页面元素?

    我有一个很长的 jQuery 移动页面 并且想在页面加载后滚动到该页面中间的元素 到目前为止 我已经尝试了一些事情 最成功的是 jQuery document bind mobileinit function var target if t
  • 实体框架 CTP 4 - 代码优先自定义数据库初始值设定项

    我想实现自定义数据库初始化策略 以便我可以生成数据库架构并使用提供的用户 ID 和密码将其应用到现有的空 SQL 数据库 不幸的是 内置策略无法提供我正在寻找的内容 The default strategy creates the DB o
  • 向 FTP 服务器执行跨域 XMLHTTPREQUEST 的语法是什么?

    我有一个 webDav CORS 插件 可以使用它在 webDav 服务器上 POST PUT GET REMOVE ALLDOCS 文件 我现在想对 FTP 做同样的事情 但我正在努力获取xmlhttprequest 工作语法 我只是收到
  • 在 Spring Security SAML 身份验证请求中配置 POST ProtocolBinding

    Spring Security SAML 坚持在 SAML 身份验证请求中请求 Artifact 绑定 ProtocolBinding 属性