Skip to content

Commit 2e2032e

Browse files
Add Use case 11
1 parent ace0091 commit 2e2032e

1 file changed

Lines changed: 47 additions & 3 deletions

File tree

docs/specs/organization/10-use-case.md

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,10 @@ It implies that updating the email address or removing the email address may not
388388
> [!NOTE]
389389
> In Stytch B2B Authentication, it is forbidden to add, remove, or update own email address.
390390
391+
> [!NOTE]
392+
> In Kinde, Users with Enterprise Identities cannot have other identities.
393+
> See https://docs.kinde.com/authenticate/enterprise-connections/about-enterprise-connections/#how-identities-are-handled-in-enterprise-connections
394+
391395
When a User is a Member of an Organization,
392396
the User is not allowed to add, remove, or update the following Identities:
393397

@@ -404,7 +408,7 @@ The following Identities can still be added and removed:
404408

405409
#### Use case 6.1.1: Organization with Federated Login
406410

407-
Federated Login in this context means the end-user **MUST** sign in a particular Identity associated with the external Identity Provider.
411+
Refer to Use case 11 to learn what Federated Login is.
408412

409413
- The end-user is not expected to add Identities. Federated Login means the end-user must sign in via the external Identity Provider. Adding Identities (and thus adding more login methods) are not useful at all.
410414
- The end-user is not expected to update Identities. As long as the subject ID stays the same, Standard Attributes `email`, `phone_number` and `preferred_username` are updated automatically on login. The end-user need not update them manually.
@@ -864,9 +868,49 @@ The use case is an essential building block of Organization, so it must be imple
864868

865869
## Use case 11: Federated Login
866870

867-
TODO
871+
> [!WARNING]
872+
> The term "Federated Login" is not a common term for this feature.
873+
> For example, if you search `competitor name` + "Federated Login",
874+
> you will likely find unrelated results.
875+
>
876+
> It seems like we are misusing a very common term for a specific feature.
877+
878+
According to Fung's proposal, "Federated Login" is about:
879+
880+
- Configure an Organization-specific OAuth Provider. This is covered in Use case 10 already.
881+
- If the Organization has one and only one applicable Identity Provider (OAuth or SAML), the end-user is redirected to it without seeing the Auth UI. This is just a QoL improvement of the Auth UI, and can be implemented independently of Organizations.
882+
883+
> [!NOTE]
884+
> Auth0 does not support this feature out-of-the-box.
885+
> The best you can do is to provide the `connection` parameter in the authorization endpoint.
886+
> See https://auth0.com/docs/api/authentication/login/enterprise-saml-and-others#remarks
887+
> That does not always work because you need to know in advance what Organization the end-user is going to sign in to.
888+
889+
### Use case 11.1: Federated Login in OIDC
890+
891+
We already support a proprietary authorization endpoint parameter named `x_provider_alias`.
892+
If it is provided, then Auth UI will be skipped, the end-user will be redirected to that OAuth Provider directly.
893+
894+
We can support Federated Login in OIDC like this:
895+
896+
- When the Organization has specific configuration, and it has only one OAuth Provider, the default value of `x_provider_alias` is the alias of that OAuth Provider.
897+
- If `x_provider_alias` is specified in the authentication request, it is respected.
898+
899+
So if the developer does not want the end-user to see the Auth UI,
900+
they configure one and only one Organization-specific OAuth Provider.
901+
902+
This also means Federated Login is **implicit**.
903+
By configuring one and only one Organization-specific OAuth Provider, Federated Login is enabled for the Organization.
904+
905+
### Use case 11.2: Federated Login in SAML
906+
907+
Since this is a feature of Auth UI, no special support is needed.
908+
909+
We may need to consider support `x_provider_alias` in the SAML Login URL.
910+
911+
### Use case 11: Design Decision
868912

869-
This feature is query parameter `x_provider_alias` implicitly provided for a particular Organization.
913+
Implement Use case 11.1 for MVP.
870914

871915
## Use case 12: Built-in Organization Switching
872916

0 commit comments

Comments
 (0)