在 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) 联盟和跨域身份管理 (SCIM) 2.0 连接来将 OCI IAM 与 JumpCloud 集成。

此外,在建立 SSO 并同步身份后,可以定义 OCI IAM 策略来设置对各种 OCI 资源的访问控制。有关详细信息,请参阅策略入门和深入了解基于标记的 Oracle Cloud Infrastructure Identity and Access Management 策略。
注:本教程特定于具有身份域的 OCI IAM。
目标
-
为访问管理设置基于 SAML 的 SSO。
-
为身份管理设置 SCIM 2.0 预配。
-
测试和验证。
Prerequisites
-
访问 OCI 租户。有关详细信息,请参阅 Oracle Cloud Infrastructure 免费套餐
-
OCI IAM 身份域的身份域管理员角色。有关详细信息,请参阅了解管理员角色
-
JumpCloud 组织
-
JumpCloud 组织中的管理员角色
注:在 JumpCloud 集成中使用 OCI 产品时,我们注意到用户创建/更新操作不一致。因此,在本教程中,我们将改用自定义应用程序。
第 1 部分:为访问管理设置基于 SAML 的 SSO
JumpCloud acts as the identity provider (IdP), authenticating users and passing authentication tokens securely to OCI IAM, which functions as the service provider (SP). 要设置 SAML 联盟,需要双方交换元数据。
任务 1.1:从 OCI IAM 获取服务提供者元数据
首先导出 OCI IAM 身份域中的 SP 元数据。
-
打开浏览器选项卡,然后输入 URL:
https://cloud.oracle.com。 -
输入云账户名称(也称为租户名称),然后单击下一步。
-
选择要登录的身份域。这是用于配置 SSO 的身份域,例如
Default。 -
输入管理员身份证明以登录到 OCI 控制台。
-
导航到身份和安全,然后在身份下,单击域。

-
单击身份域的名称。如果域不可见,请更改区间以查找正确的域。

-
在安全下,单击身份提供者和导出 SAML 元数据。

-
选择 Metadata file 。在带自签名证书的元数据下,单击下载 XML 并将此 XML 文件保存在计算机本地,这是 SP 元数据。

任务 1.2:创建 SSO 应用程序
在 JumpCloud 门户中创建 SSO 应用程序以表示 OCI 控制台。
-
在浏览器中,使用以下 URL 登录到 JumpCloud 门户:
https://console.jumpcloud.com/login -
在 USER AUTHENTICATION 下,选择 SSO Applications 并单击 Get Started 。

-
在定制应用程序下,依次单击选择和下一步。

-
依次选择管理单点登录 (SSO) 和使用 SAML 配置 SSO 。选择将用户导出到此应用程序(身份管理),然后单击下一步。

-
在显示标签下输入名称(例如
OCI Console),然后单击保存应用程序。然后,单击 Configure Application(配置应用程序)。
任务 1.3:配置 SSO 应用程序
新创建的定制应用程序需要 SSO 配置。
-
在 SSO 选项卡的 Service Provider Metadata 下,单击 Upload Metadata ,然后选择任务 1.1.8 中保存的 SP 元数据文件。

-
如果自动填充 SP 实体 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 元数据,然后单击下一步。

-
在 Map user identity 中,输入以下信息,然后单击 Next 。
- 请求的 NameID 格式:选择无。
- 身份提供者用户属性:选择 SAML 断言名称 ID 。
- 身份域用户属性:选择用户名。

-
在复查并创建中,验证配置,然后单击创建 IdP 。

-
Click Activate and then Add to IdP policy.

注:在现成情况下,域中只有一个 default IdP 策略,该策略没有任何关联的应用程序。这实际上意味着所有应用都属于此策略的范围,包括 OCI 控制台。如果域具有单独针对特定应用程序的定制 IdP 策略,请确保根据需要添加规则以定位 OCI 控制台。谨慎行事,因为任何配置错误都可能导致锁定。
-
单击创建 IdP 策略。

-
在添加策略中,输入名称(例如
OCI Console),然后单击添加策略。
-
在添加身份提供者规则中,单击添加 IdP 规则并输入规则名称。例如,
OCI Console access rule。在分配身份提供者下,选择用户名 - 密码和 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 中创建机密应用程序并生成密钥令牌
OAuth 2.0 客户端已在 OCI IAM 中注册。启用适当的流并授予权限。将收集此客户机的凭证。
-
转到 OCI 控制台,导航到域并选择第 1 部分中使用的域。
-
转到集成应用程序,选择添加应用程序和机密应用程序,然后单击启动工作流。

-
输入机密应用程序的名称(例如
SCIMclient),然后单击下一步。 -
在 Client configuration(客户端配置)部分中,选择 Configure this application as a client now(立即将此应用程序配置为客户端),然后在 Authorization(授权)下,选择 Client Credentials(客户端身份证明)。

-
选择添加应用程序角色,然后单击添加角色。在添加应用程序角色页中,选择用户管理员,然后单击添加。

-
依次单击 Next 和 Finish 。
-
单击激活以激活新应用程序。

-
在一般信息部分中,记下客户机 ID 和客户机密钥,然后选择显示密钥以显示纯文本。

-
密钥令牌是 clientID 和 clientsecret 的 base64 编码。
-
对于 Windows,打开 PowerShell 并运行以下命令以生成 base64 编码。
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("<clientID>:<clientsecret>”)) -
对于 MacOS,请使用 Terminal 运行以下命令。
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 应用程序,然后转至身份管理。
-
输入以下信息并单击 Test Connection(测试连接)。
- API 类型:选择 SCIM API 。
- SCIM 版本:选择 SCIM 2.0 。
- 基本 URL:输入任务 2.2.4 中的基本 URL。
- Token Key(令牌密钥):输入从任务 2.1.10 生成的密钥令牌。
- 测试用户电子邮件:为 JumpCloud 目录中的用户输入电子邮件。

注:如果连接成功,则可使用 SCIM 用户属性定制。默认情况下,组会同步到 OCI,但可以通过关闭组管理进行更改。
-
在 SCIM 属性名称中,单击 + 添加属性以基于以下图像创建属性映射。完成后,单击激活。

-
应有关于正在验证的连接的通知。请单击保存。

任务 2.4:为 JumpCloud 应用程序分配组
注:作为先决条件,请在 JumpCloud 中为 OCI 管理员创建组,然后再继续。
现在,需要访问 Oracle 资源的组已对齐进行预配。
-
打开 SSO 应用程序并转至用户组选项卡。
-
选择需要预配到 OCI 中的组,然后单击保存。

第 3 部分:测试和验证
注:要使 SSO 工作,OCI IAM 和 JumpCloud 中必须同时存在 SSO 用户帐户。
最后,对同步的身份进行验证并测试联合验证。
-
在 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-02