You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/specs/organization/10-use-case.md
+59Lines changed: 59 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -419,3 +419,62 @@ Adding Identities generally does not contradict with auto-membership though.
419
419
### Use case 6: Design Decision
420
420
421
421
We implement User case 6.1 for MVP.
422
+
423
+
## Use case 7: UI/UX of Organizational signup and login
424
+
425
+
### Use case 7.1: Supporting Auth0's Login Experience and Login Flow
426
+
427
+
Depending on the selected "Login Experience", the developer can further configure "Login Flow"
428
+
429
+
- Login Experience - Individuals
430
+
- Login Experience - Business Users
431
+
- Login Flow - Prompt for Credentials
432
+
- Login Flow - Prompt for Organization
433
+
- Login Flow - No Prompt
434
+
- Login Experience - Both
435
+
- Login Flow - Prompt for Credentials
436
+
- Login Flow - No Prompt
437
+
438
+
> [!NOTE]
439
+
> "Login Flow - No Prompt" means the developer has to specify the Organization in the authentication request.
440
+
441
+
If we try to encode the 2 enums into 1 enum, we have:
442
+
443
+
| enum | Auth0 equivalent | Description |
444
+
| --- | --- | --- |
445
+
|`x_organization_behavior=only_non_member`| Login Experience - Individuals | This is the default value because it is back compatible with the pre-organization era. No prompts on Organization. The end-user signs in without Organization. |
446
+
|`x_organization_behavior=only_member:prompt_end_user_for_organization_last`| Login Experience - Business Users + Login Flow - Prompt for Credentials | For signups, it is expected that the signed up User will be made Members of some Organizations via auto-membership, otherwise the end-user will be shown an error screen as a dead end. |
447
+
|`x_organization_behavior=only_member:prompt_end_user_for_organization_first`| Login Experience - Business Users + Login Flow - Prompt for Organization | The end-user is expected to know the Organization slug. Like Auth0, if the end-user enters an invalid Organization slug, an error is shown immediately. |
448
+
|`x_organization_behavior=only_member:developer_specified_organization`| Login Experience - Business Users + Login Flow - No Prompt | The developer **MUST** specifies which organization to sign in. It is an OAuth Error or SAML error if organization is unspecified by the developer. |
449
+
|`x_organization_behavior=either_member_or_non_member:prompt_end_user_for_organization_last`| Login Experience - Both + Login Flow - Prompt for Credentials | The end-user is prompted to select "No Organization" and the Organizations he is a member of. The "No Organization" option always exist. |
450
+
|`x_organization_behavior=either_member_or_non_member:developer_specified_organization`| Login Experience - Both + Login Flow - No Prompt | The developer **OPTIONALLY** specifies which organization to sign in. If unspecified, it behaves the same as `x_organization_behavior=either_member_or_non_member:prompt_end_user_for_organization_last`|
451
+
452
+
When Organization is not known at the beginning, Organization-specific configuration **IS NOT** applied.
453
+
This implies the authentication **COULD** be invalidated by the choice of Organization.
454
+
455
+
For example, the end-user signs in with Email Login ID and password, select an Organization with Federated Login enabled.
456
+
Then the end-user has to restart the authentication from the beginning.
457
+
458
+
For example, the end-user signs in with Email Login ID and password, select an Organization that requires MFA.
459
+
In this particular case, it makes more sense to only require the end-user to do MFA only, rather than restarting the authentication from the beginning.
460
+
461
+
For example, the end-user signs in with Email Login ID and password, select an Organization that has a strict password policy that the current password does not meet.
462
+
In this particular case, the end-user has to change the password in order to complete the login.
463
+
464
+
`prompt_end_user_for_organization_last`, in many ways, does not work well as Authentication Flow.
465
+
466
+
> [!IMPORTANT]
467
+
> Need discussion on how to fit `prompt_end_user_for_organization_last` with Authentication Flow.
468
+
>
469
+
> 1. How do we model `prompt_end_user_for_organization_last`? As a new step in authflow?
470
+
> 2. Once organization is known, the generated authflow may change. Do we compute a diff between the executed authflow with the newly generated authflow? If yes, do we execute the diff?
471
+
472
+
### Use case 7: Design Decision
473
+
474
+
For simplicity, we can implement the following for MVP:
0 commit comments