注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
在 OCI IAM 和 JumpCloud 之间设置单点登录和用户预配
简介
通过在 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 和 JumpCloud 之间设置单点登录 (SSO),OCI 管理员可以使用其 JumpCloud 凭证无缝登录 OCI 控制台。此外,通过 RESTful API 进行用户预配,还可以实现从 JumpCloud 到 OCI 的实时用户同步。
本教程介绍了如何通过设置安全断言标记语言 (Security Assertion Markup Language,SAML) 联盟和跨域身份管理 (System for Cross-domain Identity Management,SCIM) 2.0 连接将 OCI IAM 与 JumpCloud 集成。
此外,在建立 SSO 并跨身份同步后,可以定义 OCI IAM 策略来设置对各种 OCI 资源的访问控制。有关详细信息,请参阅策略入门和深入剖析基于标记的 Oracle Cloud Infrastructure Identity and Access Management 策略。
注:本教程特定于具有身份域的 OCI IAM。
目标
-
设置基于 SAML 的 SSO 以进行访问管理。
-
为身份管理设置 SCIM 2.0 预配。
-
测试并验证。
先决条件
-
访问 OCI 租户。有关详细信息,请参阅 Oracle Cloud Infrastructure 免费套餐。
-
OCI IAM 身份域的身份域管理员角色。有关更多信息,请参阅了解管理员角色。
-
JumpCloud 组织。
-
JumpCloud 组织中的管理员角色。
注:在 JumpCloud 集成中使用 OCI 产品时,我们注意到用户创建/更新操作不一致。因此,为了本教程的目的,我们将改用自定义应用程序。
第 1 部分:为访问管理设置基于 SAML 的 SSO
JumpCloud 充当身份提供者 (IdP),对用户进行身份验证,并将身份验证令牌安全地传递给作为服务提供商 (SP) 的 OCI IAM。要设置 SAML 联盟,需要双方交换元数据。
任务 1.1:从 OCI IAM 获取服务提供商元数据
首先导出 OCI IAM 身份域中的 SP 元数据。
-
打开浏览器选项卡并输入 URL:
https://cloud.oracle.com
。 -
输入云账户名称(也称为租户名称),然后单击下一步。
-
选择要登录到的身份域。这是用于配置 SSO 的身份域,例如
Default
。 -
输入管理员身份证明以登录 OCI 控制台。
-
导航到身份和安全,然后转到身份并单击域。
-
单击身份域的名称。如果域不可见,请更改区间以查找正确的域。
-
单击安全性、身份提供者和导出 SAML 元数据。
-
选择元数据文件。在具有自签名证书的元数据下,单击下载 XML 并将此 XML 文件保存在计算机本地,这是 SP 元数据。
任务 1.2:创建 SSO 应用程序
SSO 应用程序是在 JumpCloud 门户中创建的,用于表示 OCI 控制台。
-
在浏览器中,使用以下 URL 登录到 JumpCloud 门户:
https://console.jumpcloud.com/login
-
在用户身份验证下,选择 SSO 应用程序,然后单击入门。
-
在定制应用程序下,依次单击选择和下一步。
-
依次选择管理单点登录 (SSO) 和使用 SAML 配置 SSO 。选择 Export users to this app (Identity Management) ,然后单击 Next 。
-
在显示标签下输入名称(例如
OCI Console
),然后单击保存应用程序。然后,单击配置应用程序。
任务 1.3:配置 SSO 应用程序
新创建的定制应用程序需要 SSO 配置。
-
在 SSO 选项卡的服务提供商元数据下,单击上载元数据,然后选择保存在任务 1.1.8 中的 SP 元数据文件。
-
如果自动填充了 SP Entity ID 和 ACS URL ,则正确解析了 XML 文件。
在 JumpCloud 元数据下,单击导出元数据,并将此 XML 文件保存在计算机本地,即 IdP 元数据。完成后,单击保存。
任务 1.4:为 OCI IAM 启用 JumpCloud 作为 IdP
将创建一个表示 JumpCloud 的新 IdP。完成后,将设置 IdP 策略以启用 SSO 验证。
-
在 OCI 控制台中,导航到域,选择安全性并单击身份提供者。
-
选择 Add IdP ,然后单击 Add SAML IdP 。
-
为 SAML IdP 输入名称(例如
JumpCloud
),然后单击下一步。 -
确保选择导入 IdP 元数据。在上载身份提供者元数据下,从任务 1.3.2 上载 IdP 元数据,然后单击下一步。
-
在映射用户身份中,输入以下信息,然后单击下一步。
- 请求的 NameID 格式:选择无。
- 身份提供者用户属性:选择 SAML 断言名称 ID 。
- 身份域用户属性:选择用户名。
-
在复查并创建中,验证配置并单击创建 IdP 。
-
依次单击激活和添加到 IdP 策略。
注:在没有任何与其关联的应用程序的域中,仅存在一个默认 IdP 策略。这意味着所有应用都属于此策略的范围,包括 OCI 控制台。如果域具有单独针对特定应用程序的定制 IdP 策略,请确保根据需要添加规则以针对 OCI 控制台。谨慎行事,因为任何配置错误都可能导致锁定。
-
单击创建 IdP 策略。
-
在添加策略中,输入名称(例如
OCI Console
),然后单击添加策略。 -
在添加身份提供者规则中,单击添加 IdP 规则并输入规则名称。例如,
OCI Console access rule
。在 Assign identity provider 下,选择 Username-Password 和 JumpCloud 。完成后,依次单击添加 IdP 规则和下一步。
注:添加了 Username-Password 选项以保留本地验证。这可以避免在联盟设置中出现问题时锁定。
-
单击添加应用程序,搜索并从列表中选择 OCI 控制台。依次单击添加应用程序和关闭。
第 2 部分:设置基于 SCIM 2.0 的用户预配
用户生命周期管理在 JumpCloud 和 OCI IAM 之间进行配置,其中 JumpCloud 充当身份存储库。确保用于预配下游的所有用户都为以下属性填充了适当的值:
- 名字
- 姓氏
- 公司电子邮件
- 显示名称
- 工作国家/地区
- 工作城市(地区)
- 工作状态(区域)
- 工作街道地址
- 邮政编码
注:公司电子邮件到用户名的映射可确保 SAML Subject/NameID 中的一致性,并且 SSO 才能工作。例如:
<saml2:Subject><saml2:NameID Format="urn:oasis:names:tc:SAML:1.0:nameid-format:unspecified">XXX+test4@oracle.com</saml2:NameID>
任务 2.1:在 OCI IAM 中创建机密应用程序并生成密钥令牌
在 OCI IAM 中注册了 OAuth 2.0 客户端。已启用相应的流并授予权限。将收集此客户机的身份证明。
-
转到 OCI 控制台,导航到域,然后选择第 1 部分中使用的域。
-
转至集成应用程序,选择添加应用程序、机密应用程序,然后单击启动工作流。
-
为机密应用程序输入名称(例如
SCIMclient
),然后单击下一步。 -
在 Client configuration(客户端配置)部分中,选择 Configure this application as a client now(立即将此应用程序配置为客户端),然后在 Authorization(授权)下选择 Client Credentials(客户端身份证明)。
-
选择 Add app roles 并单击 Add roles 。在添加应用程序角色页中,选择用户管理员并单击添加。
-
单击下一步,然后单击完成。
-
单击激活可激活新应用程序。
-
在 General Information(一般信息)部分中,记下 Client ID(客户端 ID)和 Client secret(客户端密钥),然后选择 Show secret(显示密钥)以显示纯文本。
-
密钥令牌是 clientID 和 clientsecret 的 base64 编码。
-
对于 Windows,打开 PowerShell 并运行以下命令以生成 base64 编码。
[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes('client_id:secret'))
-
对于 MacOS,使用终端运行以下命令。
echo -n <clientID>:<clientsecret> | base64
将返回密钥令牌。例如:
echo -n 392357752xxxx7523923457437:3454-9853-7843-3554 | base64 Nk0NzUyMzxxxxxxxxxxxxxxxMzMtNTQzNC05ODc4LTUzNQ==
-
-
记下密钥标记。
任务 2.2:查找 OCI IAM GUID
客户端需要 SCIM 端点详细信息才能进行 API 调用。
-
转到 OCI 控制台,导航到域,然后选择第 1 部分中使用的域。
-
在域信息中选择域 URL 旁边的复制并记下此内容。表应该如下所示:
https://<IdentityDomainID>.identity.oraclecloud.com:443
-
将
/admin/v1
添加到 URL 的末尾。最终 URL 应如下所示:https://<IdentityDomainID>.identity.oraclecloud.com:443/admin/v1
-
请记录 URL。
任务 2.3:在 JumpCloud 应用程序中配置身份管理
转到 JumpCloud,将填充 SCIM 端点和 OAuth 2.0 身份证明。
-
打开在任务 1.1.2 中创建的 SSO 应用程序,然后转到身份管理。
-
输入以下信息,然后单击测试连接。
- API 类型:选择 SCIM API 。
- SCIM 版本:选择 SCIM 2.0 。
- 基本 URL:输入任务 2.2.4 中的基本 URL。
- 令牌密钥:输入从任务 2.1.10 生成的密钥令牌。
- 测试用户电子邮件:在 JumpCloud 目录中为用户输入电子邮件。
注:如果连接成功,SCIM 用户属性定制将变为可用。默认情况下,组同步到 OCI,但可以通过将关闭组管理进行更改。
-
在 SCIM Attribute Name(SCIM 属性名称)中,单击 + Add attribute(+ 添加属性)基于以下图像创建属性映射。完成后,单击激活。
-
应收到有关正在验证的连接的通知。单击保存。
任务 2.4:将组分配给 JumpCloud 应用程序
注:作为先决条件,请先在 JumpCloud 中为 OCI 管理员创建组,然后再继续。
现在,需要访问 Oracle 资源的组可以进行预配。
-
打开 SSO 应用程序并转至用户组选项卡。
-
选择需要预配到 OCI 中的组,然后单击保存。
第 3 部分:测试和验证
注:要使 SSO 正常工作,SSO 用户帐户必须同时存在于 OCI IAM 和 JumpCloud 中。
最后,对同步身份进行验证,并对联合验证进行测试。
-
在 JumpCloud 和 OCI 控制台中打开其中一个用户以验证详细信息是否匹配。
-
重复同一过程以验证组是否已同步。
注:现在,身份已同步,我们将验证 SSO 登录。
-
在新的浏览器窗口中,打开 OCI 控制台。输入云账户名称(也称为租户名称),然后单击下一步。
-
选择已在其中配置 JumpCloud 联合的身份域。
-
在 Oracle Cloud 账户登录页中,选择 JumpCloud 。应该有指向 JumpCloud 登录页的重定向。
-
输入联合用户的 JumpCloud 身份证明。验证成功后,应将重定向回 OCI 控制台。
小结
通过此集成,管理员无需管理单独的 OCI 凭证,从而增强安全性并简化访问管理。这也有助于身份管理,减少管理开销并消除冗余。
确认
- 作者 — Tonmendu Bose(高级云工程师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Set up Single Sign-On and User Provisioning between OCI IAM and JumpCloud
G33642-01
Copyright ©2025, Oracle and/or its affiliates.