自定义双因素认证条件

编辑本页

自定义双因素认证条件

在应用程序中,执行双因素身份验证时可能会有额外的需求,这超出了bundle自动执行的功能。在这种情况下,您需要实现\ Scheb\ TwoFactorBundle\安全\ TwoFactor\条件\ TwoFactorConditionInterface:

12 3 4 5 6 7 8 9 10 11 12
<?php使用SchebTwoFactorBundle安全TwoFactorAuthenticationContextInterface使用SchebTwoFactorBundle安全TwoFactor条件TwoFactorConditionInterfaceMyTwoFactorCondition实现了TwoFactorConditionInterface公共函数shouldPerformTwoFactorAuthentication(AuthenticationContextInterface上下文:保龄球//你的条件在这里}}

将其注册为服务并配置服务名:

1 2 3
#配置/包/ scheb_2fa.yamlscheb_two_factor:two_factor_condition:acme.custom_two_factor_condition

绕过双因素认证

如果只是希望绕过特定身份验证器的2fa,请设置TwoFactorAuthenticator: FLAG_2FA_COMPLETE属性将实现这一点。

例如,如果您正在构建一个自定义身份验证当使用验证器时,这将绕过2fa:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
<?php名称空间Acme演示使用SchebTwoFactorBundle安全Http身份验证TwoFactorAuthenticator使用ob娱乐下载组件安全核心身份验证令牌TokenInterface使用ob娱乐下载组件安全Http身份验证AbstractAuthenticator使用ob娱乐下载组件安全Http身份验证护照PassportInterfaceMyAuthenticator扩展AbstractAuthenticator公共函数createAuthenticatedToken(PassportInterface护照、字符串firewallName:TokenInterface令牌::createAuthenticatedToken (护照firewallName);//设置这个验证器绕过2fa令牌->setAttribute (TwoFactorAuthenticator::FLAG_2FA_COMPLETE,真正的);返回令牌;}/ /……
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。