cesnet/simplesamlphp-module-totp

此包已被弃用且不再维护。作者建议使用 cesnet/simplesamlphp-module-privacyidea 包。

SimpleSAMLphp 的简单 TOTP 模块,基于 SimpleTOTP,使用 RobThree 的 TwoFactorAuth 库重写。

安装: 48

依赖项: 0

建议者: 1

安全: 0

星标: 0

关注者: 7

分支: 0

开放问题: 2

类型:simplesamlphp-module

v3.1.8 2022-04-25 19:09 UTC

This package is auto-updated.

Last update: 2022-04-25 19:09:53 UTC


README

此模块不再开发。我们已经转向 privacyIDEA。请尝试我们 fork 的 simplesamlphp-module-privacyidea

TOTP 是一个 SimpleSAMLphp 认证处理过滤器,它允许使用基于时间的单次密码算法 (TOTP) 作为身份提供者或服务提供者(或两者)的第二因素认证机制。

此模块受到 Aidan Rowe 的 SimpleTOTP 的启发,但使用了 Rob Janssen 的 PHP 双因素认证库。它可以使用 SSP 默认存储或数据库存储密钥,或与 Perun IDM 集成。

作为认证处理过滤器,此模块在许多方面都很灵活:

  • 对 TOTP 密钥存储位置无感知
  • 可以在选定的服务提供者或整个身份提供者上启用

使用方法

像任何其他认证过程过滤器一样,此模块需要在 config.php 或特定服务提供者或身份提供者的元数据中的 authproc 数组中进行配置。

先决条件

secret_attr 需要在属性有效负载中可用,因为它用于生成用于比较的令牌。可以使用其他认证过程过滤器添加,以查找外部数据库等。

调用模块后,该属性将从用户属性数组中移出。作为安全预防措施,应采取额外步骤确保删除此属性。可以使用 core:AttributeAlter 过滤器或类似方法完成此操作。

示例

放置在 config.php 的 authproc 中或适当的元数据实体中

10 => array(
	'class' => 'totp:Totp',
	'secret_attr' => 'totp_secret', //default
	'enforce_2fa' => false, //default
	'not_configured_url' => NULL,  //default
),

放置在 config.php authproc 中作为最后要处理的函数之一

99 => array(
	'class' => 'core:AttributeAlter',
	'subject' => 'totp_secret',
	'pattern' => '/.*/',
	'%remove',
),

以下示例演示了它与 example-userpass 模块一起工作的方式。以下配置放在 authsource.php 中。此模块默认启用,但如果未启用,请确保在 modules/exampleauth 目录中创建一个名为 enable 的文件。

	'example-userpass' => array(
		'exampleauth:UserPass',
		'student:studentpass' => array(
			'uid' => array('test'),
			'ga_secret' => array('4HX4WBKVIJWDUV5I'),
			'eduPersonAffiliation' => array('member', 'student'),
		),
	),

使用用户名:student,密码:studentpass 登录后,您将需要 TOTP。 4HX4WBKVIJWDUV5I 是可以通过访问 /simplesaml/module.php/totp/generate_token.php 生成的密钥。

第一次加载时将生成一个随机密钥并保存到会话中。当使用新的会话访问页面时,将生成新的令牌。您可以使用二维码将您的 IdP 注册到 FreeOTP、Google Authenticator 等应用程序。

注意:为了使 TOTP 的工作,您 必须 确保服务器上的时钟同步。如果不这样做,则永远不会生成匹配的令牌,认证将失败。

安装

DecryptSecrets 过滤器

DecryptSecrets 过滤器用于解密加密的秘密并将它们保存到 Attributes 数组中。此过滤器还支持验证签名秘密并从 module_totp.php 获取配置选项。如果秘密签名验证失败,则令牌无法使用。

Perun 集成

为了使用 PerunStorage 并与 Perun 同步令牌,您需要将带有配置选项的 PerunStorage 数组添加到 module_totp.php

安装

此模块使用 Composer 进行依赖项管理。要安装它,克隆存储库并使用 composer install

注意

此模块不提供暴力破解保护,这需要确保安全(6位密码只有100000种选项)。认证页面应该进行暴力破解保护,以阻止潜在的攻击者。

许可协议

此模块在 BSD 2-Clause 许可协议下发布。

版权所有 (c) 2021,Masaryk 大学计算机科学研究所和 CESNET,z. s. p. o. 保留所有权利。