在Spring Security Saml Sample中生成saml身份验证请求的位置

时间:2016-05-13 14:01:32

标签: spring security authentication request saml

我正在学习实施Saml,到目前为止,我已从此链接https://github.com/spring-projects/spring-security-saml/tree/master/sample下载了一个带有saml的spring security示例,并参考了参考指南和其他各种SAML链接。

我需要问的一点是,因为服务提供商必须发送Saml AuthRequest,我们在程序中定义它。

我已经尝试实现该示例并创建虚拟项目以使用OpenAM,这对于SSO工作正常,但我不明白Saml Auth请求的生成位置。

I got to know that the SP's system itself is going to generate authentication request and send it to IDP using SAML 2.0 protocol. I need help about the parameters i need to pass so that i can customize my own saml authentication request

任何帮助都得到高度赞赏!提前致谢。 (我知道这是一个愚蠢的问题,但是因为我没有得到任何想法而无法帮助它。)

1 个答案:

答案 0 :(得分:3)

根据所选的身份验证提供程序过滤器链的配置执行身份验证请求。使用像Spring这样的高级框架时,这些方面的一些细节是透明的。 Spring SAML基于OpenSAML库,提供了一组工具,以便轻松处理Spring应用程序的整个AuthN流程。

确实,要正确完成此过程,您需要设置应用程序端点(entityID),验证各方身份的证书,保护应用程序路径,配置绑定协议,在IdP和您之间建立信任关系应用程序交换一些元数据。

例如,请考虑以下代码存根,取自 vdenotaris/spring-boot-security-saml-sample

@Bean
public MetadataGenerator metadataGenerator() {
    MetadataGenerator metadataGenerator = new MetadataGenerator();
    metadataGenerator.setEntityId("com:vdenotaris:spring:sp");
    metadataGenerator.setExtendedMetadata(extendedMetadata());
    metadataGenerator.setIncludeDiscoveryExtension(false);
    metadataGenerator.setKeyManager(keyManager()); 
    return metadataGenerator;
}

您可以检查我的自定义参数以生成元数据,自定义基于SAML的SSO的应用程序设置。

通常通过在第三方资源(即网站)上重定向用户来执行AuthN请求,其中提供凭证。验证后,IdP将SAML信封发送给请求者应用程序(服务提供商),其中包含用户信息。