注意:
- 此教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室时,请将这些值替换为特定于云环境的值。
迁移到 OCI IAM 身份域后,无需屏幕抓取即可实现登录自动化
简介
Oracle 将 Oracle Identity Cloud Service 的功能合并到原生 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 服务中。这为 Oracle Cloud 客户提供了丰富的企业级身份和访问管理 (Identity and Access Management,IAM) 功能,可用于 OCI、Oracle Cloud 应用和第三方应用。
通过此更改,已将权限访问管理 (PAM) 解决方案与 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 集成的客户或使用 UI 自动化通过本地账户登录到 OCI 或者与外部身份提供商 (IDP) 合作,或者使用任何其他 OCI IAM 屏幕的屏幕抓图,自动化脚本因屏幕更改而失败或结果不正确。
什么是屏幕抓取?
一种以自动化方式使用软件工具在网站中执行最终用户交互的技术。UI 中的所有交互(例如在 UI 表单中输入数据、按钮点击和导航)均由工具执行。
删除基于屏幕抓取的 UI 自动化方法
我们建议您避免抓取任何 OCI IAM 屏幕。OCI IAM 基于 API 优先方法构建,您可以使用 API 实施从控制台执行的任何任务。我们提供了 SDK、CLI、API 和 terraform。确定执行哪些屏幕抓取操作,并使用 API、SDK、CLI 或 terraform 查找等效操作。我们正在为 terraform、SDK 和 CLI 集合添加更多 API。如果未看到 SDK/CLI/terraform 中提供的操作,请使用域 REST API。用于快速访问的文档链接:
-
注:如果您使用的是 Oracle Identity Cloud Service,则这些 API 在 Oracle Identity Cloud Service 中可用,并且使用这些 API 构建的任何集成都将在迁移到身份域后按原样工作。因此,您可以计划确定屏幕抓取操作,改用等效 API,从而避免迁移到身份域的影响。
目标
在本教程中,我们将讨论使用 OCI IAM UI 页面抓取屏幕的典型场景,并提供删除该页面的解决方案。
方案 1:登录到外部身份提供者 (IdP),例如 Azure、Okta 和 OCI IAM。
客户已将 OCI IAM 与外部 IdPs 联合,并完成了 OCI IAM IdP 选择器的 UI 自动化,如下面的屏幕截图中所示。在此处,客户自动化工具将从列表中选择 IdP,然后单击继续以导航到 IdP 登录页。客户可以通过更改其工具以直接导航到外部 IdP 并完全跳过此页来删除此页的屏幕抓图。
解决方案
-
在 OCI IAM 中,您可以使用查询参数直接转到配置的 IDP。这将确保您当前和将来不会依赖 OCI IAM 登录 UI 中的更改。导航到外部 IdP 的直接 URL 为
https://cloud.oracle.com/?tenant=<tenant_name>&provider=<provider_id>,其中:<tenant_name>- 租户的名称。<provider_id>- 外部 IDP 的名称,即您在登录页面下拉列表中看到的 IDP。
例如,对于上述屏幕截图,IDP 的直接 URL 将为:
-
Okta -
https://cloud.oracle.com/?tenant=iaamdemo&provider=oktaidp -
Azure -
https://cloud.oracle.com/?tenant=iaamdemo&provider=azure-ad
-
如果您在环境中进行了上述更改,您的现有解决方案将在迁移后工作,因为您不再依赖于迁移前或迁移后 OCI IAM UI。
-
迁移后,您还可以选择将现有联盟移动到身份域,并且仍然可以通过定义仅附加一个 IDP 的 IDP 策略直接转至域来跳过 OCI IAM 登录 UI。
方案 2:更改用户密码用例
使用 UI 自动化从概要信息菜单更改用户密码的客户。通常,使用 PAM 的客户需要定期更改和验证 OCI IAM 本地用户密码,其中密码由 PAM 工具管理,最终用户需要通过该工具签入并签出密码才能登录。
有 API 用于重置 OCI IAM 中的控制台密码,但它会创建一个临时密码,需要再次在 UI 中输入以更改最终用户密码,因此客户屏幕报废密码更改 UI,他们可以在其中将密码重置为已知值,然后最终用户可以从第三方工具签入和签出密码。
解决方案
使用身份域,您可以避免使用 UI 自动化更改密码,而是使用身份域 REST API 将密码更改为已知值,并在 PAM 工具中验证现有密码。以下是可快速访问的 REST API 文档。
注:迁移后必须完成此更改,OCI IAM 本地用户将迁移到默认身份域。
方案 3:对 OCI IAM 联合登录页面使用 UI 自动化
屏幕抓取现成 Oracle Identity Cloud Service 登录页面的客户,如下面的屏幕截图中所示。我们建议您了解在 OCI 控制台中执行哪些操作,改用 API。但是,如果仍要对 Oracle Identity Cloud Service 登录页执行屏幕抓取操作,则它使用以下元素进行用户名、口令和提交按钮。
- 用户名的元素名称:
idcs-signin-basic-signin-form-username - 密码的元素名称:
idcs-signin-basic-signin-form-password|input - 提交的元素名称:
idcs-signin-basic-signin-form-submit
将租户迁移到身份域后,身份域登录页面将替换 Oracle Identity Cloud Service 登录页面,并使用相同的元素。因此,如果您的自动化工具仅依赖于上述 UI 元素,则现有解决方案应在迁移后按原样工作。Oracle Identity Cloud Service URL 在迁移后保持不变。如果您使用现有登录页面的任何其他元素,建议您查看解决方案和新身份域登录页面元素。
方案 4:对 OCI IAM 本地登录页面使用 UI 自动化
屏幕抓取 OCI IAM 登录页面的客户,如下面的屏幕截图所示。我们建议您了解在 OCI 控制台中执行哪些操作,改用 API。但是,如果您仍要执行屏幕抓图,OCI IAM 登录页面将使用以下 UI 元素。
- 用户名的元素名称:
username - 密码的元素名称:
password - 要提交的元素名称:
submit-native - 要切换的元素名称:
native-toggle-trigger
将租户迁移到身份域后,域登录页面将替换 OCI IAM 本地登录页面,并使用不同的元素。因此,您的现有解决方案将中断,您的工具需要查找以下元素。
- 用户名的元素名称:
username,替换为idcs-signin-basic-signin-form-username - 密码的元素名称:
password,替换为idcs-signin-basic-signin-form-password|input - 要提交的元素名称:
submit-native,替换为idcs-signin-basic-signin-form-submit - 要切换的元素名称:
native-toggle-trigger,无,新登录页中没有切换按钮。
方案 5:直接导航到域登录页
迁移到 OCI IAM 身份域后,会添加一个新页面,如下面的屏幕截图中所示,允许您选取该域。此外,您不必对域选择器页进行报废,而是可以使用以下 URL 直接转到域登录页:https://cloud.oracle.com/?tenant=<tenant_name>&domain=<domain_name>,其中
<tenant_name>- 租户的名称。<domain_name>- 域的名称。
如果您使用 OCI IAM 登录页面的任何其他元素,我们建议您查看解决方案和新身份域登录页面元素。
相关链接
确认
- Authors :Matt Flynn、Sunil Joshi (OCI IAM)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Enable Sign In Automation Without Screen Scraping After Migration to OCI IAM Identity Domains
F88985-01
November 2023
Copyright © 2023, Oracle and/or its affiliates.



