Only require MFA for signing activities
In this example, we require users to satisfy MFA only when performing signing activities. For all other activities, no MFA is required. In this case, the user can use their existing session along with a passkey to satisfy MFA when signing.Two factor authentication
In this example, we require users to authenticate with both a passkey and an email OTP to retrieve a session. Every other activity requires only a session.Two factor authentication, exporting requires stronger MFA
In this example, we require users to authenticate with both a passkey and an email OTP to retrieve a session. For exporting, we require users to authenticate with their passkey and their existing session. For all other activities, only a session is required.Two factor authentication, signing requires MFA every 15 minutes
In this example, MFA is required for authentication. Signing requires MFA but, a session profile with a 15 minute expiration is used so that users only need to satisfy MFA every 15 minutes when signing. In order to get this session profile, the user must authenticate with their existing default session (retrieved by using email OTP and a passkey) and a passkey. All other activities only require a session. First, we set up the session profile with a 15 minute expiration on the parent organization:By-factor login capabilities
In this example, different login methods grant different levels of access:- SMS OTP login: grants a session that can do all activities except export
- Passkey login: grants a session that can do all activities including export
- SMS user wants to export: must upgrade their session by proving they also have a passkey. The upgraded session lasts 15 minutes, after which they must re-authenticate to export again.
Explicit downgrade
In this example, users log in with SMS OTP and receive a safe session that allows all activities except signing. To sign, they must upgrade to a signing session by proving they have a passkey. The signing session lasts 15 minutes, after which the user falls back to the safe session. In the UX, the user can also explicitly “downgrade” back to the safe session at any time by simply discarding the signing session.- SMS OTP login: grants a safe session that can do all activities except sign
- User wants to sign: uses the safe session and a passkey to get a signing session that can only be used for signing activities. The signing session lasts 15 minutes.
- Explicit downgrade: user discards the signing session in the UX and switches back to the safe session. No Turnkey API call is needed - the app simply stops using the signing session.
- Automatic downgrade: after 15 minutes, the signing session expires. Any signing attempts will require the user to go through the upgrade flow again.
Enforcing MFA via delegated access
In this example, a parent organization enforces MFA on an end-user’s sub-organization using a delegated access user. The delegated access user is controlled by the parent org and has a narrowly scoped policy that only allows it to manage MFA policies.- Parent org creates a sub-organization with a root user
- Sub-org root user creates a delegated access user whose API key is controlled by the parent org
- Sub-org root user assigns a policy to the delegated access user that only allows MFA policy management
- Delegated access user creates an MFA policy requiring the end user to authenticate with a passkey for all signing activities
Quorum-based MFA recovery via delegated access
In this example, a parent organization sets up a recovery mechanism using two delegated access users. Both must approve before an MFA policy can be deleted, preventing any single party from removing a user’s MFA protections. See MFA Recovery for more details.- Sub-org root user creates two delegated access users, each with an API key controlled by a different party in the parent org
- Sub-org root user assigns a policy requiring both delegated users to approve MFA policy deletions
- When the end user is locked out, both delegated access users must approve the
DeleteMfaPolicyactivity