注意:

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

具有 JumpCloud(架构)的 OCI IAM 联盟。

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

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

目标

先决条件

注:在 JumpCloud 集成中使用 OCI 产品时,我们注意到用户创建/更新操作不一致。因此,为了本教程的目的,我们将改用自定义应用程序。

第 1 部分:为访问管理设置基于 SAML 的 SSO

JumpCloud 充当身份提供者 (IdP),对用户进行身份验证,并将身份验证令牌安全地传递给作为服务提供商 (SP) 的 OCI IAM。要设置 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. 选择元数据文件。在具有自签名证书的元数据下,单击下载 XML 并将此 XML 文件保存在计算机本地,这是 SP 元数据。

    正在下载 SP 元数据。

任务 1.2:创建 SSO 应用程序

SSO 应用程序是在 JumpCloud 门户中创建的,用于表示 OCI 控制台。

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

  2. 用户身份验证下,选择 SSO 应用程序,然后单击入门

    JumpCloud 管理控制台应用程序。

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

    正在搜索自定义应用。

  4. 依次选择管理单点登录 (SSO)使用 SAML 配置 SSO 。选择 Export users to this app (Identity Management) ,然后单击 Next

    选择 SSO 和身份管理。

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

    更新应用程序详细信息。

任务 1.3:配置 SSO 应用程序

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

  1. SSO 选项卡的服务提供商元数据下,单击上载元数据,然后选择保存在任务 1.1.8 中的 SP 元数据文件。

    正在上载 SP 元数据。

  2. 如果自动填充了 SP Entity 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. 映射用户身份中,输入以下信息,然后单击下一步

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

    SAML 身份提供方属性。

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

    检查设置。

  7. 依次单击激活添加到 IdP 策略

    正在激活 IdP。

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

  8. 单击创建 IdP 策略

    正在创建 IdP 策略。

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

    输入名称。

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

    Assign identity provider 下,选择 Username-PasswordJumpCloud 。完成后,依次单击添加 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 中创建机密应用程序并生成密钥令牌

在 OCI IAM 中注册了 OAuth 2.0 客户端。已启用相应的流并授予权限。将收集此客户机的身份证明。

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

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

    机密应用工作流。

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

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

    OAuth 2.0 客户机设置。

  5. 选择 Add app roles 并单击 Add roles 。在添加应用程序角色页中,选择用户管理员并单击添加

    应用程序角色选择。

  6. 单击下一步,然后单击完成

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

    激活客户端。

  8. General Information(一般信息)部分中,记下 Client ID(客户端 ID)Client secret(客户端密钥),然后选择 Show secret(显示密钥)以显示纯文本。

    身份证明。

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

    终端。

  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. 输入以下信息,然后单击测试连接

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

    正在测试连接。

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

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

    正在激活连接。

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

    正在保存连接。

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

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

现在,需要访问 Oracle 资源的组可以进行预配。

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

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

    组选择。

第 3 部分:测试和验证

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

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

  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 帮助中心