注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
使用 OCI IAM 使用设备代码流启用 Excel-to-Component 接口实用程序 SSO
简介
PeopleSoft 中的 Excel 到组件接口(Excel 到 CI)实用程序是一个非常宝贵的工具,使用户能够通过标准用户名和密码验证将 Microsoft Excel 电子表格中的数据无缝导入到 PeopleSoft 数据库。每个源工作簿都包含工作表和 Excel Visual Basic 代码模块,它们执行每个事务处理的基本业务逻辑。有关更多信息,请参阅了解 Excel 到组件的接口实用程序。
随着 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 的快速发展,对 PeopleSoft 等支持单点登录 (SSO) 的应用的需求变得越来越重要。这种演变反映了简化用户体验、增强安全性和简化跨多个平台访问的需求,允许用户在保持可靠身份验证协议的同时无缝导航。
OCI IAM 是一个强大的框架,可用于管理用户和角色、促进用户联盟和预配以及通过基于 Oracle SSO 配置和安全断言标记语言 (SAML)/OAuth 的身份提供者 (IdP) 管理实现安全应用集成。值得注意的是,它具有 Oracle 身份域应用程序网关,该网关支持使用基于标头的身份验证(例如 PeopleSoft)的应用程序进行单点登录 (SSO)。有关详细信息,请参阅使用 OCI IAM 身份域为 PeopleSoft 应用程序配置无缝验证。
在本教程中,我们将探讨传统 Excel 到 CI 工作表的转换,对其进行现代化以支持标准身份验证协议。我们将深入研究如何利用 OCI IAM SSO 来验证用户身份,从而通过这些增强的电子表格实现无缝数据上载。
PeopleSoft 与 OCI IAM 的 SSO 集成
PeopleSoft 通过应用程序网关与用于 SSO 的 OCI IAM 集成,该网关用作反向代理。它拦截对 PeopleSoft Web 界面的 HTTP 请求,确保用户已登录并获得授权。OCI IAM 身份域管理 PeopleSoft 应用程序的验证。
OCI IAM 设备代码流支持简介
设备代码流允许在缺少 Web 浏览器的设备或操作系统上进行用户验证。此方法允许用户使用其他设备(如计算机或手机)以交互方式登录。下图说明了设备代码流的工作方式。
有关设备代码流及其在 OCI IAM 中的配置的更多信息,请参见 Using the IDCS OAuth Device Flow for Fun and Profit 和 Device Code Grant Type 。
此外,我们了解设备代码流与 Microsoft Excel 电子表格兼容。有关更多信息,请参见 Excel,OAuth 2.0 and Device Code Flow 。我们将增强传统的 Excel 到 CI 电子表格以支持设备代码流。让我们首先在 OCI IAM 中创建机密应用程序,以促进此集成。
目标
-
使用 OCI IAM SSO 身份证明使用设备代码流将数据上载到 PeopleSoft 数据库。
- 将 Excel 下载到 CI 文件并将其保存到本地系统。
- 在 OCI IAM 中创建机密应用程序以支持设备代码流。
- 更新现有 Visual Basic (VB) 宏功能并添加 OCI IAM 连接详细信息,以将数据上载到 PeopleSoft 数据库。
- 使用 OCI IAM SSO 身份证明和设备代码流将示例数据从更新的 Microsoft Excel 电子表格推送到 PeopleSoft 数据库。
先决条件
-
访问 OCI 租户。
-
Oracle Apps Premium 类型的身份域及其管理员账户。
-
启用了 PeopleSoft SSO 且具有有效 SSL 证书的实例。
-
具有对 PeopleSoft 的 SSO 访问权限以及通过 Excel 将数据上载到 PeopleSoft 数据库到 CI 所需的权限的用户。
-
功能齐全的 Excel 到 CI 电子表格副本,当前使用用户名和密码推送数据。
-
从属文件
RelLangMacro.xla
的本地副本,用于将 Excel 正常运行到 CI。 -
关于 VB Macro 编码的基本知识。
任务 1:为设备代码流创建机密应用程序
我们将使用允许的授权类型设备代码在 OCI IAM 身份域下注册一个机密应用程序,该应用程序与您的 PeopleSoft for SSO 集成。
-
登录到 OCI 控制台,在身份域下,单击域信息并复制身份域 URL 。
注:从域 URL 末尾排除 :443 ,我们将在任务 6 中需要此信息。
-
转到导航菜单,然后单击应用程序。
-
选择机密应用程序,然后单击启动工作流。
-
为应用程序输入名称,然后单击下一步。
-
选择 Skip for later(跳过以供以后使用),选择 Device Code(设备代码)作为 Allowed grant types(允许的授权类型),然后单击 Next(下一步)。
-
单击 Finish(完成)。
-
单击激活以激活应用程序。
-
记下客户端 ID 和客户端密钥,以在进一步配置中使用它。
任务 2:使用设备代码流将 Excel 转换为 CI 和 OCI IAM 体系结构
使用设备代码流将数据提交到 PeopleSoft 数据库的步骤。
-
设备代码流启动:当用户尝试将数据提交到 PeopleSoft 数据库时,Excel 工作表将启动设备代码流。
-
用户代码显示:向用户显示一个 6 字母的用户代码,在获取访问令牌时必须复制该用户代码以供将来使用。
-
浏览器验证:记录用户代码后,Excel 工作表将自动打开默认 Web 浏览器并提示用户登录。如果会话已处于活动状态,用户将自动登录。
-
输入用户代码:成功登录并完成任何多因素验证 (multi-factor authentication,MFA) 要求后,浏览器将提示用户输入之前复制的用户代码。
-
访问令牌发布:成功提交用户代码后,将向 Excel 工作表发放访问令牌,使其能够将数据提交到 PeopleSoft 数据库。
下图显示了更多检测中的设备代码流。
为了促进这一过程,我们将继续修改 VB 代码,并增强验证和数据提交模块。
任务 3:使用设备代码流更新用于登录的 VB 代码
从此处下载 Excel 到 CI 电子表格的副本:ExcelToCI Sheets_ExcelToCI2007-AppG_SampleFile.zip 并保存到本地系统,您可在其中拥有原始 Excel 到 CI 电子表格。文件夹还应包含相关文件 RelLangMacro.xla
,以便 Excel 到 CI 的正常运行。
-
打开 Excel 到 CI 电子表格并使用 PeopleSoft 应用程序网关详细信息更新连接信息工作表。输入以下信息。
- Web 服务器名称。
- 协议。
- HTTP 端口。
-
单击 Developer(开发人员)和 Visual Basic(Visual Basic) 以打开 MicroSoft Visual Basic for Applications。单击模块。
-
在模块下,展开登录模块,并在以下提到的函数中更新在任务 1 和 OCI IAM 域 URL 中创建的机密应用程序的客户端 ID 和客户端密钥,然后保存文件。
注:电子表格包含备注,以帮助您了解应在何处添加详细信息。
- Public Function getLoginInformation 。
- Public Function makeInstrospectRequest 。
- Public Function makeIDCSRequest 。
注:
-
概念验证:此工作表用作概念验证,证明 Excel 到 CI 可以支持设备代码流将数据提交到 PeopleSoft 数据库。
-
代码质量:请注意,代码可能不符合 VB 编码中的最佳实践。我们强烈建议您在将测试部署到生产环境之前对您的端进行全面测试。
-
数据提交测试:电子表格已针对数据提交用例进行了测试。如果它默认为任何其他功能的用户名和密码验证,则可以修改 VB 模块以加入设备代码逻辑以改进功能。
-
引用检查:此外,在 Microsoft Visual Basic for Applications 页面的工具下查看 Excel 到 CI 引用,以确保与以下屏幕截图一致。
任务 4:使用设备代码流测试数据上载
-
在数据输入中添加示例数据,然后单击加载项、要提交的阶段数据。
-
在准备和提交表中,您应该能够看到要提交到 PeopleSoft 数据库的新数据条目。单击加载项和提交数据。
-
Excel 工作表现在将启动设备代码流,并显示用户代码,并记下它。单击确定,您将重定向到 OCI IAM 登录页。
-
使用 SSO 凭据登录到 OCI IAM。
-
在代码中输入用户代码,然后单击提交。
-
如果用户代码正确,您将看到一个祝贺屏幕,确认您对应用程序的访问权限。
-
访问令牌会发送回 Excel 工作表,该工作表用于将数据提交到 PeopleSoft 数据库。您应该会看到确定数据条目确认数据提交。
工作表将存储访问令牌详细信息以供下次执行,除非访问令牌处于活动状态,否则不会要求您通过设备代码流。
Excel 至 CI 表中的改进机会
-
令牌验证:当前,自测端点用于验证访问令牌的有效性,访问令牌的默认失效时间为 60 分钟。
-
会话持久性:要防止用户在 60 分钟后注销,请考虑实施刷新标记机制。
-
代码修改:更新 VB 代码以合并使用刷新标记进行连续访问。
-
OCI IAM 的动态捕获详细信息:工作表中的函数当前使用身份信息进行硬编码。您可以通过定义 Excel 单元格来动态捕获这些详细信息来增强这一点。
-
访问令牌可见性:访问令牌值当前显示在连接信息表中。您可以通过调整单元格格式设置来选择向最终用户隐藏它。
-
与日记帐加载的兼容性:演示的用于 Excel 到 CI 的设备代码流逻辑也可以应用于日记帐加载。
Jrnlmacro.xla
中的以下模块应更新到 mImportControl 下。下载用于日记帐上载的示例 Zip 。- Private Sub Import_Sheet 。
- 专用函数 sendXML 。
- Public Function makeIDCSRequest 。
- Public Function makeInstrospectRequest 。
相关链接
确认
- 作者 — Chetan Soni(高级云工程师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Enable Excel to Component Interface Utility SSO with OCI IAM using Device Code Flow
G16870-01
October 2024