silinternational/simplesamlphp-module-mfa

此软件包已被废弃,不再维护。未建议替代软件包。

一个简单的samlphp模块,用于提示用户输入MFA凭证(例如TOTP代码等)。

安装次数: 1,323

依赖关系: 0

建议者: 0

安全: 0

星标: 6

关注者: 5

分支: 3

开放问题: 0

类型:simplesamlphp-module

5.2.2 2024-02-28 19:32 UTC

README

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

--

多因素认证(MFA)simpleSAMLphp模块

一个简单的samlphp模块,用于提示用户输入MFA凭证(例如TOTP代码等)。

此mfa模块作为认证处理过滤器(AuthProc)实现。这意味着它可以在全局config.php文件或SP远程或IdP托管元数据中进行配置。

建议在IdP上运行mfa模块,并将过滤器配置为在您可能启用的所有其他过滤器之前运行。

如何使用此模块

只需在您的composer.json文件中包含simplesamlphp/composer-module-installer和此模块即可。composer-module-installer软件包将发现此模块并将其复制到simplesamlphp中的modules文件夹。

然后您需要在您的配置中设置过滤器参数。我们建议将它们添加到metadata/saml20-idp-hosted.php文件中的'authproc'数组中。

示例(对于metadata/saml20-idp-hosted.php

use Sil\PhpEnv\Env;
use Sil\Psr3Adapters\Psr3SamlLogger;

// ...

'authproc' => [
    10 => [
        // Required:
        'class' => 'mfa:Mfa',
        'employeeIdAttr' => 'employeeNumber',
        'idBrokerAccessToken' => Env::get('ID_BROKER_ACCESS_TOKEN'),
        'idBrokerAssertValidIp' => Env::get('ID_BROKER_ASSERT_VALID_IP'),
        'idBrokerBaseUri' => Env::get('ID_BROKER_BASE_URI'),
        'idBrokerTrustedIpRanges' => Env::get('ID_BROKER_TRUSTED_IP_RANGES'),
        'idpDomainName' => Env::get('IDP_DOMAIN_NAME'),
        'mfaSetupUrl' => Env::get('MFA_SETUP_URL'),

        // Optional:
        'loggerClass' => Psr3SamlLogger::class,
    ],
    
    // ...
],

employeeIdAttr参数表示存储用户员工ID的SAML属性名称。在某些情况下,这可能会显示给用户,并用于日志消息中。

loggerClass参数指定一个PSR-3兼容的类名,该类可以自动加载,并在ExpiryDate中使用作为日志记录器。

mfaSetupUrl参数用于发送用户设置的MFA的URL。

idpDomainName参数用于组装WebAuthn MFA选项的信赖方源(RP Origin)。

本地测试

设置

将条目添加到您的hosts文件中,将mfa-sp.localmfa-idp.local与您的docker容器的IP地址关联(如果您在Vagrant VM内运行docker,则这是Vagrantfile中的IP地址)。

自动化测试

运行make test

手动测试

在浏览器中转到 http://mfa-sp.local:52021/module.php/core/authenticate.php?as=mfa-idp 并使用在development/idp-local/config/authsources.php中定义的用户之一进行登录。例如:用户名 = must_set_up_mfa,密码 = a

转到 http://mfa-sp.local:52021/module.php/core/as_logout.php?ReturnTo=/&AuthId=mfa-idp 进行登出。

为什么使用AuthProc进行MFA?

基于...

...似乎使用simpleSAMLphp AuthProc实现MFA足够安全。

有关更多详细信息,请参阅此Stack Overflow Q&A
https://stackoverflow.com/q/46566014/3813891

贡献

要贡献,请在此提交问题或拉取请求:https://github.com/silinternational/simplesamlphp-module-mfa

致谢

本内容改编自 silinternational/simplesamlphp-module-expirychecker 模块,该模块又是对其他模块的改编。感谢所有为此工作做出贡献的人。