使用 MSAD 联盟服务的单点登录

可以使 Essbase 使用来自 Microsoft Active Directory (MSAD) Federation Services (FS) 的单点登录 (SSO)

  • 您必须根据集成 WebLogic 以使用 Microsoft Active Directory 中的说明将 Essbase 与 MSAD 集成。请注意,在此单点登录主题中无需显式分配角色,因为先决条件 WebLogic 集成中已解决了此问题。
  • 必须使 WebLogic 受管服务器启用 SSL,并且只能保护 HTTPS URL。此任务包含在以下步骤中。
  • 要使 Essbase 能够使用 MSAD Federation Services 的单点登录,必须按照显示的顺序执行以下任务。

第 A 部分 - 启动 Active Directory 联合服务 (ADFS) 并下载联合元数据 XML

  1. 连接到运行 ADFS 的 Microsoft Windows 系统并启动 ADFS 管理界面。这为客户端计算机提供了 SSO 访问权限。启动后,返回到源系统。
  2. Essbase 本地系统,使用以下示例链接下载 ADFS 元数据:
    https://<ADFS_hostname>/federationmetadata/2007-06/federationmetadata.xml
    WebLogic 与 ADFS 集成需要此元数据。
  3. 编辑 federationmetadata.xml 并删除以下标记,因为 WebLogic 无法识别这些标记。删除包括子标记在内的完整标记。
    • <ds:Signaturexmlns:ds="http://www.w3.org/2000/09/xmldsig#"> .......... </X509Data></KeyInfo></ds:Signature>
    • <RoleDescriptor xsi:type="fed:ApplicationServiceType" ........... </EndpointReference></fed:PassiveRequestorEndpoint></RoleDescriptor>
    • <RoleDescriptor xsi:type="fed:SecurityTokenServiceType" ........... </EndpointReference></fed:PassiveRequestorEndpoint></RoleDescriptor>
    • <SPSSODescriptor WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> ........... </SPSSODescriptor>

B 部分 - 配置服务提供商 (Service Provider,SP) SSO

  1. 启用 SSL:
    1. WebLogic 管理控制台中,转至 myrealm > Providers Summary of Environment > Summary of Servers > essbase_server1(为 Essbase 服务器设置页面。)
    2. 在 "Configuration"(配置)选项卡 > "General"(常规)选项卡中,选中 SSL Listen Port Enabled(启用 SSL 监听端口)复选框。
    3. 指定 SSL 监听端口。
    4. 单击保存
    5. 转到 "Protocols"(协议)> "HTTP" 选项卡,并指定前端主机、HTTP 端口和 HTTPS 端口详细信息。
    6. 保存并激活更改。
  2. 创建身份断言器:
    1. 转到 Security Realms > myrealm > Providers。
    2. 选择 Lock and edit
    3. 单击新建并创建一个新的 SAML2IdentityAsserter ,例如 saml_IA
  3. 创建新的验证提供程序:
    1. 通过输入提供程序名称(例如 samauth)输入新的提供程序。
    2. 选择新的提供程序类型,例如 SAMLAuthenticator,然后单击确定
    3. 单击新创建的提供程序,然后选择控制标志值以将其更改为 SUFFICIENT
    4. 保存所做的更改。
  4. 在 myrealm > Providers 下,对提供程序重新排序。例如:
    安全验证提供程序列表的图像

  5. 单击所有更改以激活和重新启动 WebLogic 管理服务器和托管服务器。
  6. WebLogic 重新启动后,登录到 WebLogic 管理控制台,然后转至“环境”>“服务器”>“Essbase_server1”>“联盟服务”>“SAML 2.0 服务提供程序”。
  7. 单击锁定并编辑
  8. 选择启用
  9. 将默认 URL 指定为
    https://<your-essbase-host>:<your Essbase SSL port>/essbase/jet/
    确保将 Preferred Binding 设置为 POST ,然后单击 Save
  10. 在 "Servers"(服务器)> "essbase_server1 Federation Services"(Essbase_server1 联盟服务)> "SAML 2.0 General"(SAML 2.0 一般信息)下,指定以下详细信息。
    1. 联系人详细信息。在 ADFS 中添加时,它不应与其他注册冲突。
    2. 发布的站点 URL 应为
      https://<Managed_server_host>:<Managed_Server_SSL_Port>/saml2
    3. 实体 ID 为 <wls_sp_for_adfs_hostname>。在 ADFS 中添加时,务必指定唯一名称,这样它就不会与其他注册冲突。
  11. 单击 Activate changes
  12. 单击发布元数据并将其保存到目录中。您必须将此文件注册到 ADFS。将 spd.xml 文件复制到 ADFS 所在的系统。
  13. 要在 WebLogic 服务器中注册 ADFS,请将下载的文件 federationmetadata.xml(在 STEP A 中生成)从 ADFS 计算机复制到 WebLogic Server 计算机。它必须可供 WebLogic AdminServer 访问,例如:/scratch/user/federationmetadata.xml
  14. 转到 "Security Realms myrealm Providers"(安全领域)> "Authentication"(验证)> "saml_IA Management"(saml_IA 管理)> "New"(新建)> "New"(新建)> "New Web Single Sign-On Identity Provider Partner"(新建 Web 单点登录身份提供者合作伙伴)。
  15. 单击 WebSSO-IdP-Partner-0 并输入以下内容:
    1. 说明:输入与名称相同的值。
    2. 输入重定向 URI:
      
      /essbase/jet/*
      /essbase/smartview
      /essbase/smartview/*
      /essbase/smartview*
      /essbase/ui
  16. 编辑 ./Oracle/domains/esscs/bin/setDomainEnv.sh 并将 -DLOGOUT_URL 添加到 JVM 参数 EXTRA_JAVA_PROPERTIES: EXTRA_JAVA_PROPERTIES="<Extra_Java_Properties> -DLOGOUT_URL=https://MSAD-Host/adfs/ls/?wa=wsignout1.0" export <Extra_Java_Properties>

    注意:

    Essbase 平台包含 <DOMAIN HOME>/bin 中的脚本,这些脚本可以定制 Essbase 功能的环境和行为。但是,如果对这些域环境或启动脚本进行更改,可能会有意外影响(包括启动失败)。Oracle 建议先在测试环境中进行更改。在编辑这些脚本之前,请始终:

    1. 使用 <DOMAIN HOME>/esstools/bin/stop.sh(在 Linux 上)或 <DOMAIN HOME>\esstools\bin\stop.cmd(在 Windows 上)停止 Essbase 托管服务器。

    2. <DOMAIN HOME>/bin 中,创建要编辑的文件的备份副本。例如:

      在 Linux 上

      cp setStartupEnv.sh setStartupEnv_bak.sh

      在 Windows 上

      copy setStartupEnv.cmd setStartupEnv_bak.cmd
    3. 仅按照 Oracle 的文档说明或与 Oracle 技术支持合作,小心地进行编辑。

    4. 使用 <DOMAIN HOME>/esstools/bin/start.sh(在 Linux 上)或 <DOMAIN HOME>\esstools\bin\start.cmd(在 Windows 上)重新启动 Essbase。检查启动是否正常完成。

  17. 激活更改后,重新启动 WebLogic AdminServer 和托管服务器。

第 C 部分 - 配置 ADFS IDP

  1. 转到运行 ADFS 管理界面的 ADFS 系统。在“信任关系”>“依赖方信任”下,右键单击并启动添加依赖方信任 ....
  2. 单击启动
  3. 从文件导入有关依赖方的数据选项中,浏览到联盟元数据文件位置 spd.xml 以从 WebLogic 下载,然后单击下一步
  4. 指定显示名称,然后单击下一步
  5. 选择 I do not want to configure multi-factor... ,然后单击 Next
  6. 接受缺省选项,然后单击下一步
  7. 选中打开“编辑索赔规则”对话框 ... 复选框。
  8. 在“编辑索赔规则”对话框中,单击添加规则
  9. 选择规则模板将 LDAP 属性发送为索赔
  10. 请输入以下内容:
    1. 输入索赔规则名称Name
    2. 选择 Attribute store(属性存储)Active Directory
    3. LDAP 属性下,选择 SAM-Account-Name
    4. 传出索赔类型下,选择 Name ID
  11. 单击完成
  12. 同样,添加另一个规则“索赔规则名称:GivenName;属性存储:Active Directory;在 LDAP 属性下,选择 Given-Name ;在“传出索赔”类型下,选择 Given Name ;然后单击 Finish(完成)
  13. 在“编辑索赔规则”对话框中单击应用,然后将其关闭。
  14. 双击新添加的中继方信任,然后转到“高级”选项卡。选择安全散列算法:SHA-1
  15. 单击“Endpoints(端点)”>“Add SAML(添加 SAML)”,然后输入如下所示的详细信息。
    1. 端点类型:SAML 注销
    2. 绑定:POST
    3. 可信 URL :(格式为:https://host:port/adfs/ls/?wa=wsignout1.0
  16. 记录您在上面的步骤 10c Part B - Configure Service Provider (SP) SSO 中输入的实体 ID。然后打开电源 shell 并运行以下命令:
    set-AdfsRelyingPartyTrust -targetIdentifier <Entity ID> -SigningCertificateRevocationCheck None -EncryptionCertificateRevocationCheck None

    设置现在已完成。

D 部分 - 测试 MSAD FS 单点登录

  1. 在 HTTPS URL 中启动 Essbase,例如 HTTPS://host:port/essbase/jet。
  2. 您应该在 Essbase 用户界面的右上角看到 MSAD 用户。

    注意:

    如果注销后浏览器会话已关闭(已删除),则重新启动浏览器以以其他用户身份登录。