Spring Security SAML Extension 将 ADFS 3.0 与其他声明提供程序集成
Posted
技术标签:
【中文标题】Spring Security SAML Extension 将 ADFS 3.0 与其他声明提供程序集成【英文标题】:Spring Security SAML Extension integrate ADFS 3.0 with other claims provider 【发布时间】:2016-08-06 19:17:12 【问题描述】:我按照第 12.0 章关于使用 spring 和 adfs 作为 IdP 的说明从这里开始: http://docs.spring.io/autorepo/docs/spring-security-saml/1.0.x-SNAPSHOT/reference/htmlsingle/#chapter-idp-guide
我可以使用第一个 ADFS 成功登录应用程序。 但是,如果将另一个 ADFS 中的另一个帐户用作第一个帐户的声明提供者,我将失败。
我还发现似乎有人找到了描述的解决方案 Configuring ADFS 3.0 / SAML 2.0 to work with Spring Security for SSO integration
但我无法获得详细信息... 回到文档,才找到 将 NameID 添加为“Claim rule name”,选择“Active Directory”作为 Attribute store,选择“SAM-Account-Name”作为 LDAP Attribute,选择“Name ID”作为“Outgoing claim type”,完成向导并确认声明规则窗口,在 ADFS 3.0 中,您可能需要将名称 ID 配置为传递声明
有没有人可以详细提供如何将名称 ID 配置为 Spring saml 扩展的 Pass Through 声明?
提前致谢。
【问题讨论】:
【参考方案1】:经过一番研究,最终找到了解决办法。
需要在 2 个 ADFS 之间定义声明规则。 在声明提供者 ADFS 中,您需要在 Relying Party Trusts 中配置规则。添加规则“发送 LDAP 属性作为声明”和属性存储选择“活动目录”LDAP 属性选择“SAN-ACCOUNT-NAME”,传出声明选择“给定名称”
在资源方 ADFS 中,您需要在 Claims Provider Trusts 中配置规则。添加规则“转换传入声明”。传入声明类型选择“Given Name”,传出声明类型选择“Name ID”,格式选择“Unspecified” 您还需要在 Relying Party Trusts 中配置规则。添加规则“通过或过滤传入的声明”。而传入的声明类型选择“名称 ID”,格式选择“未指定”
在这些声明规则设置之后。然后您可以使用位于受信任的 ADFS 中的帐户登录 spring saml2 扩展项目。
【讨论】:
以上是关于Spring Security SAML Extension 将 ADFS 3.0 与其他声明提供程序集成的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 spring-security-saml2 配置服务提供者以使用 EncryptedAssertions?
使用 spring-security-saml 在应用程序中没有配置 IDP 错误
Spring 框架 4.0 和 Spring security 3.2.4 上的 Spring Security SAML 扩展