使用 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 元数据

  1. 登录到 OAM 控制台并导航到 "Configuration"(配置)> "Available Services"(可用服务)。
  2. 确认已启用 Identity Federation,或将其启用。
  3. 转至 "Configuration"(配置)> "Settings"(设置)> "View"(视图)> "Federation"(联盟)。
  4. 单击导出 SAML 2.0 元数据以下载 IDP 元数据。
  5. 将元数据文件另存为 oam_fed_idp_metadata.xml,以使用此文件在 WebLogic 中将 OAM 注册为 IDP。
  6. 编辑 oam_fed_idp_metadata.xml、删除 <md:RoleDescriptor ... </md:RoleDescriptor 标记并保存文件。WebLogic 不支持此标记。

PART B- 配置 WebLogic 服务提供商 (service provider,SP)

  1. 启用 SSL。
    1. WebLogic 控制台中,在域结构下,转到 "Environment"(环境)> "Servers"(服务器)> "essbase_server1" > "configuration"(配置)> "General"(常规)。选中 Listen Port Enabled(启用监听端口)复选框,并为受管服务器提供端口号。
    2. 在托管服务器上为协议 HTTP 启用 SSL。在域结构下,转到 "Environment"(环境)> "Servers"(服务器)> "essbase_server1 Protocol"(essbase_server1 协议)> "HTTP"。选中 SSL Listen Port Enabled 复选框并提供端口号。
    3. 转到 "Security Realms"(安全领域)> "myrealm" > "Configuration"(配置)> "General"(常规)选项卡。将安全模型设置为高级
  2. 使用 WebLogic 管理控制台创建身份断言器。
    1. 登录 WebLogic 控制台。
    2. 转至“主页”>“安全领域概要”>“myrealm”>“提供商”。
    3. 单击新建验证提供程序
    4. 单击确定
    5. 将提供程序名称输入为 SAML-IA ,然后选择类型 SAML2IdentityAsserter
    6. 单击确定
  3. 创建新的 SAMLAuthenticator 提供程序。
    1. 转到:首页 > 安全领域摘要 > myrealm > 提供商。
    2. 单击 Create a New Authentication Provider (新建验证提供程序)。
    3. 单击确定
    4. 将提供程序名称输入为 SAML-auth ,然后选择类型 SAMLAuthenticator
    5. 单击确定
  4. 将上面步骤中创建的验证器的 Control Flag 值更改为 SUFFICIENT
    1. 转到:首页 > 安全领域摘要 > myrealm > 提供商 > SAML-auth。
    2. 在 "Configuration"(配置)> "Common"(公用)下,将 Control Flag(控制标记)设置为 SUFFICIENT(足够)
    3. 单击保存
  5. 创建新的 oid-auth 提供程序。
    1. 转到:首页 > 安全领域摘要 > myrealm > 提供商。
    2. 单击新建验证提供程序
    3. 单击确定
    4. 以 oid-auth 形式输入提供程序名称,然后选择 OracleInternetDirectoryAuthenticator 类型。
    5. 单击确定
    6. 对于添加的 oid-auth 提供程序,将 Control Flag 更改为 SUFFICIENT ,然后单击 Save
  6. 选择“Provider Specific(提供程序特定)”选项卡,然后输入 OID 服务器详细信息。从 OAM 控制台 >“用户身份存储库”部分获取 OID 服务器详细信息。
    1. 从 "OAM Console configuration"(OAM 控制台配置)> "User Identity Store"(用户身份存储库),单击 OID store(OID 存储)
    2. 在 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
      • 使用检索到的用户名作为主用户:检查
    3. 接受其他字段的默认值,并保存所有更改。
  7. 为托管服务器启用联盟。
    1. 转到主页 > 环境服务器 > essbase_server1 > 配置 > 联盟服务。
    2. 在“SAML 2.0 服务提供程序”选项卡中,选择已启用选项并提供默认 URL 作为
      https://Essbase-Host:Essbase-Managed Server-SSL-Port/essbase/jet
      接受其余字段作为默认值并保存。
    3. 获取 IDP 配置的 SP 元数据:在 "SAML 2.0 General"(SAML 2.0 常规)选项卡中,提供相应的值并保存。
    4. 保存更改后,将 SP 元数据导出到 XML 文件,例如:sp_metadata.xml
    5. 单击发布元数据
  8. 使用从 OAM 框复制的 oam_fed_idp_metadata.xml 文件在 WebLogic 上创建 IDP 合作伙伴。
    1. 转到 "Security Realms"(安全领域)> "myrealm" > "Providers"(提供程序)> "Authentication"(验证)> "saml_IA" > "Management"(管理)> "New"(新建)> "New"(新建)> "Web Single Sign-On Identity Provider Partner Partner"(新建 Web 单点登录身份提供者合作伙伴),例如 WebSSO-IdP-Partner-oam。
    2. 选择 oam_fed_idp_metadata.xml file,然后单击确定
    3. 要启用 IDP 合作伙伴,请单击 WebSSO-IDP-Partner-oam 。选中 Enabled 复选框,然后提供重定向 URL。
  9. 在 OAM 控制台上配置 IDP。
    1. 转到 "Federation"(联盟)> "Identity Provider Management"(身份提供者管理)。
    2. 单击创建服务提供方合作伙伴
    3. 输入名称。
    4. 确保选择了启用合作伙伴
    5. 接受 SAML 2.0 作为协议(默认)。
    6. 选择从 WebLogic (SP) 下载的元数据文件。
    7. 指定名称 ID 格式设置
    8. 选择 Unspecified 作为 NameID 格式。
    9. 选择用户 ID 存储属性作为名称 ID 值。
    10. 在 LDAP 用户记录中输入包含用户标识符的用户属性。Oracle Internet Directory 是用户数据存储,属性为 uid
  10. 编辑 $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 单点登录

打开 Essbase 并运行
https://<essbase_vm>:<sslportno>/essbase/jet
请求将重定向到 OAM Federation 登录页。

注意:

如果出现注销问题,则为了完成注销操作,请关闭浏览器。