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 38 - name: ClearSecretKey 39 description: > 40 This method clears Time-based One-time Password authenticator secret 41 key for the given user. 42 errors: 43 - xyz.openbmc_project.Common.Error.UnsupportedRequest 44 - xyz.openbmc_project.Common.Error.NotAllowed 45properties: 46 - name: SecretKeyGenerationRequired 47 type: boolean 48 default: false 49 flags: 50 - readonly 51 description: > 52 This property indicates whether TOTP authenticator secret key setup 53 required for the given user to complete Time-based One-time Password 54 authentication setup 55 56 - name: SecretKeyIsValid 57 type: boolean 58 default: false 59 description: > 60 This property indicates whether TOTP authenticator secret key setup 61 for the given user 62 63 - name: BypassedProtocol 64 type: enum[xyz.openbmc_project.User.MultiFactorAuthConfiguration.Type] 65 default: None 66 description: > 67 User level multi-factor authentication bypass settings. This interface 68 will be implemented by user D-bus object to support user's MFA bypass 69 configuration. 70