【问题标题】:Spring boot mvc ldap authentication with Active Directory使用 Active Directory 进行 Spring Boot mvc ldap 身份验证
【发布时间】:2020-07-06 00:23:11
【问题描述】:

您好,我有一个 spring mvc 休息服务,我想用活动目录建立安全系统。 我的情景, 用户登录其电脑并通过 explorer 或 postman 之类的方式拨打电话。

我的休息服务了解当前的凭据并检查授权

我的 rest 服务可以在 windows 或 linux 上运行。

如何构建此集成。

我读了一些文章,有人建议 kerberos 集成,但需要 keytab 才能运行。是否可以在没有 keytab 或其他一些集成公式的情况下运行。

【问题讨论】:

    标签: spring spring-security ldap spring-security-ldap spring-security-kerberos


    【解决方案1】:

    如果您对通过 Kerberos 进行 SSO 登录感兴趣,那么您需要 keytab。如果您不需要 SSO(表单登录是一个选项),那么您可以使用不带 keytab 的 Kerberos(用户必须提供将由 AD 验证的凭据,而不是您的应用程序)。您可以按照此文档设置 Kerberos 登录:https://docs.spring.io/spring-security-kerberos/docs/current/reference/htmlsingle/index.html#ssk-authprovider。这里最重要的配置是:

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .authenticationProvider(kerberosAuthenticationProvider());
    }
    
    @Bean
    public KerberosAuthenticationProvider kerberosAuthenticationProvider() {
        KerberosAuthenticationProvider provider =
                new KerberosAuthenticationProvider();
        SunJaasKerberosClient client = new SunJaasKerberosClient();
        client.setDebug(true);
        provider.setKerberosClient(client);
        provider.setUserDetailsService(dummyUserDetailsService());
        return provider;
    }
    

    作为替代方案(如果您需要 SSO,但不需要 Kerberos),您可以使用带有 Spring SAML 的 Active Directory 联合服务。使用 ADFS 实现 SAML 超出了这个简单答案的范围,所以我只留下一个Spring reference doc。您应该自己验证这是否适合您。

    【讨论】:

      猜你喜欢
      • 2021-09-11
      • 2020-02-16
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 2020-04-08
      相关资源
      最近更新 更多