代码之家  ›  专栏  ›  技术社区  ›  joga

Spring Security saml saml示例中生成的saml身份验证请求在哪里

  •  1
  • joga  · 技术社区  · 8 年前

    我正在学习实现Saml,到目前为止,我已经从这个链接下载了一个使用Saml的spring安全性示例 https://github.com/spring-projects/spring-security-saml/tree/master/sample ,浏览了参考指南和各种其他SAML链接。

    我需要问的一件事是,由于服务提供商必须发送Saml AuthRequest,我们应该在程序中的何处定义它。

    我已经尝试实现这个示例,并创建了虚拟项目来使用OpenAM,这对于SSO来说很好,但我不知道Saml Auth Request是从哪里生成的。

    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 回复  |  直到 8 年前
        1
  •  3
  •   vdenotaris    8 年前

    身份验证请求根据 身份验证提供者 选定的和您的 过滤器链 在使用像Spring这样的高级框架时,这些方面的一些细节是透明的。 SpringSAML基于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信封发送给请求者应用程序(服务提供者),其中包含用户信息。