3

我是 ADFS/SSO 世界的新手,目前正在研究使用 AD FS 为我们基于 Java 的 Web 应用程序和 Windows 本机代理实现单点登录 (SSO) 的功能。

以下是我们的要求:

  1. 如果用户已经使用他们的域凭据登录到他们的系统,则用户应该自动登录(无需询问用户名/密码)到我们的 windows 代理。
  2. 即使他们在公司网络之外,该解决方案也应该可以工作

我一直在互联网上阅读,但事情仍然令人困惑。我有以下问题:

  1. 基于 kerberos 的身份验证是否适合我的要求?
  2. 它可以与 AD FS 集成吗?这样即使用户不在公司网络中,该解决方案也能正常工作?
  3. 或者还有其他解决方案吗?我们的产品基于 Java 并使用 Spring 框架。

提前致谢, 普拉文

4

3 回答 3

3

用户应自动登录

如果浏览器为 IWA 正确配置,这将起作用

即使他们在公司网络之外,该解决方案也应该可以工作

否 - Kerberos 无法工作,因此您必须使用 FBA

它可以与 AD FS 集成吗?这样即使用户不在公司网络中,该解决方案也能正常工作?

是的 - 您还需要安装 ADFS WAP。使用拆分 DNS。内部用户直接访问 ADFS == IWA。外部用户直接到 WAP = FBA。

我们的产品基于 Java 并使用 Spring 框架

使用 Spring SAML

对于台式机,您有问题。SAML 依赖于浏览器重定向,因此您需要嵌入式浏览器或其他东西。您可以使用 OpenID Connect / OAuth (REST API),但您已使用没有此类支持的 ADFS 2.0 标记了该问题。

在 Windows 世界中(WPF、通过 C# 的控制台等),桌面通过 WCF 连接到 ADFS。

于 2016-08-16T19:36:11.250 回答
2

实际上,在 ADFS 2016 中,使用 Windows 10 加入域的设备也可以注册 Azure AD。通过设备写回此操作,ADFS 中的 SSO 工件已集成到 Windows 10 桌面登录中。在这个世界上,您还将从外网获得桌面 SSO。

于 2016-08-16T23:24:45.287 回答
1

对于您的 Java 应用程序,您应该将spring-webmvc-pac4j用于 Spring MVC 或仅使用 J2E 过滤器的 j2e-pac4j(或者最坏的情况:使用 Spring Security的 spring-security-pac4j )+ pac4j-saml用于 ADFS + pac4j-oauth如果需要如果要使用 OpenID Connect 协议,请使用 OAuth 协议 + pac4j-oidc 。

使用pac4j将更容易和一致地支持多种协议。

于 2016-08-17T07:38:52.697 回答