在 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 集成。

OCI IAM Federation with JumpCloud(Architecture,架构)。

此外,在建立 SSO 并同步身份后,可以定义 OCI IAM 策略来设置对各种 OCI 资源的访问控制。有关详细信息,请参阅策略入门深入了解基于标记的 Oracle Cloud Infrastructure Identity and Access Management 策略

注:本教程特定于具有身份域的 OCI IAM。

目标

Prerequisites

注:在 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 元数据。

  1. 打开浏览器选项卡,然后输入 URL:https://cloud.oracle.com

  2. 输入云账户名称(也称为租户名称),然后单击下一步

  3. 选择要登录的身份域。这是用于配置 SSO 的身份域,例如 Default

  4. 输入管理员身份证明以登录到 OCI 控制台。

  5. 导航到身份和安全,然后在身份下,单击

    导航到域。

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

    选择域。

  7. 安全下,单击身份提供者导出 SAML 元数据

    导航到 SP 元数据。

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

    正在下载 SP 元数据。

任务 1.2:创建 SSO 应用程序

在 JumpCloud 门户中创建 SSO 应用程序以表示 OCI 控制台。

  1. 在浏览器中,使用以下 URL 登录到 JumpCloud 门户:https://console.jumpcloud.com/login

  2. USER AUTHENTICATION 下,选择 SSO Applications 并单击 Get Started

    JumpCloud 管理控制台应用程序。

  3. 定制应用程序下,依次单击选择下一步

    正在搜索自定义应用程序。

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

    选择 SSO 和身份管理。

  5. 显示标签下输入名称(例如 OCI Console),然后单击保存应用程序。然后,单击 Configure Application(配置应用程序)

    更新应用程序详细信息。

任务 1.3:配置 SSO 应用程序

新创建的定制应用程序需要 SSO 配置。

  1. SSO 选项卡的 Service Provider Metadata 下,单击 Upload Metadata ,然后选择任务 1.1.8 中保存的 SP 元数据文件。

    正在上载 SP 元数据。

  2. 如果自动填充 SP 实体 IDACS URL ,则 XML 文件将被正确解析。

    JumpCloud 元数据下,单击导出元数据并将此 XML 文件保存在计算机本地,这是 IdP 元数据。完成后,单击保存

    导出 IdP 元数据。

任务 1.4:为 OCI IAM 启用 JumpCloud 作为 IdP

将创建一个表示 JumpCloud 的新 IdP。完成后,将设置 IdP 策略以启用 SSO 验证。

  1. 在 OCI 控制台中,导航到域,选择安全,然后单击身份提供者

  2. 选择 Add IdP ,然后单击 Add SAML IdP

    添加 SAML IdP。

  3. 输入 SAML IdP 的名称(例如 JumpCloud),然后单击下一步

    输入 IdP 名称。

  4. 确保选择导入 IdP 元数据。在上载身份提供者元数据下,从任务 1.3.2 上载 IdP 元数据,然后单击下一步

    正在导入 IdP 元数据。

  5. Map user identity 中,输入以下信息,然后单击 Next

    • 请求的 NameID 格式:选择
    • 身份提供者用户属性:选择 SAML 断言名称 ID
    • 身份域用户属性:选择用户名

    SAML 身份提供者属性。

  6. 复查并创建中,验证配置,然后单击创建 IdP

    查看设置。

  7. Click Activate and then Add to IdP policy.

    正在激活 IdP。

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

  8. 单击创建 IdP 策略

    正在创建 IdP 策略。

  9. 添加策略中,输入名称(例如 OCI Console),然后单击添加策略

    输入姓名。

  10. 添加身份提供者规则中,单击添加 IdP 规则并输入规则名称。例如,OCI Console access rule

    分配身份提供者下,选择用户名 - 密码JumpCloud 。完成后,依次单击添加 IdP 规则下一步

    正在定义规则。

    注:添加了 Username-Password 选项以保留本地验证。如果联盟设置中存在问题,这将避免锁定。

  11. 单击添加应用程序,搜索并从列表中选择 OCI 控制台。依次单击添加应用程序关闭

    选择 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 中注册。启用适当的流并授予权限。将收集此客户机的凭证。

  1. 转到 OCI 控制台,导航到并选择第 1 部分中使用的域。

  2. 转到集成应用程序,选择添加应用程序机密应用程序,然后单击启动工作流

    机密应用程序工作流。

  3. 输入机密应用程序的名称(例如 SCIMclient),然后单击下一步

  4. Client configuration(客户端配置)部分中,选择 Configure this application as a client now(立即将此应用程序配置为客户端),然后在 Authorization(授权)下,选择 Client Credentials(客户端身份证明)

    OAuth 2.0 客户端设置。

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

    应用程序角色选择。

  6. 依次单击 NextFinish

  7. 单击激活以激活新应用程序。

    激活客户端。

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

    身份证明。

  9. 密钥令牌是 clientIDclientsecret 的 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==

    终端。

  10. 记下密钥令牌。

任务 2.2:查找 OCI IAM GUID

客户端需要 SCIM 端点详细信息才能进行 API 调用。

  1. 转到 OCI 控制台,导航到并选择第 1 部分中使用的域。

  2. 选择域信息域 URL 旁边的复制并记下这一点。表应该如下所示:

    https://<IdentityDomainID>.identity.oraclecloud.com:443
  3. /admin/v1 添加到 URL 的末尾。最终 URL 应如下所示:

    https://<IdentityDomainID>.identity.oraclecloud.com:443/admin/v1
  4. 记下 URL。

任务 2.3:在 JumpCloud 应用程序中配置身份管理

转到 JumpCloud,将填充 SCIM 端点和 OAuth 2.0 凭证。

  1. 打开在任务 1.1.2 中创建的 SSO 应用程序,然后转至身份管理

  2. 输入以下信息并单击 Test Connection(测试连接)

    • API 类型:选择 SCIM API
    • SCIM 版本:选择 SCIM 2.0
    • 基本 URL:输入任务 2.2.4 中的基本 URL。
    • Token Key(令牌密钥):输入从任务 2.1.10 生成的密钥令牌。
    • 测试用户电子邮件:为 JumpCloud 目录中的用户输入电子邮件。

    正在测试连接。

    注:如果连接成功,则可使用 SCIM 用户属性定制。默认情况下,组会同步到 OCI,但可以通过关闭组管理进行更改。

  3. SCIM 属性名称中,单击 + 添加属性以基于以下图像创建属性映射。完成后,单击激活

    正在激活连接。

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

    正在保存连接。

任务 2.4:为 JumpCloud 应用程序分配组

注:作为先决条件,请在 JumpCloud 中为 OCI 管理员创建组,然后再继续。

现在,需要访问 Oracle 资源的组已对齐进行预配。

  1. 打开 SSO 应用程序并转至用户组选项卡。

  2. 选择需要预配到 OCI 中的组,然后单击保存

    组选择。

第 3 部分:测试和验证

注:要使 SSO 工作,OCI IAM 和 JumpCloud 中必须同时存在 SSO 用户帐户。

最后,对同步的身份进行验证并测试联合验证。

  1. 在 JumpCloud 和 OCI 控制台中打开其中一个用户,以验证详细信息是否匹配。

    JumpCloud 控制台。

    OCI 控制台。

  2. 重复相同的处理以验证组是否已同步。

    JumpCloud 控制台。

    OCI 控制台。

注:现在身份已同步,我们将验证 SSO 登录。

  1. 在新的浏览器窗口中,打开 OCI 控制台。输入云账户名称(也称为租户名称),然后单击下一步

  2. 选择在其中配置了 JumpCloud 联合的身份域。

  3. Oracle Cloud 账户登录页中,选择 JumpCloud 。应当有指向 JumpCloud 登录页的重定向。

    OCI IAM 登录页面

  4. 输入联合用户的 JumpCloud 身份证明。验证成功后,应将重定向回 OCI 控制台。

小结

通过此集成,管理员无需管理单独的 OCI 凭证、增强安全性并简化访问管理。这也有助于身份管理,减少管理开销并消除冗余。

确认

更多学习资源

通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心