0

嗨,我有一个 spring mvc 休息服务,我想用活动目录建立安全系统。我的场景,用户登录其电脑并通过资源管理器或邮递员之类的方式拨打电话。

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

我的休息服务适用于 Windows 或 linux。

我怎样才能建立这个集成。

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

4

1 回答 1

0

如果您对通过 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),您可以将 Active Directory 联合服务与 Spring SAML 一起使用。使用 ADFS 实现 SAML 超出了这个简单答案的范围,所以我只留下一个Spring 参考文档。您应该自己验证这是否对您来说是一个可行的选择。

于 2020-04-18T12:00:45.237 回答