2.Spring Security SAML 更新内容
2.更新内容
本节包含已发布的Spring SAML版本的重要更改概述。
2.1 1.0.1.FINAL中的新功能,改进和修复
版本1.0.1.FINAL完全向后兼容1.0.0.FINAL并包含以下更改:
- 添加了对Spring Security 4.0的支持
- 添加了与Okta的集成指南
- MaxAuthenticationAge时间支持的有效期超过21天
- 现在支持不使用JKS密钥库的部署
- 服务提供者现在可以使用相同的绑定定义多个断言使用者端点
- 次要修复和文档改进
2.2 1.0.0.FINAL中的新功能,改进和修复
最终版本与之前的RC版本不直接兼容,请确保根据以下指南和更改迁移您的代码:
- 元数据签名现在支持自定义keyInfoGenerator和signingAlgorithm,签名可以按实体启用
- SAMLContextProvider为PKIXTrustEvaluator,PKIXInformationResolver和MetadataResolver提供了新的自定义功能
- CertPathPKIXTrustEvaluator支持安全提供程序的自定义和证明路径的显式验证
- MetadataCredentialResolver可以配置为从XML元数据和/或ExtendedMetadata加载数据
- PKIXInformationResolver具有CRL群的扩展点
- 对日志记录和错误处理的改进,配置文件实现现在抛出过滤器对象中记录的异常并且使用ServletExceptions失败,示例应用程序新显示处理这些错误
- 使用的OpenSAML版本已更新至2.6.1
- SAMLDefaultLogger现在记录其他信息,例如NameID
- 为ArtifactResolution启用在HttpClient对象中设置的默认值(例如ProxySettings)
- JKSKeyManager现在支持没有密码的密钥库
- SAMLContextProviderLB现在支持空的contextPath,并包含请求的pathInfo数据
- 现在可以在MetadataGenerator中单独设置实体ID和EntityDescriptor ID
- ECP现在优先于SAMLEntryPoint中的发现
- 现在,在显示之前完成对本地元数据的签名,这允许手动修改本地文件中的元数据
- ArtifactResolutionProfileImpl现在支持通过扩展定制已使用的SocketFactory
- 生成的元数据中的ID现在在null时自动创建,ID基于清理的entityID以符合xsd:ID(和xsd:NCName)类型,通过下划线替换所有非法字符来清除EntityID
- 支持工件解析中的主机名验证
- 完成的文件
- 可以从Authentication对象中排除SAML凭据
- ParserPool的已禁用延迟节点扩展,可提高解析小型XML文档的性能
- HttpSessionStorage现在在成功接收消息后被清除,以节省内存
- 可以仅包含经过身份验证的断言或所有断言的属性
- 从HTTPS加载元数据期间用于信任验证的新套接字工厂
- 可以禁用对IDP初始化SSO的支持
- 现在,元数据别名的使用是可选的
- 示例应用程序的新外观
- 清除MetadataGenerator和ExtendedMetadata中的重复值
- SAMLCredential现在包含用于处理String SAML属性的工具方法
2.3 1.0.0.FINAL中的重要代码更改
以下是自Spring SAML 1.0 RC2以来主要代码和结构更改的概述,可能会影响向后兼容性。
模块名称
- 模块saml2-core被重命名为core,jar和maven工件名称保持不变
- 模块saml2-sample被重命名为sample,jar和maven artifact名称保持不变
- 模块src被重命名为docs,jar和maven artifact名称保持不变
描述符securityContext.xml
- 文件saml2-sample / src / main / resources / security / securityContext.xml已移至sample / src / main / webapp / WEB-INF / securityContext.xml
- UI的管理部分现在使用用户名/密码进行保护
- 更新ParserPool的初始化以禁用延迟节点扩展
- ArtifactResolution中的HttpClient是线程安全的
- 添加了新的失败处理程序(failureRedirectHandler)
- MetadataGenerator bean现在演示了ExtendedMetadata的用法
- FilesystemMetadataProvider已替换为ResourceBackedMetadataProvider
- 文件sample / src / main / resources / security / idp.xml已移至sample / src / main / resources / metadata / idp.xml
ArtifactResolutionProfileBase
- 在检查工件响应问题时立即抛出SAMLException而不是CredentialExpiredException
HttpSessionStorage
- 现在,成功收到消息后,存储将被清除
MetadataDisplayFilter
- 新强制属性KeyManager(自动装配)
MetadataGenerator
- 生成的元数据不再默认签名(在ExtendedMetadata.signMetadata中启用)并禁用IDP发现(在ExtendedMetadata.includeDiscovery中启用)
- 以下字段已从MetadataGenerator移至ExtendedMetadata:entityAlias - >别名signMetadata - > signMetadatasigningKey - > signingKeyencryptionKey - > encryptionKeytlsKey - > tlsKeyincludeDiscovery - > idpDiscoveryEnabledcustomDiscoveryURL - > idpDiscoveryURLcustomDiscoveryResponseURL - > idpDiscoveryResponseURL
- 删除方法signSAMLObject(移至SAMLUtil)和getKeyInfoGeneratorName(移至ExtendedMetadata)
- 默认情况下,第一个结合是现在HTTP-POST而不是HTTP神器,终点为Web SSO不再包括PAOS绑定,设置属性bindingsSSO与价值观“神器”,“后”,“PAOS”的向后兼容性
- 默认情况下,不再包含Web SSO持有者密钥的端点,将属性bindingsHoKSSO设置为值“artifact”和“post”以实现向后兼容性
- 默认情况下,MetadataGeneratorFilter不再将属性entityAlias设置为值defaultAlias,手动设置值以实现向后兼容性
SAMLAuthenticationProvider
- property forcePrincipalAsString现在默认设置为true
SAMLCredential
- 方法getAttributeByName已重命名为getAttribute
SAMLDiscovery
- 使用ServletException而不是SAMLRuntimeException失败
SAMLLogoutProcessingFilter
- 在接受LogoutRequest而不是SAMLRuntimeException期间抛出ServletException错误
SAMLUtil
- 删除了未使用的getDefaultBinding方法
SingleLogoutProfileImpl
- sendLogoutResponse签名已更改
- 更改了错误处理,抛出由Filter处理的SAMLStatusException,记录并发送SAML响应
WebSSOProfileImpl
- 在上下文中丢失数据时抛出SAMLException而不是SAMLRuntimeException
WebSSOProfileConsumerImpl
- 新属性includeAllAttributes,对于原始行为设置为true
- 在检查响应问题即时和断言问题时抛出SAMLException而不是CredentialExpiredException
赞(1)
赏