single-sign-on - 使用 ADFS 实现单点登录

标签 single-sign-on kerberos saml-2.0 adfs2.0 spring-security-kerberos

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

以下是我们的要求:

  1. 如果用户使用他们的域凭据登录到他们的系统,他们应该自动登录(无需用户名/密码)到我们的 Windows 代理。
  2. 即使他们在公司网络之外,该解决方案也应该有效

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

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

提前致谢, 普拉文

最佳答案

用户应该自动登录

如果浏览器针对 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。

关于single-sign-on - 使用 ADFS 实现单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38973838/

相关文章:

java - OpenSAML 的意义何在?还有其他选择吗?

java - 单点登录框架

asp.net - 在我们自己的 asp.net 应用程序中集成 Azure Active Directory SSO

azure - 为 Web 应用程序设置 ADFS

encryption - Kerberos key 表文件包含多个条目

java - Jenkins 在脚本化 Jenkinsfile 的分布式构建中找不到 krb5.conf 文件

java - opensaml 签名加密验证不成功

javascript - 如何使用 Dropbox 的单点登录?

active-directory - kinit(v5) : Client not found in Kerberos database while getting initial credentials

java - 如何在Spring boot中设置WebSSOProfileConsumerImpl中的responseSkew属性值