支持的 SSO 方法

SSO 要求 Web 标识管理解决方案将已验证身份的用户的登录名传递给 Oracle Enterprise Performance Management System 产品。您可以使用以下标准 EPM System 方法将 EPM System 与基于 Web 的商业和自定义 SSO 解决方案集成。

注意:

作为一项安全措施,如果贵组织使用在头中包含用户标识以实现标识传播的方法,Oracle 建议您在 Web 服务器和应用程序服务器之间实施客户端证书身份验证(双向 SSL)。

HTTP 头

如果使用 Oracle Single Sign-on (OSSO)、SiteMinder 或 Oracle Access Manager 作为 Web 标识管理解决方案,EPM System 安全性将会自动选择自定义 HTTP 头将已验证身份的用户的登录名传递给 EPM System 组件。

EPM System 产品用户的登录名由您在配置 Oracle Hyperion Shared Services 中的用户目录时所指定的登录属性确定。有关登录属性的简短说明,请参阅《Oracle Enterprise Performance Management System 用户安全管理指南》中的“配置 OID、Active Directory 和其他基于 LDAP 的用户目录”。

HTTP 头必须包含设置为登录属性的属性的值。例如,如果登录属性的值为 uid,则 HTTP 头必须包含 uid 属性的值。

有关定义和发出自定义 HTTP 头的详细信息,请参阅 Web 标识管理解决方案文档。

EPM System 安全性将解析 HTTP 头,并根据 Shared Services 上配置的用户目录验证头中包含的登录名。

自定义登录类

当用户登录时,Web 标识管理解决方案依据目录服务器验证用户的身份,并将已验证身份的用户的凭据封装在 SSO 机制中,以便为下游系统启用 SSO。如果 Web 标识管理解决方案使用的机制不受 EPM System 产品的支持,或者 SSO 机制中没有登录属性的值,则可使用自定义登录类派生登录属性的值,并将该值传递给 EPM System 产品。

通过使用自定义登录类,EPM System 可以与使用基于 X509 证书的身份验证的安全代理集成。使用这种身份验证机制时,要求实施标准 Shared Services API 来定义 EPM System 组件和 Web 标识管理解决方案之间的 SSO 接口。自定义登录类必须将 Login Attribute 的值传递到 EPM System 产品。有关登录属性的简短说明,请参阅《Oracle Enterprise Performance Management System 用户安全管理指南》中的“配置 OID、Active Directory 和其他基于 LDAP 的用户目录”。有关样本代码和实施步骤,请参阅“实施自定义登录类”。

要使用自定义登录类(默认名称为 com.hyperion.css.sso.agent.X509CertificateSecurityAgentImpl),必须在类路径中实施 com.hyperion.css.CSSSecurityAgentIF 接口。CSSSecurityAgentIF 定义用于检索用户名和密码(可选)的 getter 方法。如果该接口返回 Null 密码,则安全身份验证将提供程序视为受信任,并验证用户是否存在于配置的提供程序中。如果该接口为密码返回非 Null 值,则 EPM System 将尝试使用此实施返回的用户名和密码对请求进行身份验证。

CSSSecurityAgentIF 包含两个方法:getUserNamegetPassword

getUserName 方法

此方法返回用于身份验证的用户名。

java.lang.String getUserName(
                    javax.servlet.http.HttpServletRequest req,
                    javax.servlet.http.HttpServletResponse res)
                    throws java.lang.Exception

req 参数标识 HTTP 请求,该请求包含用于确定用户名的信息。不使用 res 参数(预置以实现向后兼容)。

getPassword 方法

此方法返回用于身份验证的明文密码。密码检索是可选的。

java.lang.String getPassword(
                    javax.servlet.http.HttpServletRequest req,
                    javax.servlet.http.HttpServletResponse res)
                    throws java.lang.Exception

req 参数标识 HTTP 请求,该请求包含用于确定密码的信息。不使用 res 参数(预置以实现向后兼容)。

HTTP 授权头

EPM System 安全性支持使用 HTTP 授权头将 Web 标识管理解决方案中登录属性的值传递给 EPM System 产品。EPM System 产品将解析授权头来检索用户的登录名。

从 HTTP 请求获取远程用户

EPM System 安全性支持使用 HTTP 请求将 Web 标识管理解决方案中登录属性的值传递给 EPM System 产品。如果 Web 标识管理解决方案传递了一个包含登录属性值(使用 setRemoteUser 函数进行设置)的 HTTP 请求,则使用此 SSO 方法。

使用身份管理产品配置基于头的身份验证

EPM System 支持任何支持基于头的身份验证的身份管理产品,例如 Oracle Identity Cloud Service、Microsoft Azure AD 和 Okta。概念工作流如下所示:

  • 充当反向代理的网关应用程序通过限制未经身份验证的网络访问来保护 EPM System 组件。
  • 网关应用程序拦截对 EPM System 组件的 HTTP(S) 请求,并确保身份管理产品在将请求转发到 EPM System 组件之前对用户进行身份验证。
  • 在将请求转发到 EPM System 组件时,网关应用程序通过 HTTP 头请求,将经过身份验证的用户的身份传播到 EPM System 组件。

要支持此身份验证方案,应将 EPM System 配置为使用通过 HTTP(S) 头请求传播的经过身份验证的用户身份。