我试图了解Spring SAML中发送和接收身份验证请求的流程。我注意到在进程中的许多点上都使用了bean SAMLContextProvider。它的目的是什么?没有它,这个过程可以工作吗?
此bean在securityContext.xml上被引用为:
<bean id="contextProvider" class="org.springframework.security.saml.context.SAMLContextProviderImpl"/>
答案 0 :(得分:0)
类SAMLContextProviderImpl是在春天SAML中起主要作用的重要类之一...它解码和编码SAML请求/响应并转换spring可以理解它的方式。它还使春天能够理解本地实体/应用程序的entityId,角色,元数据,安全密钥......
Context provider填充有关本地服务的信息 提供者(您的应用程序),例如entityId,角色,元数据,安全性 用于验证签名的密钥,SSL凭证和信任引擎 和SSL / TLS连接。一旦填充的上下文可用 参与处理传入或传出的所有组件 SAML消息。 ContextProvider可以自定义来改变行为 SAML扩展。默认实现 org.springframework.security.saml.context.SAMLContextProviderImpl 依赖于ExtendedMetadata中可用的信息并执行 以下步骤用于创建上下文:
在初始化SSO期间,还要求ContextProvider提供对等IDP的元数据。系统执行以下步骤以查找要使用的对等IDP:
参考:请参阅Spring SAML Doc的10.2 Context Provider部分。 Spring SAML Doc