概览
如果为托管 EPM System 产品的应用程序服务器设置了 Kerberos 身份验证,Oracle Enterprise Performance Management System 产品将支持 Kerberos SSO。
Kerberos 是一个受信任的身份验证服务,其中每个 Kerberos 客户端信任其他 Kerberos 客户端(用户、网络服务等)的身份。
用户访问 EPM System 产品时,会发生以下情况:
支持限制
支持为所有 EPM System 产品使用 Kerberos SSO,但有以下例外:
假设
本文档包含应用程序级别的 Kerberos 配置步骤,且假定您已掌握系统级别的 Kerberos 配置知识。在开始这些过程之前,请确认已满足这些任务的先决条件。
本文档假定您在使用完全功能且已启用 Kerberos 的网络环境中工作,该环境中已配置用于 Kerberos 身份验证的 Windows 客户端。
针对 WebLogic Server 的 Kerberos SSO
Oracle WebLogic Server Kerberos SSO 使用 Negotiate Identity Asserter 来协商和解码 SPNEGO 令牌,以便针对 Microsoft 客户端启用 SSO。WebLogic Server 解码 SPNEGO 令牌以获得 Kerberos 票证,并在验证票证后将其映射到 WebLogic Server 用户。您可以将 WebLogic Server 的 Active Directory 身份验证器与 Negotiate Identity Asserter 一起使用,以将 Active Directory 配置为 WebLogic Server 用户的用户目录。
当浏览器请求访问 EPM System 产品时,KDC 将向浏览器发出 Kerberos 票证,该票证将创建包含支持的 GSS 令牌类型的 SPNEGO 令牌。Negotiate Identity Asserter 解码 SPNEGO 令牌,并使用 GSSAPI 来接受安全上下文。发起请求的用户的标识将映射为用户名,并回传到 WebLogic Server。此外,WebLogic Server 将确定用户所属的组。在此阶段,将向用户提供所请求的 EPM System 产品。
注:
用户必须使用支持 SPNEGO 的浏览器(例如,Internet Explorer 或 Firefox)来访问在 WebLogic Server 上运行的 EPM System 产品。
EPM System 产品授权过程使用派生自身份验证过程的用户 ID 检查设置数据。将基于设置数据对 EPM System 产品访问进行限制。
支持 Kerberos 身份验证的 WebLogic Server 步骤
管理员应完成以下任务以支持 Kerberos 身份验证:
为 EPM System 创建 WebLogic 域
通常,可以将 EPM System 组件部署到 EPMSystem
WebLogic 域中(默认位置是 MIDDLEWARE_HOME/user_projects/domains/EPMSystem
)。
要配置 EPM System WebLogic 域使用 Kerberos 身份验证:
Foundation Services 部署会创建默认的 EPM System WebLogic 域。
在 WebLogic Server 中创建 LDAP 身份验证提供程序
WebLogic Server 管理员可创建 LDAP 身份验证提供程序,该程序将用户和组信息存储在外部 LDAP 服务器中。遵循 LDAP v2 或 v3 标准的 LDAP 服务器可与 WebLogic Server 结合使用。请参阅以下参考资料:
创建 Negotiate Identity Asserter
Negotiate Identity Assertion 提供程序可针对 Microsoft 客户端启用 SSO。它会解码 SPNEGO 令牌以获取 Kerberos 令牌,并在验证 Kerberos 令牌后将其映射到 WebLogic 用户。Negotiate Identity Assertion 提供程序是根据 WebLogic Security Framework 的定义进行的安全服务提供程序接口 (SSPI) 实施,提供了根据客户端的 SPNEGO 令牌对客户端进行身份验证的必要逻辑。
在创建 Negotiate Identity Assertion 提供程序时,将所有身份验证器的“JAAS 控制标志”选项设置为 SUFFICIENT
。请参阅《Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help》中的 "Set the JAAS control flag"。
为 WebLogic Server 创建 Kerberos 标识
在 Active Directory 域控制器计算机上,创建表示 WebLogic Server 和 EPM System Web 服务器的用户对象,然后将它们映射到表示 Kerberos 领域中 WebLogic Server 和 Web 服务器的服务主体名称 (SPN)。客户端无法定位到没有 SPN 的服务。您可将 SPN 存储在密码表文件中,系统会将这些文件复制到登录过程中要使用的 WebLogic Server 域中。
有关详细过程,请参阅《Oracle Fusion Middleware Securing Oracle WebLogic Server》指南中的 "Creating identification for WebLogic Server"。
要为 WebLogic Server 创建 Kerberos 标识:
epmHost
。
注:
将标识创建为用户对象(而不是计算机)。使用计算机的简单名称;例如,如果主机名称为 epmHost.example.com
,则使用 epmHost
。
记录创建用户对象时使用的密码。创建 SPN 时会需要它。
请勿选择任何密码选项,尤其是用户必须在下次登录时更改密码
选项。
不要求 Kerberos 预身份验证
)。epmHost
) 相关联。
setspn -L epmHost
ktpass -princ HTTP/epmHost.example.com@EXAMPLE.COM -pass password -mapuser epmHost -out c:\epmHost.keytab
MIDDLEWARE_HOME/jdk/bin
。ktab -k keytab_filename -a epmHost@example.com
C:\Oracle\Middleware\user_projects\domains\EPMSystem
中。kinit -k -t keytab-file account-name
在此命令中,account-name
指示 Kerberos 主体;例如,HTTP/epmHost.example.com@EXAMPLE.COM
。此命令的输出应类似如下所示:
New ticket is stored in cache file C:\Documents and Settings\Username\krb5cc_MachineB
更新 Kerberos 的 JVM 选项
请参阅《Oracle Fusion Middleware Securing Oracle WebLogic Server 12c Release (12.2.1.4)》中的 "Using Startup Arguments for Kerberos Authentication with WebLogic Server" 和 "Creating a JAAS Login File"。
如果 EPM System 受管服务器作为 Windows 服务运行,则更新 Windows 注册表以设置 JVM 启动选项。
要在 Windows 注册表中更新 JVM 启动选项:
注:
下表中列出的名称是一些示例。
表 3-4 Kerberos 身份验证的 JVM 启动选项
名称 | 类型 | 数据 |
---|---|---|
JVMOption44 | REG_SZ | -Djava.security.krb5.realm=Active Directory Realm Name |
JVMOption45 | REG_SZ | -Djava.security.krb5.kdc=Active Directory host name or IP address |
JVMOption46 | REG_SZ | -Djava.security.auth.login.config=location of Kerberos login configuration file |
JVMOption47 | REG_SZ | -Djavax.security.auth.useSubjectCredsOnly=false |
更新 JVMOptionCount DWord 的值以反映添加的 JVMOptions(当前的小数值加 4)。
配置授权策略
有关为访问 EPM System 的 Active Directory 用户配置授权策略的信息,请参阅《Oracle Fusion Middleware Securing Resources Using Roles and Policies for Oracle WebLogic Server》指南中的 "Options for Securing Web Application and EJB Resources"。
有关示例策略配置步骤,请参阅“创建 SSODiag 策略”。
使用 SSODiag 测试 Kerberos 环境
SSODiag 是一个诊断性的 Web 应用程序,可以测试 Kerberos 环境中的 WebLogic Server 是否已准备好支持 EPM System。
部署 SSODiag
使用部署 Foundation Services 时指定的 WebLogic Server 管理员凭据(默认用户名为 epm_admin
)来部署 SSODiag。
要部署和配置 SSOdiag:
在“更改中心”中,单击锁定并编辑
/products/Foundation/AppServer/InstallableApps/common/SSODiag.war
。配置 Oracle HTTP Server 处理 SSODiag
更新 mod_wl_ohs.conf
以配置 Oracle HTTP Server,将 SSODiag URL 请求转发到 WebLogic Server。
要配置 Oracle HTTP Server 中的 URL 转发:
/httpConfig/ohs/config/fmwconfig/components/OHS/ohs_component/mod_wl_ohs.conf
。LocationMatch
定义:
<LocationMatch /SSODiag/> SetHandler weblogic-handler WeblogicCluster myServer:28080 </LocationMatch>
在先前的示例中,myServer
表示 Foundation Services 主机,28080
表示 Oracle Hyperion Shared Services 在其上侦听请求的端口。
mod_wl_ohs.conf
。创建 SSODiag 策略
在 WebLogic Server 管理控制台中创建策略以保护以下 SSODiag URL。
http://OHS_HOST_NAME:PORT/SSODiag/krbssodiag
在本示例中,OHS_HOST_NAME
表示托管 Oracle HTTP Server 的服务器名称,PORT
表示 Oracle HTTP Server 在其上侦听请求的端口。
要创建策略以保护 SSODiag:
/
/index.jsp
krbuser1
),然后选择添加。krbuser1
是 Active Directory 或 Windows 桌面用户。选择保存。
使用 SSODiag 测试用于 Kerberos 身份验证的 WebLogic Server 配置
如果用于 Kerberos 身份验证的 WebLogic Server 配置正常运行,则 Oracle Hyperion Kerberos SSO diagnostic Utility V 1.0 页会显示以下信息:
Retrieving Kerberos User principal name... Success.
Kerberos principal name retrieved... SOME_USER_NAME
注意:
如果 SSODiag 无法检索 Kerberos 主体名称,请勿配置 EPM System 组件使用 Kerberos 身份验证。
要测试用于 Kerberos 身份验证的 WebLogic Server 配置:
http://OHS_HOST_NAME:PORT/SSODiag/krbssodiag
在本示例中,OHS_HOST_NAME
表示托管 Oracle HTTP Server 的服务器名称,PORT
表示 Oracle HTTP Server 在其上侦听请求的端口。
如果 Kerberos 身份验证正常运行,SSODiag 将显示以下信息:
Retrieving Kerberos User principal name... Success.
Kerberos principal name retrieved... SOME_USER_NAME
如果 Kerberos 身份验证不能正常运行,SSODiag 将显示以下信息:
Retrieving Kerberos User principal name... failed.
更改安全模型
由安全领域保护的 Web 应用程序的安全模型是 DDonly
。您必须将安全模型更改为 CustomRolesAndPolicies
。
要更改安全模型:
MIDDLEWARE_HOME/user_projects/domains/EPMSystem/config/config.xml
。<security-dd-model>DDOnly</security-dd-model>
<security-dd-model>CustomRolesAndPolicies</security-dd-model>
config.xml
。更新 EPM System 安全配置
更改 EPM System 安全配置以启用 Kerberos SSO。
要配置 EPM System 使用 Kerberos 身份验证:
在安全选项中,选择下表中的设置以启用 Kerberos SSO。
表 3-5 启用 Kerberos SSO 的设置
字段 | 所需的设置 |
---|---|
启用 SSO | 已选中 |
SSO 提供程序或代理 | 其他 |
SSO 机制 | 从 HTTP 请求获取远程用户 |
测试 Kerberos SSO
登录到 Foundation Services 以验证 Kerberos SSO 是否在正常运行。
要测试 Kerberos SSO:
配置 EPM System 组件
使用 EPM System Configurator 配置其他 EPM System 组件,并将其部署到已部署 Foundation Services 的 WebLogic 域。
配置用于 Kerberos 身份验证的 EPM System 受管服务器
在 Microsoft Windows 环境中,EPM System 受管服务器作为 Windows 服务运行。您必须修改每个 WebLogic 受管服务器的启动 JVM 选项。非紧凑部署模式下的受管服务器综合列表:
如果 EPM System Web 应用程序在紧凑部署模式下部署,则仅需要更新 EPMSystem0
受管服务器的启动 JVM 选项。如果有多个紧凑的受管服务器,则必须更新所有受管服务器的启动 JVM 选项。
请参阅《Oracle Fusion Middleware Securing Oracle WebLogic Server》指南中的 "Using Startup Arguments for Kerberos Authentication with WebLogic Server"。
注:
以下过程介绍如何设置 FoundationServices 受管服务器的启动 JVM 选项。您必须为部署中的每个 WebLogic 受管服务器执行此任务。有关在 WebLogic Server 启动脚本中配置 JVM 选项的详细信息,请参阅“更新 Kerberos 的 JVM 选项”。
要在 WebLogic Server 启动脚本中配置 JVM 选项
配置授权策略
为将访问 EPM System 组件(Foundation Services 除外)的 Active Directory 用户配置授权策略。有关通过 WebLogic 管理控制台配置安全策略的信息,请参阅“配置授权策略”。
更改 EPM System 组件的默认安全模型
可以编辑 EPM System 配置文件以更改默认的安全模型。对于非紧凑 EPM System 部署,必须更改 config.xml
中记录的每个 EPM System Web 应用程序的默认安全模型。EPM System Web 应用程序列表:
要更改安全模型:
MIDDLEWARE_HOME/user_projects/domains/EPMSystem/config/config.xml
<security-dd-model>
的值设置为 CustomRolesAndPolicies
:
<app-deployment> <name>SHAREDSERVICES#11.1.2.0</name> <target>EPMServer</target> <module-type>ear</module-type> <source-path>C:\Oracle\Middleware\EPMSystem11R1/products/Foundation/AppServer/InstallableApps/common/interop.ear</source-path> <security-dd-model>CustomRolesAndPolicies</security-dd-model> <staging-mode>nostage</staging-mode> </app-deployment>
config.xml
。为 EPM System 组件创建 URL 保护策略
在 WebLogic Server 管理控制台中,创建 URL 保护策略以保护每个 EPM System 组件的 URL。有关详细信息,请参阅《Oracle Fusion Middleware Securing Resources Using Roles and Policies for Oracle WebLogic Server》指南中的 "Options for Securing Web Applications and EJB Resources"。
要创建 URL 保护策略:
PLANNING
),然后单击其 Web 服务器(例如 HyperionPlanning
)。有关 EPM System 组件的列表,请参阅“更改 EPM System 组件的默认安全模型”。
注:
一些企业应用程序(例如 Oracle Essbase Administration Services),包含多个 Web 应用程序,必须对它们的 URL 模式进行定义。Oracle 建议使用组
条件,这会将安全策略授予指定组中的所有成员。
组
,则应完成以下步骤:如果 WebLogic Server 无法在 Active Directory 中找到组,则会显示一条错误消息。您必须先解决此错误,然后再继续。
在 Web 应用程序中启用基于客户端证书的身份验证
在 EPM_ORACLE_HOME/products/
中以下应用程序存档的配置文件中,插入 login-config
定义。
Essbase/eas/server/AppServer/InstallableApps/Common/eas.ear
FinancialDataQuality/AppServer/InstallableApps/aif.ear
financialreporting/InstallableApps/HReports.ear
Profitability/AppServer/InstallableApps/common/profitability.ear
要启用基于客户端证书的身份验证:
EPM_ORACLE_HOME/products/Essbase/eas/server/AppServer/InstallableApps/Common/eas.ear/eas.war
。WEB-INF
。web.xml
,在紧挨 </webapp>
元素的前面添加以下 login_config
定义:
<login-config> <auth-method>CLIENT-CERT</auth-method> </login-config>
web.xml
。更新 EPM System 安全配置
配置 EPM System 安全以使用 SSO。请参阅“针对 SSO 配置 EPM System”。