注意:

将 Rocket.Chat 与身份域集成以实现单点登录

简介

Rocket.Chat 是一个安全且高度可定制的开源通信平台,适用于具有复杂安全性和隐私问题的组织。Rocket.Chat 提供对用户数据和对话的完全控制。该平台支持原生应用、与第三方应用无缝集成、跨渠道协作、基于安全断言标记语言 (SAML) 的单点登录 (SSO) 以及使用 API 的配置控制。

Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 是一个容器,可用于管理用户和角色,联合和预配用户,通过 Oracle SSO 配置实现安全的应用程序集成,以及进行基于 SAML/OAuth 的身份提供者 (IdP) 管理。

在本教程中,我们将自动安装 Rocket.Chat,并将 OCI IAM 集成为 SSO 的 IdP。

目标

先决条件

任务 1:部署堆栈以安装 Rocket.Chat,并使用自动化 Terraform 堆栈创建 SAML 应用程序

可以使用不同的方法部署 Rocket.Chat。在本教程中,我们使用了使用 Docker 和 Docker 编写进行部署选项。有关详细信息,请参阅部署 Rocket.Chat

为了简化 Rocket.Chat 的安装,我们创建了一个 Terraform 自动化堆栈。此堆栈将:

注:请确保在执行链接的堆栈之前检查要创建的资源的服务限制。有关更多信息,请参见IAM With Identity Domains Limits

  1. 从以下位置下载 Rocket.Chat 完整堆栈:Full_Stack_Rocket.Chat.zip

    下载 Rocket.Chat 全栈 zip 文件后,解压缩该文件,并将 -rchat.pem 文件的内容替换为私钥的相应内容。

    注意:使用 OCI 控制台中的 OCI 资源管理器来部署堆栈,以避免出现任何故障。

  2. 以管理员用户身份登录到 OCI 控制台,导航到 Developer Services ,然后在 Resource Manager 下单击 Stacks

    堆栈

  3. 选择区间,然后单击创建堆栈。在堆栈配置部分中,选择在步骤 1 中下载的堆栈 zip 文件以部署堆栈,然后单击下一步

    堆栈上载

    工作目录

  4. 配置变量页中,输入创建计算实例和其他资源所需的详细信息,然后单击下一步

    注:要创建计算实例和负载平衡器,您需要具有公共连接的现有 VCN。

    计算详细信息

    VCN 和 SSO 详细信息

  5. 复查页中,复查提供的详细信息,然后单击创建

    复查详细信息

  6. 堆栈详细信息页中,单击计划。您将获得成功输出。

    启动计划任务

    计划任务成功

  7. 堆栈详细信息页中,单击应用。您将获得成功输出。

    启动应用作业

    申请作业成功

  8. 成功执行堆栈后,您可以在 IAM 域中找到附加到托管 Rocket.Chat 的计算实例和 SAML 应用程序的负载平衡器。

    计算服务

    负载平衡器

    SAML 应用程序

    注:堆栈执行可能需要大约 40 分钟。等待作业成功。

任务 2:设置 Rocket.Chat 管理帐户

在此任务中,我们将更新本地系统上的 hosts 文件,然后验证部署的资源。

对于 Windows:C:\Windows\System32\Drivers\etc\hosts

对于 Linux:/etc/hosts

Public IP Address of Load Balancer   your-domain-name.com

访问 Rocket.Chat,网址为 https://your-domain-name.com:443,您将被重定向到设置页面。

管理员信息

组织信息

验证电子邮件

确认

“欢迎”页

注:确保管理员密码安全,在 Rocket.Chat 中创建 SAML IdP 时需要此密码。

任务 3:在 Rocket.Chat 中为单点登录创建 SAML IdP

  1. 登录到 Rocket.Chat 实例,导航到工作区设置

    工作区

    设置

  2. 设置窗口中,输入 SAML ,然后单击打开

    SAML 设置

  3. 连接页中,选择启用。输入以下详细信息,然后单击保存更改。如果提示输入管理员密码,请输入密码。

    • 定制提供程序:输入 idcs

    • 更新自定义入口点:输入您的自定义入口点。例如,https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/sso

    • IDP SLO 重定向 URL:输入 IdP SLO 重定向 URL。例如,https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/slo

    • 自定义发布者:输入自定义发布者。例如,https://your-domain-name.com/_saml/metadata/idcs

    • 定制证书:从使用堆栈创建的 SAML 应用程序下载签名证书并复制内容。

      注意:排除 BEGIN CERTIFICATEEND CERTIFICATE 行。

    • 公共证书内容:复制证书的整个内容。

    • Signature Validation Type(签名验证类型):选择 Validate Assertion Signature(验证断言签名)

    连接详细信息

    证书详细信息

    注:使用相同的定制提供程序静态值,否则 SSO 可能因在任务 1 中创建的 SAML 应用程序中引用而失败。

  4. 一般信息页的用户界面部分下,更新按钮文本和其他详细信息(如果需要更改),然后单击保存更改

    用户界面

任务 4:使用 OCI IAM 测试 Rocket.Chat 的 SSO

  1. 打开浏览器并输入 Rocket.Chat https://demo.rocketchat.com:443 的 URL。

    登录名

  2. 此时将显示 OCI IAM 身份域登录页面。使用以前创建的用户的用户名密码

    联合登录

  3. 验证成功后,用户将重定向到 Rocket.Chat 主页。

    “欢迎”页

    注:您应该在 OCI IAM 和 Rocket.Chat 中创建具有相同电子邮件地址的公用用户。

使用 OCI IAM 的 Rocket.Chat SSO 的常见故障排除方案

  1. 确保在、域、设置会话设置下启用了允许跨源资源共享 (CORS)

  2. 如果加载 Rocket.Chat 实例需要时间,您可以尝试通过 SSH 连接到实例,然后使用以下命令重新启动 Docker。

    	docker compose down
    
    	docker compose up -d
    

确认

更多学习资源

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

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