跳到主要内容

配置 ONLYOFFICE SP 和 Shibboleth IdP

介绍​

单点登录 (SSO) 是一种技术,允许用户只需登录一次即可访问多个应用程序/服务,而无需重新验证身份。

如果一个门户网站包含多个大型独立部分(论坛、聊天、博客等),用户可以在其中一个服务中完成身份验证,并自动访问所有其他服务,而无需多次输入凭据。

SSO 始终由两个应用程序的联合操作来保证:身份提供者和服务提供者(以下简称“IdP”和“SP”)。ONLYOFFICE SSO 仅实现 SP。许多不同的提供者可以充当 IdP,但本文考虑的是 Shibboleth 实现。

备注

如果您希望在将 ONLYOFFICE 桌面编辑器 连接到您的 ONLYOFFICE 工作空间 时使用 SSO,请在 控制面板 中禁用 私人房间。

为 SSO 设置准备 ONLYOFFICE 工作空间​

  1. 安装支持 SSO 的 Docker 版或任何更高版本的 ONLYOFFICE 工作空间 v. 11.0.0。
  2. 添加一个域名,例如,myportal-address.com。
  3. 在您的门户网站上,进入 控制面板 > HTTPS,创建并应用 letsencrypt 证书以加密流量(以启用门户网站上的 HTTPS)。

创建 Shibboleth IdP​

要求​

  • 要部署 Shibboleth IDP,需要一台干净的 CentOS 7 主机。

  • 时间必须设置正确,并且必须在主机上安装时间同步服务以用于 IDP:

    timedatectl status
    yum install ntp
    systemctl enable ntpd.service
    ntpdate time.apple.com
  • 机器上必须安装 unzip 包:

    yum install unzip
  • 机器上必须安装 Docker 和 Docker Compose。

  • 必须将一个域名与机器关联(例如,your-idp-domain.com)

创建 Shibboleth IdP​

要创建、配置和启动 Shibboleth IDP,请下载并执行 install.sh 脚本。

脚本执行以下操作:

  • 从 github 下载用于创建 Shibboleth Idp 镜像和容器的 docker 文件,
  • 在配置文件中将默认的 idptestbed.edu 域更改为执行脚本时指定的域,
  • 为指定的 ONLYOFFICE SP 域添加通过 SAML 协议的访问,
  • 指定 ONLYOFFICE SP 需要哪些属性才能从 Shibboleth IDP 发布用户信息(属性映射设置),
  • 创建和配置 LDAP 并创建用户以进行发布,
  • 启用从 ONLYOFFICE SP 到 Shibboleth IDP 的元数据动态加载,
  • 如有必要,启用 Shibboleth SLO。
  1. 下载 install.sh 脚本:

    curl -L https://raw.githubusercontent.com/ONLYOFFICE/helpcenter-scripts/master/workspace/control-panel-sso-shibboleth/install.sh -o install.sh
  2. 使脚本可执行:

    chmod +x install.sh
  3. 执行脚本并用您自己的参数替换:

    ./install.sh -id your-idp-domain.com -sd myportal-address.com --no_slo

    脚本参数:

    • -id - 当前机器的 Shibboleth IDP 域名。
    • -sd - 部署 ONLYOFFICE SP 的域名。
    • --no_slo - 禁用 Shibboleth IDP 中的单点注销(可选参数)。
  4. 等待脚本执行后 Shibboleth IDP 启动。

  5. 要验证 Shibboleth IDP 是否正确启动,请在浏览器中打开 https://your-idp-domain.com/idp/shibboleth 链接。应显示一个 xml 文件。

  6. 复制 https://{your_idp_domain}/idp/shibboleth 链接(例如,https://your-idp-domain.com/idp/shibboleth)并以管理员身份登录到 ONLYOFFICE 门户。打开 控制面板 > SSO 页面。

配置 ONLYOFFICE SP​

  1. 确保您以管理员身份登录到您的 ONLYOFFICE 控制面板,然后在左侧边栏的 门户设置 部分中单击 SSO 选项卡。

    备注

    您只能为您的组织在 ONLYOFFICE 门户上注册一个企业身份提供者。

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

  2. 使用 启用单点登录身份验证 开关启用 SSO,并将 Shibboleth IdP 的链接粘贴到 Idp 元数据 XML 的 URL 字段中。

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

  3. 按上箭头按钮加载 IdP 元数据。ONLYOFFICE SP 设置表单将自动填充您从 Shibboleth IdP 获取的数据。

    由于我们在执行 install.sh 脚本时通过指定 --no_slo 参数禁用了 SLO,因此 IdP 单点注销端点 URL 字段将为空。

  4. 一旦 IdP 元数据加载完成,IdP 公共证书部分将添加两个证书。您还会看到弹出窗口显示以下文本:“不支持多个 Idp 验证证书。请仅保留主证书”。

    您需要删除列表中的第二个证书,只保留第一个证书,即主证书。使用第二个证书旁边的删除链接将其删除。如果不删除证书,您将无法保存设置。

  5. 在自定义登录按钮标题字段中,您可以输入任何文本替代默认文本(单点登录)。此文本将显示在用于通过 ONLYOFFICE 身份验证页面上的单点登录服务登录门户的按钮上。

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

  6. 现在您需要在SP 证书部分创建自签名证书或添加任何其他证书。

    重要!

    在用途列表中,选择签名和加密选项,因为您的 Shibboleth IdP 已通过 install.sh 脚本自动配置为验证数据是否已数字签名和加密。

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

    您应该得到类似的结果:

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

  7. 在属性映射部分,设置 ONLYOFFICE 人员模块中的字段与 Shibboleth IdP 返回的用户属性的对应关系。

    字段属性
    名字urn:oid:2.5.4.42
    姓氏urn:oid:2.5.4.4
    邮箱urn:oid:0.9.2342.19200300.100.1.3
    位置urn:oid:2.5.4.7
    职位urn:oid:2.5.4.12
    电话urn:oid:0.9.2342.19200300.100.1.41

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

    在高级设置部分,您可以勾选隐藏身份验证页面选项,以隐藏默认身份验证页面并自动重定向到 SSO 服务。

    重要

    如果您需要恢复默认身份验证页面(以便在 IDP 服务器出现故障时能够访问门户),您可以在浏览器地址栏中在您的门户域名后添加 /Auth.aspx?skipssoredirect=true 键。

  8. 点击保存按钮。

  9. 应打开ONLYOFFICE SP 元数据部分。

  10. 通过点击下载 SP 元数据 XML按钮来验证我们的设置是否公开可用。应显示 XML 文件内容。

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

    此 xml 文件通常用于配置 Shibboleth IDP,但由于 install.sh 脚本启用了 DynamicHTTPMetadataProvider,我们不需要这样做(Shibboleth IDP 在首次请求登录时将下载此 xml 文件)。

检查 ONLYOFFICE SP 与 Shibboleth IdP 的工作​

install.sh 脚本创建了 4 个用户,可以用于测试 ONLYOFFICE SP 与 Shibboleth IdP 的工作。

邮箱用户名密码备注
student1@{your_idp_domain}student1password标准
student2@{your_idp_domain}student2password无给定名
student3@{your_idp_domain}student3password含变音符号
staff1@{your_idp_domain}staff1password仅必填字段

在 SP 端登录 ONLYOFFICE​

  1. 访问 ONLYOFFICE 身份验证页面(例如,https://myportal-address.com/Auth.aspx)。

  2. 点击单点登录按钮(如果您在配置 ONLYOFFICE SP 时指定了自己的文本,标题可能会有所不同)。如果按钮缺失,这意味着 SSO 未启用。

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

  3. 如果所有 SP 和 IdP 参数设置正确,您将被重定向到 Shibboleth IdP 登录表单:

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

  4. 输入 Shibboleth IdP 帐户的用户名和密码(用户名:student1,密码:password)并勾选不记住登录框。

  5. 如果凭据正确,将打开一个新窗口。点击接受按钮以允许向服务提供信息。

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

  6. 如果一切正确,您将被重定向到门户的主页。如果缺少用户将自动创建,或者如果在 IdP 中更改了数据将更新。

    如何配置 Shibboleth IdP 和 ONLYOFFICE SP

使用 SSO 身份验证添加的用户的个人资料​

使用 SSO 身份验证创建的用户个人资料的编辑权限受到限制。从 IdP 接收到的用户资料字段无法编辑(即,名字、姓氏、邮箱、职位和位置)。您只能从您的 IdP 帐户编辑这些字段。

下图显示了 SSO 用户的操作菜单:

如何配置 Shibboleth IdP 和 ONLYOFFICE SP

下图显示了打开编辑的 SSO 用户个人资料:

如何配置 Shibboleth IdP 和 ONLYOFFICE SP

使用 SSO 身份验证创建的用户在门户管理员的用户列表中标记有 SSO 图标:

如何配置 Shibboleth IdP 和 ONLYOFFICE SP

要从 Shibboleth IdP 注销(如果您在登录时未勾选不记住登录框),请访问如下链接:https://{shibboleth-idp-domain}/idp/profile/Logout