是否有可用的解决方案支持OpenLDAP中的2FA进行用户身份验证?

时间:2018-11-01 14:05:35

标签: php single-sign-on openldap

当前,我们在php应用程序中将 SimpleSAMLphp 用于SSO解决方案,其中OpenLDAP作为auth数据源,并且运行良好。

现在我们需要在登录过程中实现2FA,所以我想知道OpenLDAP中是否有对2FA的内置支持。

我发现 SimpleSAMLphp 允许使用 PrivacyIDEA 模块进行2FA,但是它使用了它自己的totp生成和验证机制,但是我们需要在SimpleSAMLphp和OpenLDAP中处理的一切甚至可能吗?

4 个答案:

答案 0 :(得分:2)

privacyIDEA可以从OpenLDAP读取您的用户和所有需要的属性。 您可以定义一个attribute mapping来从OpenLDAP读取任意属性。

在privacyIDEA中,您可以define a policy,要求用户输入LDAP密码 OTP值。

然后在simpleSAMLphp中,可以将 authsource 定义为privacyIDEA。 这样,用户可以在IdP上使用其LDAP密码和OTP进行身份验证。 如果需要,您甚至可以使用参数otpextra来使用两步对话框,用户首先需要输入其LDAP密码,然后输入其OTP值。

使用mapping in the SAML privacyIDEA module或authproc过滤器进一步映射属性。

答案 1 :(得分:1)

在我的Æ-DIR中,我正在使用自己的解决方案OATH-LDAP,该解决方案将令牌数据添加为LDAP条目。当前,验证器仅支持基于计数器的HOTP(请参见RFC 4226)。可以使用例如通过 yubikey ,还可以使用一个注册脚本。

不幸的是,目前没有有关如何在任意OpenLDAP安装中独立使用OATH-LDAP的文档。

让我知道您是否想对此进行深入研究。

答案 2 :(得分:0)

看起来OpenLDAP确实支持带有扩展模块的TOTP(最通常称为Google Authenticator)。

OpenLDAP的模块可以是found here。描述它的文章可以be found here。该模块的文档似乎有点浅,但是该模块本身很小并且可读性很强。

答案 3 :(得分:0)

作为替代方案,您还可以使用privacyIDEA LDAP Proxy来仍然使用simpleSAMLphp的> d5 <- as.data.frame(diamond5) > d5$cut.alt <- NA > d5$cut.alt[d5$cut == "Fair"] <- 5 > d5$cut.alt[d5$cut == "Good"] <- 4 > d5$cut.alt[d5$cut == "Very Good"] <- 3 > d5$cut.alt[d5$cut == "Premium"] <- 2 > d5$cut.alt[d5$cut == "Ideal"] <- 1 > d5$cut.fac <- factor(d5$cut.alt) > model2.1 <- lm(price ~ carat + cut.fac, data = d5) > summary(model2.1) Call: lm(formula = price ~ carat + cut.fac, data = d5) Residuals: Min 1Q Median 3Q Max -17541 -792 -38 522 12721 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -2074.5 14.2 -145.8 <2e-16 *** carat 7871.1 14.0 563.0 <2e-16 *** cut.fac2 -361.8 16.7 -21.7 <2e-16 *** cut.fac3 -290.8 17.2 -16.9 <2e-16 *** cut.fac4 -680.6 24.0 -28.4 <2e-16 *** cut.fac5 -1800.9 39.3 -45.8 <2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1510 on 53934 degrees of freedom Multiple R-squared: 0.856, Adjusted R-squared: 0.856 F-statistic: 6.44e+04 on 5 and 53934 DF, p-value: <2e-16 > model2.2 <- lm(price ~ carat + cut, data = d5) > summary(model2.2) Call: lm(formula = price ~ carat + cut, data = d5) Residuals: Min 1Q Median 3Q Max -17541 -792 -38 522 12721 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -2701.4 15.4 -175.06 < 2e-16 *** carat 7871.1 14.0 563.04 < 2e-16 *** cut.L 1239.8 26.1 47.50 < 2e-16 *** cut.Q -528.6 23.1 -22.85 < 2e-16 *** cut.C 367.9 20.2 18.20 < 2e-16 *** cut^4 74.6 16.2 4.59 4.4e-06 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1510 on 53934 degrees of freedom Multiple R-squared: 0.856, Adjusted R-squared: 0.856 F-statistic: 6.44e+04 on 5 and 53934 DF, p-value: <2e-16 身份验证源,但使用OTP值“丰富”它。