1description: > 2 This interface defines methods and properties required for Time-based 3 One-time Password (TOTP) multi-factor authentication at user level to 4 support multi-factor authentication secret key setup for each user. This 5 interface implemented by each user object to support TOTP based 6 authenticators like google, microsoft, etc. 7 8methods: 9 - name: CreateSecretKey 10 description: > 11 This method setup Time-based One-time Password (TOTP) authenticator 12 secret key for the given user and returns secret key string to share 13 secret key to user. 14 returns: 15 - name: SecretKey 16 type: string 17 description: > 18 Secret key string which will be shared to user to setup TOTP 19 applications to generate TOTP token. 20 21 - name: VerifyOTP 22 description: > 23 This method verifies OTP with Time-based One-time Password 24 authenticator secret key for the given user and returns weather this 25 OTP is valid or not which make sure user has setup valid secret key 26 for two factor authentication. 27 parameters: 28 - name: OTP 29 type: string 30 description: > 31 One-time password string 32 returns: 33 - name: Status 34 type: boolean 35 description: > 36 Returns true if provided OTP is valid otherwise returns false. 37 38properties: 39 - name: SecretKeyGenerationRequired 40 type: boolean 41 default: false 42 flags: 43 - readonly 44 description: > 45 This property indicates whether TOTP authenticator secret key setup 46 required for the given user to complete Time-based One-time Password 47 authentication setup 48 49 - name: SecretKeyIsValid 50 type: boolean 51 default: false 52 description: > 53 This property indicates whether TOTP authenticator secret key setup 54 for the given user 55 56 - name: BypassedProtocol 57 type: enum[xyz.openbmc_project.User.MultiFactorAuthConfiguration.Type] 58 default: None 59 description: > 60 User level multi-factor authentication bypass settings. This interface 61 will be implemented by user D-bus object to support user's MFA bypass 62 configuration. 63