具有 web/SAP/cloud/on-premise 个应用程序的异构环境中的单点登录 SAML + OpenID 身份验证

Single-Sign-On SAML + OpenID auth in heterogeneous landscape with web/SAP/cloud/on-premise apps

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

是否可以使用 Microsoft ADFS 为 SAP 网络应用程序用户生成 SAML 令牌并重新发布令牌,例如JSON Web Token,当用户在没有双重登录的情况下切换到非 SAP Web 应用程序时?

谢谢!

是的,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 [Integrated Windows Authentication - Kerberos],如果用户在外部网络中,ADFS Web Application Proxy [WAP] 将呈现一个 FBA [基于表单的身份验证] 表单 - 在任何一种情况下,用户都将根据 Active Directory 进行验证。身份验证后,用户将再次被重定向到 Web 应用程序。如果用户打开另一个 Web 应用程序,他们将已经针对 ADFS 进行了身份验证 - 无需再次进行身份验证。

一些补充意见:

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