silinternational / simplesamlphp-module-expirychecker
simpleSAMLphp模块,用于提醒用户他们的密码即将到期或已经过期。
Requires
- php: >=7.2
- ext-json: *
- silinternational/psr3-adapters: ^1.1 || ^2.0 || ^3.0
- simplesamlphp/simplesamlphp: ~1.17.7 || ~1.18.4 || ~1.19.0
Requires (Dev)
- behat/behat: ^3.3
- behat/mink: ^1.7
- behat/mink-goutte-driver: ^1.2
- phpunit/phpunit: ^8.4
- roave/security-advisories: dev-master
README
此存储库不再维护。它已被直接包含在 https://github.com/silinternational/ssp-base 中。
--
ExpiryChecker simpleSAMLphp 模块
一个simpleSAMLphp模块,用于提醒用户他们的密码即将到期或已经过期。
注意:此模块不会阻止用户登录。它只是显示一个警告页面(如果密码即将过期),用户可以选择立即更改密码或稍后更改,或者告知用户密码已经过期,唯一的选择是立即更改密码。如果用户最近已经看过这两个页面之一,这两个页面都将被绕过(一段时间),以便用户可以访问更改密码网站(假设它也位于该IdP之后)。如果不应允许用户登录,simpleSAMLphp Auth. 源应考虑用户提供的凭据无效。
ExpiryChecker模块作为身份验证处理过滤器(AuthProc)实现。这意味着可以在全局config.php文件或SP远程或IdP托管元数据中进行配置。
建议在IdP上运行ExpiryChecker模块,并将过滤器配置为在所有其他启用过滤器之前运行。
如何使用模块
只需在您的composer.json
文件中包含simplesamlphp/composer-module-installer
和此模块。composer-module-installer
包将发现此模块并将其复制到simplesamlphp
中的modules
文件夹。
然后您需要在配置中设置过滤器参数。我们建议将其添加到metadata/saml20-idp-hosted.php
文件中的'authproc'
数组中,但您也可以将其放入config/config.php
文件中的'authproc.idp'
数组中。
示例(在metadata/saml20-idp-hosted.php
中)
'authproc' => [
10 => [
// Required:
'class' => 'expirychecker:ExpiryDate',
'accountNameAttr' => 'cn',
'expiryDateAttr' => 'schacExpiryDate',
'passwordChangeUrl' => 'https://idm.example.com/pwdmgr/',
// Optional:
'warnDaysBefore' => 14,
'originalUrlParam' => 'originalurl',
'dateFormat' => 'm.d.Y', // Use PHP's date syntax.
'loggerClass' => '\\Sil\\Psr3Adapters\\Psr3SamlLogger',
],
// ...
],
accountNameAttr
参数表示包含用户账户名称的SAML属性名称。在特定情况下,此名称将显示给用户,并用于日志消息。
expiryDateAttr
参数表示包含用户过期日期的SAML属性名称,必须格式化为YYYYMMDDHHMMSSZ(例如,20111011235959Z
)。这两个属性必须是用户成功认证时返回的属性集的一部分。
warnDaysBefore
参数应是一个整数,表示在过期日期之前多少天向用户显示“即将过期”警告。
dateFormat
参数指定了您希望如何格式化日期,使用PHP date()
语法。请参阅https://php.ac.cn/manual/en/function.date.php。
参数loggerClass
指定了一个PSR-3兼容的类名,这个类可以被自动加载,用于在ExpiryDate中作为日志记录器。
贡献
要贡献力量,请在以下链接提交问题或拉取请求:https://github.com/silinternational/simplesamlphp-module-expirychecker
致谢
此内容改编自ssp-iidp-expirycheck
和expirycheck
模块。感谢Alex Mihičinac、Steve Moitozo和Steve Bagwell对这两个模块所做的初步工作。