silinternational/simplesamlphp-module-material

此包已被弃用且不再维护。未建议替换包。

基于 SimpleSAMLphp 的 IdP Hub 材料设计主题


README

此仓库不再维护。它已被直接包含在 https://github.com/silinternational/ssp-base 中。

--

用于 SimpleSAMLphp 的材料设计主题

安装

composer.phar require silinternational/simplesamlphp-module-material:dev-master

配置

更新 /simplesamlphp/config/config.php

'theme.use' => 'material:material'

ssp-base 通过加载环境变量 THEME_USE 中的配置来提供便利。

Google reCAPTCHA

如果提供了 $this->data['recaptcha.siteKey'] 中的站点密钥,用户名/密码页面可能需要用户证明其人性。

品牌

更新 /simplesamlphp/config/config.php

'theme.color-scheme' => ['indigo-purple'|'blue_grey-teal'|'red-teal'|'orange-light_blue'|'brown-orange'|'teal-blue']

登录页面寻找 /simplesamlphp/www/logo.png,该文件默认不提供。

分析

更新 /simplesamlphp/config/config.php

'analytics.trackingId' => 'G-some-unique-id-for-your-site'

ssp-base 通过加载环境变量 ANALYTICS_ID 中的配置来提供便利。

公告

更新 /simplesamlphp/announcement/announcement.php

 return 'Some <strong>important</strong> announcement';

ssp-utilities 提供由 /simplesamlphp/announcement/announcement.php 返回的内容。

如果提供,将向用户显示包含该公告内容的警报。支持 HTML。

测试主题

需要 MakeDockerDocker Compose

设置

  1. 设置 localhost(或使用 Vagrant 时为 192.168.62.54)的别名,以指向 ssp-hub1.localssp-hub2.localssp-idp1.localssp-idp2.localssp-idp3.localssp-idp4.localssp-sp1.localssp-sp2.local。这通常在 /etc/hosts 中完成。 示例行: 0.0.0.0 ssp-hub1.local ssp-idp1.local ssp-idp2.local ssp-idp4.local ssp-hub2.local ssp-idp3.local ssp-sp1.local ssp-sp2.local
  2. 启动测试环境,即从命令行运行 make

枢纽页面

  1. 转到 枢纽 1

错误页面

  1. 转到 枢纽 1
  2. 点击 联盟 选项卡
  3. 点击 显示元数据 链接
  4. 以枢纽管理员身份登录:username=admin password=abc123

注销页面

  1. 转到 枢纽 1
  2. 点击 身份验证 选项卡
  3. 点击 测试配置的身份验证来源
  4. 点击 admin
  5. 以枢纽管理员身份登录:username=admin password=abc123
  6. 点击 注销

登录页面

没有主题的情况下

  1. 转到 SP 1
  2. 点击 idp1(第一个)
  3. 登录页面 不应 有材料设计

有主题的情况下

  1. 转到 SP 1
  2. 点击 idp2(第二个)
  3. 登录页面 有材料设计

忘记密码功能

  1. 转到 SP 1
  2. 点击 idp2(第二个)
  3. 忘记密码链接应可见

有用的链接功能

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 帮助链接应显示在登录表单下方
  4. 个人资料链接应显示在登录表单下方

到期功能

即将到期页面(将在一天后到期)

注意:此提醒只工作一次,因为选择稍后再设置提醒日期将将其设置为未来的一小段时间。如有需要,请使用新的私密/隐身浏览器窗口重试。

  1. 转到 SP 1
  2. 点击 idp2(第二个)
  3. 以“即将到期”用户身份登录: username=near_future password=a
  4. 点击 稍后
  5. 点击 注销

即将到期页面(将在三天后到期)

注意:此提醒只工作一次,因为选择稍后再设置提醒日期将将其设置为未来的一小段时间。如有需要,请使用新的私密/隐身浏览器窗口重试。

  1. 转到 SP 1
  2. 点击 idp2(第二个)
  3. 以“即将到期”用户身份登录: username=near_future password=a
  4. 点击 稍后
  5. 点击 注销

已过期页面

  1. 转到 SP 1
  2. 点击 idp2(第二个)
  3. 以“已过期”用户身份登录: username=already_past password=a

多因素身份验证(MFA)功能

关于缺少MFA设置的提醒

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“未受保护”用户身份登录: username=nag_for_mfa password=a
  4. “了解更多”链接应可见
  5. 点击 启用
  6. 点击浏览器后退按钮
  7. 点击 稍后提醒我
  8. 点击 注销

关于缺少密码恢复方法的提醒

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以没有任何方法的用户身份登录: username=nag_for_method password=a
  4. 输入以下代码之一进行验证(94923279, 82743523, 77802769, 01970541, 37771076
  5. 点击 添加
  6. 点击浏览器后退按钮
  7. 点击 稍后提醒我
  8. 点击 注销

强制设置MFA

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“不安全”用户身份登录: username=must_set_up_mfa password=a

备份码

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“备份码”用户身份登录: username=has_backupcode password=a
  4. 输入以下代码之一进行验证(94923279, 82743523, 77802769, 01970541, 37771076
  5. 点击 注销
  6. 为了查看“代码不足”页面,只需重新登录并使用另一代码。
  7. 为了查看“代码用尽”页面,只需重复登录和登出,直到没有更多代码。

TOTP代码

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“totp”用户身份登录: username=has_totp password=a
  4. 您应该看到输入totp代码的表单。
  5. 使用此密钥设置应用,JVRXKYTMPBEVKXLS
  6. 从应用中输入代码以验证
  7. 点击 注销

密钥(U2F)

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“u2f”用户身份登录: username=has_u2f password=a
  4. 插入密钥并按下
  5. 点击 注销

密钥(WebAuthn)

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“webauthn”用户身份登录: username=has_webauthn password=a
  4. 插入密钥并按下
  5. 点击 注销

多个选项

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“多个选项”用户身份登录: username=has_all password=a
  4. 点击 更多选项

多个选项(传统,带U2F)

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“多个选项”用户身份登录: username=has_all_legacy password=a
  4. 点击 更多选项

管理员救援

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“多个选项”用户身份登录: username=has_all password=a
  4. 点击 更多选项
  5. 点击帮助选项
  6. 选择 发送

注意:目前,正确的代码尚不清楚,无法在本地进行测试(它仅在管理员的电子邮件中可用)

公告功能

  1. 转到 SP 2
  2. 公告应显示在中心
  3. 点击 idp3(第一个)
  4. 公告应显示在登录屏幕上

SP名称功能

  1. 转到 SP 1
  2. SP名称应出现在横幅中

个人资料审查功能

  1. 转到 SP 1
  2. 点击 idp4(第三个)
  3. 以“需要审查”用户身份登录: username=needs_review password=a
  4. 输入以下可打印代码之一进行验证(94923279, 82743523, 77802769, 01970541, 37771076
  5. 点击按钮更新个人资料
  6. 点击按钮继续
  7. 点击 注销

i18n支持

翻译按页面分类,位于位于dictionaries目录中的定义文件中。

本地化受配置设置language.available的影响。只有在此属性中找到的语言代码才会被利用。
例如,如果为此模块提供了荷兰语翻译,则必须调整配置以将“af”设置为可用语言。如果没有这样做,即使提供了翻译,翻译函数也不会利用翻译。

调试

可以通过以下方式启用Xdebug:

  1. local.env中定义REMOTE_DEBUG_IP。这应该是您开发机器的IP地址,即运行您的IDE的那个机器。如果您使用Linux作为Docker宿主机,这里可以使用172.17.0.1。请注意,显示在容器日志中的IP地址可能不是您的机器的实际IP地址(例如可能是虚拟机的IP地址)。
  2. 将run-debug.sh映射到您想要调试的容器中。例如
    volumes:
      - ./development/run-debug.sh:/data/run.sh
  1. 在您的IDE中启用调试。有关PhpStorm设置的说明,请参阅下一节。

为PhpStorm配置远程调试

在PhpStorm中,前往:首选项 > PHP > 调试 > DBGp代理,并设置以下设置

  • 主机:(您的IP地址或主机名)
  • 端口:9000

在:首选项 > PHP > 服务器中设置路径映射

  • 添加一个服务器,给它您的IP地址和一个端口号9000,并将项目文件夹映射到'/data/vendor/simplesamlphp/simplesamlphp/modules/material'
  • 根据需要映射其他目录。当遇到未识别的路径时,PhpStorm应会提示。

然后通过点击PhpStorm工具栏上的“监听”按钮开始监听。