使用Spring Security SAML Siteminder

时间:2019-02-17 01:24:58

标签: spring-security saml siteminder

我正在尝试将siteminder与Spring Security集成。 已经连接Windows的用户(域身份验证)可以使用当前Windows用户名访问WebApplication(Tomcat-RHEL),角色由WebApp自己管理。 有可能的 ?有没有什么例子可以帮助我启动这个项目

我曾经读过有关Spring Security的文章,但我不知道如何实现此配置。 https://docs.spring.io/spring-security-saml/docs/1.0.0.RELEASE/reference/html/chapter-quick-start.html

1 个答案:

答案 0 :(得分:0)

我们正在重写Spring Security SAML,以提供更好的用户体验。

同时,您可以浏览我们的里程碑版本2.0.0.M24,这是最新的。

Gradle URL

    repositories {
        ...
        maven { url "https://repo.spring.io/milestone" }
        ...
    }

导入依赖项

compile "org.springframework.security.extensions:spring-security-saml2-core:2.0.0.M24")

如果要尝试使用sample project available [1]。它是核心存储库的一部分。

github贡献者还创建了一个separate sample and guide

这应该让您入门。

未来将看起来像这样(尚未发布)


@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // @formatter:off
        http
            //application security
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            //saml security
            .apply(
                SamlServiceProviderConfigurer.saml2Login()
            )
        ;
        // @formatter:on
    }

    @Bean
    protected ServiceProviderConfigurationResolver configurationResolver() {
        return fromConfiguration(
            config -> config
                .keys(
                    KeyData.builder()
                        .id("sp-signing-key")
                        .privateKey(privateKey)
                        .certificate(certificate)
                        .passphrase("sppassword")
                        .build()
                )
                .providers(
                    ExternalIdentityProviderConfiguration.builder()
                        .alias("simplesamlphp")
                        .metadata("http://simplesaml-for-spring-saml.cfapps.io/saml2/idp/metadata.php")
                        .build()
                )
        );
    }

    private String privateKey = "-----BEGIN RSA PRIVATE KEY-----\n" +
        "Proc-Type: 4,ENCRYPTED\n" +
        "DEK-Info: DES-EDE3-CBC,7C8510E4CED17A9F\n" +
        "\n" +
        "...==\n" +
        "-----END RSA PRIVATE KEY-----";
    private String certificate = "-----BEGIN CERTIFICATE-----\n" +
        "...\n" +
        "RZ/nbTJ7VTeZOSyRoVn5XHhpuJ0B\n" +
        "-----END CERTIFICATE-----";

}

参考:

[1] https://github.com/spring-projects/spring-security-saml/blob/ca29a44d4777425e9553d8e97ef960ef1b95d935/samples/boot/simple-service-provider/src/main/resources/application.yml#L23-L168

[2] https://github.com/Endeios/samlv2app