-
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added MFA support for PasswordCredentials. Closes #52
- Loading branch information
1 parent
a6f5686
commit 570b894
Showing
118 changed files
with
10,466 additions
and
846 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# MFA Design | ||
|
||
* status: accepted | ||
* date: 2024-11-24 | ||
* deciders: jezzsantos | ||
|
||
# Context and Problem Statement | ||
|
||
MFA is a difficult capability to add to any product. See the [OWASP MFA Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Multifactor_Authentication_Cheat_Sheet.html) for considerations. | ||
|
||
There are many options to support, and implementation is risky as there is a high chance to introduce unintended vulnerabilities into the product, or disclose secrets at rest, etc | ||
|
||
Implementing MFA well is best left to the experts in general. However, due to the popularity of MFA, and given we have implemented credentials authentication already, we do need to decide how to implement MFA in our product. | ||
|
||
Further, we need to consider how to make the transition easy if a consumer of SaaStack were to opt in to replace the | ||
`Identity` subdomain with a third-party provider (such as: Auth0 or Okta or Identity Server, etc). | ||
|
||
## Considered Options | ||
|
||
The options are: | ||
|
||
1. Emulate Auth0's API, with partial support | ||
|
||
2. Adapt a common framework or library | ||
|
||
> In any case, follow the implementation guidance at OWASP | ||
## Decision Outcome | ||
|
||
`Auth0 Lookalike` | ||
|
||
- Limit the number of library/framework dependencies in the platform | ||
- High confidence in having a secure enough implementation | ||
- Auth0 API are well documented, even though we don't have a fully compliant )Auth2 Identity subdomain (see: [0100-authentication](0100-authentication.md)) | ||
- Our API endpoints mirror Auth0 endpoints close enough. | ||
|
||
## (Optional) More Information | ||
|
||
Auth0 API is well documented: | ||
|
||
* [API Explorer for MFA](https://auth0.com/docs/api/authentication#multi-factor-authentication) | ||
* [Custom MFA flows](https://auth0.com/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa/enroll-challenge-sms-voice-authenticators) (for credentials) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.