注:
- 此教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室时,请将这些值替换为特定于云环境的那些值。
使用 OCI IAM 身份域为 PeopleSoft 应用配置无缝验证
简介
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 身份域是一个全面的身份即服务 (IDaaS) 解决方案,可用于解决各种 IAM 使用场景。OCI IAM 可用于管理许多云和内部部署应用中用户的访问,从而为最终用户提供安全验证、轻松管理权利和无缝 SSO。您可能还希望配置身份域以允许业务合作伙伴访问供应链或订购系统。此外,您还可以使用身份域为面向消费者的应用程序启用 IAM,并允许消费者用户执行自行注册、社交登录和/或使用条款同意书。
如果您需要在 Oracle PeopleSoft 应用程序(内部部署或 OCI)之间提供无缝登录体验,请使用 OCI IAM 身份域启用单点登录。OCI IAM 身份域具有称为应用程序网关的功能,该功能是部署在代理配置中的基于 Nginx 的软件设备。为了增强安全性,您可以利用登录策略中的自适应安全性来强制实施允许或拒绝访问,或者对更严格的 MFA 机制进行逐步验证。
听众
本教程面向 OCI IAM 管理员。假设您熟悉虚拟环境中的计算、网络和存储,包括 IAM 概念。需要了解 OCI IAM 。
目标
使用 OCI IAM 身份域为 PeopleSoft 应用程序配置无缝验证。
先决条件
- 使用应用程序网关功能需要具有 Oracle Apps Premium 许可证的 OCI IAM 身份域租户。
- 域上需要具有身份域管理员或安全管理员角色的用户才能下载应用程序网关文件并注册机密应用程序。
- 一个功能完备的 PeopleSoft HCM 应用。
体系结构
此架构图显示了 OCI IAM 身份域、应用程序网关和 Oracle PeopleSoft 应用程序之间的流。
应用程序网关充当反向代理。它拦截对 PeopleSoft Web 用户界面的所有 HTTP 请求,并确保用户已登录并有权访问应用程序。OCI IAM 身份域处理 PeopleSoft 应用程序的验证。
注:应用程序网关部署在与 Oracle PeopleSoft 应用程序相同的网络基础结构上。这两个组件必须具有彼此的网络可见性。应用程序网关仅保护对 HTTP 资源(Web UI 主要)的访问。
以下步骤说明不同组件之间的验证流:
- 在 Web 浏览器中,用户通过应用程序网关公开的 URL 请求访问 PeopleSoft 应用程序。
- 应用网关拦截请求,验证用户以前未登录,然后将浏览器重定向到 OCI IAM 身份域。
- OCI IAM 身份域显示登录页。
- 用户提供登录身份域所需的身份证明。
- 验证成功后,OCI IAM 身份域将为用户创建会话并向应用程序网关发出安全断言标记语言 (Security Assertion Markup Language,SAML) 标记。
- 应用程序网关接收 SAML 令牌、标识用户、在请求中添加标头变量并将请求转发到 PeopleSoft 应用程序。
- PeopleSoft 应用程序接收头变量、标识用户并启动 PeopleSoft 用户会话。
任务 1:设置应用程序网关服务器
软件设备设备网关从 OCI IAM 身份域控制台的压缩 (.zip) 文件中下载。此文件包含 Open Virtual Appliance (.ova) 文件,该文件需要用于安装应用程序网关服务器。
可以使用此文档中提到的步骤,轻松地在 OCI 上的计算实例或托管在您的网络环境中的虚拟机或者在本地计算机上运行的 Oracle VM Virtual Box Manager 中安装应用网关服务器。
注:也可以使用 Docker 部署应用程序网关。此文档介绍了如何创建和运行应用程序网关 Docker 容器。
任务 2:在 OCI IAM 身份域中为 PeopleSoft 应用程序创建企业应用程序
在以下步骤中,我们将使用应用程序网关公开的 URL 在 OCI IAM 中为 PeopleSoft 应用程序创建企业应用程序。
-
登录到 OCI 租户并导航到相应的身份域。
-
单击应用程序,转至添加应用程序选项卡,然后选择企业应用程序以启动工作流。
-
为应用程序和应用程序 URL 提供名称。
注:
- 应用程序 URL 由应用程序网关公开,因此 IP 地址和端口是应用程序网关服务器的。
- 本教程使用 PeopleSoft ERP 应用程序,因此端点
/psc/peoplesoft01_22/EMPLOYEE/ERP/c/NUI_FRAMEWORK.PT_LANDINGPAGE.GBL?
。 - 对于 PeopleSoft HCM,请使用
/psc/peoplesoft01_22/EMPLOYEE/HRMS/c/NUI_FRAMEWORK.PT_LANDINGPAGE.GBL?
。
-
选择在“我的应用程序中显示”可在所分配用户的“我的应用程序”页中显示应用程序。如果希望仅允许分配的用户访问应用程序,请选择必须向用户授予此应用程序。
-
在配置 OAuth 部分中选择跳过以备后用。
-
在配置单点登录部分中,单击添加资源以添加以下资源。
-
添加资源后,通过单击添加托管资源并选择验证方法作为表单或访问令牌为每个资源创建验证策略。
-
添加提及的标头名称和值。
-
确保已启用
Require secure cookies
和Add managed resources
选项。注:验证策略定义要使用哪个验证方法来保护企业应用程序资源,以及应用程序网关是否将标头变量添加到它转发到应用程序的请求。
-
-
设置完成后激活应用程序,然后将其分配给相应的
users
或groups
。
任务 3:在 OCI IAM 身份域中注册应用程序网关服务器
在配置应用程序网关之前,必须在身份域中注册已部署的应用程序网关服务器。我们将添加主机并将主机与域中的 PeopleSoft 企业应用程序关联,应用程序网关将保护该应用程序。
-
在 OCI 身份域控制台中,单击安全性,单击应用程序网关,然后单击创建应用程序网关。
-
指定应用程序网关的名称,然后单击下一步。
-
在添加主机窗格中,单击添加主机。
-
在添加主机对话框的主机标识符字段中提供名称。
-
输入应用程序网关服务器将响应 HTTP 请求的主机和端口值。
-
允许应用程序网关以安全模式 (HTTPS) 侦听 HTTP 请求,方法是选中 SSL Enabled 复选框并单击添加主机。
注:需要使用应用程序网关服务器将使用的证书密钥对指定其他属性文本区域、SSL 协议和密码。/etc/ssl/private/server.crt 是应用程序网关服务器中证书文件的完整路径。/etc/ssl/private/server.key 是该证书文件的密钥。安装应用程序网关二进制文件后,必须将两个文件上载到应用程序网关服务器。
ssl_certificate /scratch/oracle/cloudgate/home/bin/server.crt; ssl_certificate_key /scratch/oracle/cloudgate/home/bin/server.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5;
-
-
在添加应用程序选项卡中,单击添加应用程序。选择要保护的企业应用程序,然后选择以前添加的主机。在资源前缀字段中,使用
/
,并在源服务器中指定 PeopleSoft 应用程序的基本 URL。注:资源前缀中的
/
表示每个请求 aftere 根路径都将转发到您选择的企业应用程序。如果应用程序无法直接访问,但无法通过 Web 代理访问,请在源服务器字段中输入 Web 代理的 URL。 -
单击激活应用程序网关,并记下用于配置应用程序网关的客户端 ID 和客户端密钥。
任务 4:配置应用程序网关
应用程序网关服务器准备就绪后,可以通过 SSH 客户机使用默认身份证明轻松访问该服务器。
Localhost login: oracle
Password: cloudgateR0X!
注意:必须在首次登录时更改预配的密码。
登录到应用程序网关服务器后,执行以下步骤:
-
执行
sudo yum updateinfo list security all
命令并提供 sudo 口令。此命令列出应用程序网关 Oracle Linux 服务器的安全勘误表。要更新与安全相关的勘误表可用于软件包最新版本的所有软件包,请输入sudo yum --security update
。 -
执行
telnet <idcs-tenant>.identity.oraclecloud.com
命令以确认应用程序网关服务器可以访问 OCI IAM 身份域实例。如果未安装telnet
,请使用sudo yum install telnet-server telnet
命令安装它,然后重试。 -
生成 CSR 并使其由 CA 签名以在 SSL 模式下配置应用程序网关。对于测试目的或 POC,可以使用自签名证书。下面是生成一个步骤。
openssl genrsa -aes128 -out server.key 2048 openssl rsa -in server.key -out server.key openssl req -new -days 3650 -key server.key -out server.csr openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
-
应用更新后重新启动应用程序网关服务器。
-
执行
nslookup <your_identity_cloud_service_domain>
命令,复制服务器 IP 地址,并在/usr/local/nginx/conf/nginx-cg-sub.conf
文件中更新解析程序条目。 -
导航到
/scratch/oracle/cloudgate/ova/bin/setup
文件夹,然后编辑cloudgate-env
文件以包含以下参数。a.IDCS_INSTANCE_URL :OCI IAM 身份域 URL 的 URL。
b.CG_APP_TENANT :身份域实例的租户名称。例如,
idcs-123456789
。c.CG_APP_NAME :在 OCI IAM 身份域中注册应用程序网关服务器时收集的客户端 ID 值。
d.CG_APP_SECRET :在 OCI IAM 身份域中注册应用程序网关服务器时收集的客户端密钥值。
e.CG_CALLBACK_PREFIX :如果在 SSL 模式下配置了应用程序网关 (HTTPS),则将值设置为
https://%hostid%
。否则,请使用http://%hostid%
作为此参数的值。 -
导航到
/scratch/oracle/cloudgate/ova/bin/setup
文件夹并执行./setup-cloudgate
命令。出现提示时,输入y
以继续配置。查看并验证用于云门配置的所有参数。
注:通过引用此文档,可以轻松解决在配置应用程序网关时可能遇到的常见问题。
任务 5:Oracle PeopleSoft 应用程序配置
使用管理员凭证登录到 PeopleSoft 控制台,并执行文档中提到的步骤为 SSO 配置 PeopleSoft 应用程序。
任务 6:测试对 PeopleSoft 应用程序的访问
将应用程序网关服务器配置为与 OCI IAM 身份域通信并启动服务器后,测试对企业应用程序的访问。由于应用程序网关代理您的 PeopleSoft 应用程序,因此请使用应用程序网关基本 URL 访问应用程序,而不是 PeopleSoft 应用程序实际 URL。
-
打开新的 Web 浏览器并使用应用程序网关 URL 访问应用程序。在此示例中,URL 为:
https://##.##.##.##:4443/psc/peoplesoft01_22/EMPLOYEE/ERP/c/NUI_FRAMEWORK.PT_LANDINGPAGE.GBL?
。 -
应用程序网关拦截请求并与 OCI IAM 身份域通信,以验证 URL 是否与企业应用程序对应。在此示例中,
PSFT
已注册,此企业应用程序的验证策略为表单或访问令牌。 -
应用程序网关将验证请求是否在
Authorization Bearer
标头或身份域会话 cookie 中包含有效的身份域访问令牌,指示用户已登录到 OCI IAM 身份域。 -
如果用户尚未登录到 OCI IAM 身份域,则应用程序网关会将用户浏览器重定向到 OCI IAM 身份域的登录页面。
-
如果用户已登录,则应用程序网关会将标头变量和 Cookie 添加到请求,然后将请求转发到 PeopleSoft 应用程序。
-
应用程序接收请求,使用头变量标识用户以显示
/psc/peoplesoft01_22/EMPLOYEE/ERP/c/NUI_FRAMEWORK.PT_LANDINGPAGE.GBL?
页的内容。
相关链接
确认
作者 - Gautam Mishra(高级云工程师)
贡献者 - Deepthi Shetty(经理云工程师),Aqib Bhat(高级云工程师)
更多学习资源
探索 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 频道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Configure seamless authentication for PeopleSoft applications using OCI IAM Identity Domains
F80225-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.