首页 > 解决方案 > 具有 Web/SAP/云/本地应用程序的异构环境中的单点登录 SAML + OpenID 身份验证

问题描述

在具有 SAML 的 SAP Web 应用程序和具有 OpenID Connect 身份验证的 Web 应用程序之间实现 SSO 身份验证的最佳方法是什么?

是否可以使用 Microsoft ADFS 为 SAP Web 应用程序用户生成 SAML 令牌并在用户切换到非 SAP Web 应用程序而无需双重登录时重新颁发该令牌,例如 JSON Web 令牌?

谢谢!

标签: jwtsingle-sign-onsamladfsopenid-connect

解决方案


是的,ADFS 可以用于此。确保在支持 OIDC 的 Windows Server 2016 [ADFS 2016] 中使用 ADFS(Windows 2012 R2 中的 ADFS 不支持 OIDC)。

因此,假设您的用户存储在本地 Active Directory 中,您可以安装 ADFS 并在其中配置多个应用程序,使用不同的协议(SAML、WS-Federation、OIDC、OAuth)。

对于 Web 应用程序,当用户打开浏览器并访问 Web 应用程序 URL 时,它们将被重定向到 ADFS 进行身份验证。通常,如果用户在内部网络中,身份验证将是 IWA [集成 Windows 身份验证 - Kerberos],如果用户在外部网络中,ADFS Web 应用程序代理 [WAP] 将呈现 FBA [基于表单的身份验证] 形式 - 在任何一种情况下,用户都将根据 Active Directory 进行验证。身份验证后,用户将再次被重定向到 Web 应用程序。如果用户打开另一个 Web 应用程序,他们将已经通过 ADFS 身份验证 - 无需再次进行身份验证。

一些额外的评论:

  • ADFS 2016 还可以通过 LDAP 对用户进行身份验证
  • 如果您使用的是 Azure Active Directory [AAD],并且您已将本地用户同步到云,那么也可以使用 AAD 实现此 SSO 场景。

推荐阅读