嗨,我有一个 spring mvc 休息服务,我想用活动目录建立安全系统。我的场景,用户登录其电脑并通过资源管理器或邮递员之类的方式拨打电话。
我的休息服务了解当前的凭据并检查授权
我的休息服务适用于 Windows 或 linux。
我怎样才能建立这个集成。
我读了一些文章,有人建议 kerberos 集成,但需要 keytab 才能运行。是否可以在没有 keytab 或其他一些集成公式的情况下运行。
嗨,我有一个 spring mvc 休息服务,我想用活动目录建立安全系统。我的场景,用户登录其电脑并通过资源管理器或邮递员之类的方式拨打电话。
我的休息服务了解当前的凭据并检查授权
我的休息服务适用于 Windows 或 linux。
我怎样才能建立这个集成。
我读了一些文章,有人建议 kerberos 集成,但需要 keytab 才能运行。是否可以在没有 keytab 或其他一些集成公式的情况下运行。
如果您对通过 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 参考文档。您应该自己验证这是否对您来说是一个可行的选择。