使用 Oracle Access Management Identity Federation 服务的单点登录
您可以启用 Essbase 内部部署以使用来自 Oracle Access Management Identity Federation Services (FS) 的单点登录 (SSO)。本节介绍如何将 Oracle Access Management Identity Federation 配置为身份提供者 (IDP),以便与 WebLogic 一起使用作为服务提供者 (SP)。
- 您必须具有启用了联盟服务的 Oracle Access Manager (OAM) 环境。OAM 与 LDAP 目录集成,例如 OUD、OID 或 AD。此处,OID 与 OAM 集成。
- 您必须安装 Essbase 。
- 要使 Essbase 能够使用 Oracle Access Management Identity Federation Services 进行单点登录,必须按显示的顺序执行以下任务。
PART A- 获取 SP 配置的 IDP 元数据
- 登录到 OAM 控制台并导航到 "Configuration"(配置)> "Available Services"(可用服务)。
- 确认已启用 Identity Federation,或将其启用。
- 转至 "Configuration"(配置)> "Settings"(设置)> "View"(视图)> "Federation"(联盟)。
- 单击导出 SAML 2.0 元数据以下载 IDP 元数据。
- 将元数据文件另存为
oam_fed_idp_metadata.xml,以使用此文件在 WebLogic 中将 OAM 注册为 IDP。 - 编辑
oam_fed_idp_metadata.xml、删除<md:RoleDescriptor ... </md:RoleDescriptor标记并保存文件。WebLogic 不支持此标记。
PART B- 配置 WebLogic 服务提供商 (service provider,SP)
- 启用 SSL。
- 在 WebLogic 控制台中,在域结构下,转到 "Environment"(环境)> "Servers"(服务器)> "essbase_server1" > "configuration"(配置)> "General"(常规)。选中 Listen Port Enabled(启用监听端口)复选框,并为受管服务器提供端口号。
- 在托管服务器上为协议 HTTP 启用 SSL。在域结构下,转到 "Environment"(环境)> "Servers"(服务器)> "essbase_server1 Protocol"(essbase_server1 协议)> "HTTP"。选中 SSL Listen Port Enabled 复选框并提供端口号。
- 转到 "Security Realms"(安全领域)> "myrealm" > "Configuration"(配置)> "General"(常规)选项卡。将安全模型设置为高级。
- 使用 WebLogic 管理控制台创建身份断言器。
- 登录 WebLogic 控制台。
- 转至“主页”>“安全领域概要”>“myrealm”>“提供商”。
- 单击新建验证提供程序。
- 单击确定。
- 将提供程序名称输入为 SAML-IA ,然后选择类型 SAML2IdentityAsserter 。
- 单击确定。
- 创建新的 SAMLAuthenticator 提供程序。
- 转到:首页 > 安全领域摘要 > myrealm > 提供商。
- 单击 Create a New Authentication Provider (新建验证提供程序)。
- 单击确定。
- 将提供程序名称输入为 SAML-auth ,然后选择类型 SAMLAuthenticator 。
- 单击确定。
- 将上面步骤中创建的验证器的 Control Flag 值更改为 SUFFICIENT 。
- 转到:首页 > 安全领域摘要 > myrealm > 提供商 > SAML-auth。
- 在 "Configuration"(配置)> "Common"(公用)下,将 Control Flag(控制标记)设置为 SUFFICIENT(足够)。
- 单击保存。
- 创建新的 oid-auth 提供程序。
- 转到:首页 > 安全领域摘要 > myrealm > 提供商。
- 单击新建验证提供程序。
- 单击确定。
- 以 oid-auth 形式输入提供程序名称,然后选择 OracleInternetDirectoryAuthenticator 类型。
- 单击确定。
- 对于添加的 oid-auth 提供程序,将 Control Flag 更改为 SUFFICIENT ,然后单击 Save 。
- 选择“Provider Specific(提供程序特定)”选项卡,然后输入 OID 服务器详细信息。从 OAM 控制台 >“用户身份存储库”部分获取 OID 服务器详细信息。
- 从 "OAM Console configuration"(OAM 控制台配置)> "User Identity Store"(用户身份存储库),单击 OID store(OID 存储)。
- 在 oid-auth Provider 的“特定于提供程序”部分中,使用适当的值更新以下部分。
- 连接部分:
- 输入主机:OID 服务器的主机名
- 主体:cn=orcladmin,cn=users,dc=us,dc=oracle,dc=com
- 身份证明确认身份证明:提供身份证明
- 用户:用户基础 DN:cn=users,dc=us,dc=oracle,dc=com
- 组:组基本 DN:cn=groups,dc=us,dc=oracle,dc=com
- 使用检索到的用户名作为主用户:检查
- 连接部分:
- 接受其他字段的默认值,并保存所有更改。
- 为托管服务器启用联盟。
- 转到主页 > 环境服务器 > essbase_server1 > 配置 > 联盟服务。
- 在“SAML 2.0 服务提供程序”选项卡中,选择已启用选项并提供默认 URL 作为
接受其余字段作为默认值并保存。https://Essbase-Host:Essbase-Managed Server-SSL-Port/essbase/jet - 获取 IDP 配置的 SP 元数据:在 "SAML 2.0 General"(SAML 2.0 常规)选项卡中,提供相应的值并保存。
- 保存更改后,将 SP 元数据导出到 XML 文件,例如:
sp_metadata.xml。 - 单击发布元数据。
- 使用从 OAM 框复制的 oam_fed_idp_metadata.xml 文件在 WebLogic 上创建 IDP 合作伙伴。
- 转到 "Security Realms"(安全领域)> "myrealm" > "Providers"(提供程序)> "Authentication"(验证)> "saml_IA" > "Management"(管理)> "New"(新建)> "New"(新建)> "Web Single Sign-On Identity Provider Partner Partner"(新建 Web 单点登录身份提供者合作伙伴),例如 WebSSO-IdP-Partner-oam。
- 选择
oam_fed_idp_metadata.xml file,然后单击确定。 - 要启用 IDP 合作伙伴,请单击 WebSSO-IDP-Partner-oam 。选中 Enabled 复选框,然后提供重定向 URL。
- 在 OAM 控制台上配置 IDP。
- 转到 "Federation"(联盟)> "Identity Provider Management"(身份提供者管理)。
- 单击创建服务提供方合作伙伴。
- 输入名称。
- 确保选择了启用合作伙伴。
- 接受 SAML 2.0 作为协议(默认)。
- 选择从 WebLogic (SP) 下载的元数据文件。
- 指定名称 ID 格式设置。
- 选择 Unspecified 作为 NameID 格式。
- 选择用户 ID 存储属性作为名称 ID 值。
- 在 LDAP 用户记录中输入包含用户标识符的用户属性。Oracle Internet Directory 是用户数据存储,属性为
uid。
- 编辑
$ORACLE_HOME/user_projects/domains/Essbase-Domain/bin/setDomainEnv.sh并添加-DLOGOUT_URL to the JVM arg EXTRA_JAVA_PROPERTIES,如下所示:更改之前:EXTRA_JAVA_PROPERTIES="-Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder ${EXTRA_JAVA_PROPERTIES}"更改后:EXTRA_JAVA_PROPERTIES="-Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder -DLOGOUT_URL=http://OAM-Host:OAM-Port/oam/server/logout ${EXTRA_JAVA_PROPERTIES}"
PART C - 分配角色
OID 集成后,嵌入式 LDAP 用户(例如 WebLogic )无法登录到 Essbase 界面。仅允许 REST/MaxL 操作。使用嵌入式 LDAP 管理员用户,使用 REST 将 Essbase 角色分配给 OID 用户。OID 用户只能在分配角色后登录到 Essbase。
将角色分配给至少一个 OID 用户(管理员)后,该 OID 用户可以登录到 Essbase 并直接通过界面将角色分配给其他用户。
基于 REST 的分配示例,如下所示:curl --insecure -X PUT -u weblogic:samplepass "http://host:9000/essbase/rest/v1/permissions/user1" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"links\": [ { \"rel\": \"string\", \"href\": \"string\", \"method\": \"string\", \"type\": \"string\" } ], \"id\": \"user1\", \"name\": \"user1\", \"role\": \"service_administrator\", \"group\": false}"
D 部分:测试 OAM FS 单点登录
https://<essbase_vm>:<sslportno>/essbase/jet请求将重定向到 OAM Federation 登录页。注意:
如果出现注销问题,则为了完成注销操作,请关闭浏览器。