Skip to content

Commit 9535c16

Browse files
Rany0101Copilot
andauthored
chore: multiple custom domains (#1305)
* chore: multiple custom domains * chore: update docs/logto-cloud/system-limit.mdx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: update docs/logto-cloud/system-limit.mdx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: update docs/logto-cloud/custom-domain.mdx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: update docs/logto-cloud/custom-domain.mdx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 7ba5b8a commit 9535c16

File tree

7 files changed

+103
-37
lines changed

7 files changed

+103
-37
lines changed

β€Ždocs/logto-cloud/billing-and-pricing.mdxβ€Ž

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,20 @@ Keep in mind that only a few features are part of the add-on structure.
3030

3131
At the same time, Logto also offers a pay-as-you-go and pro-rated pricing model to ensure you get the most out of our service conveniently.
3232

33-
| | Included quota | Addition cost |
34-
| ------------------------------- | ------------------------------------------------------- | ------------------------ |
35-
| **Tokens** | 50K | $0.08 per mo / 100 after |
36-
| **Machine-to-machine apps** | 1 | $8 **_each_** per month |
37-
| **API resources** | 3 | $4 **_each_** per month |
38-
| **Enterprise SSO** | 0 | $48 **_each_** per month |
39-
| **Multi-factor authentication** | All factors | $48 per month |
40-
| **Organization** | Unlimited organizations & All the organization features | $48 per month |
41-
| **Role-based access control** | Unlimited roles and permissions | $32 per month |
42-
| **SAML app** | 0 | $96 **_each_** per month |
43-
| **Third party app** | 0 | $8 **_each_** per month |
44-
| **Advanced security bundle** | All advanced security features | $48 per month |
45-
| **Tenant members** | 1 | $8 **_each_** per month |
33+
| | Included quota | Addition cost |
34+
| ------------------------------- | ----------------------------------------------------------------------------------------- | -------------------------------------- |
35+
| **Tokens** | 50K | $0.08 per mo / 100 after |
36+
| **Machine-to-machine apps** | 1 | $8 **_each_** per month |
37+
| **API resources** | 3 | $4 **_each_** per month |
38+
| **Enterprise SSO** | 0 | $48 **_each_** per month |
39+
| **Multi-factor authentication** | All factors | $48 per month |
40+
| **Organization** | Unlimited organizations & All the organization features, including organization templates | $48 per month |
41+
| **Role-based access control** | Unlimited roles and permissions | $32 per month |
42+
| **SAML app** | 0 | $96 **_each_** per month |
43+
| **Third party app** | 0 | $8 **_each_** per month |
44+
| **Advanced security bundle** | All advanced security features | $48 per month |
45+
| **Multiple custom domains** | 1 | $48 for up to **10 domains** per month |
46+
| **Tenant members** | 1 | $8 **_each_** per month |
4647

4748
If we take those factors into consideration, the algorithm is
4849

β€Ždocs/logto-cloud/custom-domain.mdxβ€Ž

Lines changed: 81 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,62 @@
11
---
22
id: custom-domain
3-
title: Custom domain
3+
title: Custom domains
44
sidebar_position: 4
55
---
66

7-
# Custom domain
7+
# Custom domains
88

9-
Your Logto tenant comes with a default free domain `{{tenant-id}}.app.logto`. However, you can elevate your user experience and brand recognition by using a custom domain, like `auth.example.com`.
9+
:::note
10+
Changing the domain after publishing your service may cause troubles because your application code and integrations might still reference the old domain. To ensure a smooth transition, we recommend **setting up your custom domains at the beginning** during Production tenant creation.
11+
:::
1012

11-
Your custom domain is used for several functions:
13+
Your Logto tenant comes with a default free domain `{{tenant-id}}.app.logto`. However, you can elevate your user experience and brand recognition by using custom domains, like `auth.example.com`.
14+
15+
Your custom domains are used for several functions:
1216

1317
- [Sign-in and registration page](/end-user-flows/sign-up-and-sign-in) URLs
14-
- [Passkey](/end-user-flows/mfa/webauthn) linking URLs (Changing the domain after users have linked Passkeys may block their authentication).
1518
- Callback URIs for [social connectors](/connectors/social-connectors) or [enterprise SSO connectors](/connectors/enterprise-connectors).
19+
- [Passkey](/end-user-flows/mfa/webauthn) linking URLs (Changing the domain after users have linked Passkeys may block their authentication).
1620
- [SDK endpoint](/integrate-logto/application-data-structure#openid-provider-configuration-endpoint) for integrating Logto with your application.
1721

18-
:::note
19-
Changing the domain after publishing your service may cause troubles because your application code and integrations might still reference the old domain. To ensure a smooth transition, **set up your custom domain at the beginning** during a Production tenant creation.
20-
:::
22+
## Multiple custom domains \{#multiple-custom-domains}
23+
24+
Logto now supports configuring **multiple custom domains** for a single tenant, making your sign-in page accessible from more than one branded domain.
2125

22-
## Configure custom domain in Console \{#configure-custom-domain-in-console}
26+
**Plan-based limits:**
27+
28+
- **Development tenant**: Add up to 2 custom domains for free (for testing purposes)
29+
- **Free plan**: Add 1 custom domain at no charge
30+
- **Pro plan**: Add 1 custom domain included, with the ability to add up to 10 custom domains total through add-ons
31+
- **Enterprise plan**: For more than 10 custom domains or custom requirements, please [contact us](https://logto.io/contact)
32+
33+
See the [Logto pricing table](https://logto.io/pricing) for detailed information.
34+
35+
**With multiple custom domains, you can:**
36+
37+
- Use different domains for various regions, locales, applications, organizations, or top-level domains
38+
- Build trust by maintaining a consistent brand experience before and after sign-in
39+
- Provide region-specific or brand-specific authentication experiences by [Custom UI](/customization)
40+
41+
## Configure custom domains in Console \{#configure-custom-domains-in-console}
2342

2443
To add a new custom domain in the Logto Console, follow these steps:
2544

2645
1. Navigate to <CloudLink to="/tenant-settings/domains">Console > Settings > Domains</CloudLink>.
27-
2. In "Custom Domain" section, enter your domain name and click "add domain".
46+
2. In "Add a custom domain" section, enter your subdomain (e.g., `auth.example.com`, `auth.us.example.com`) and click "add domain".
2847

29-
<img src="/img/assets/custom-domain-section.jpeg" alt="Add domain" />
48+
<img src="/img/assets/custom-domain-section.png" alt="Add domain" />
3049

31-
3. Copy the CNAME value in the table, and go to your domain's DNS provider to add record.
50+
3. Copy the **CNAME** value `domains.logto.app` in the table, and go to your domain's DNS provider to add record.
3251

33-
<img src="/img/assets/custom-domain-processing.jpeg" alt="Custom domain processing" />
52+
<img src="/img/assets/custom-domain-processing.png" alt="Custom domain processing" />
3453

3554
4. Wait for the verification and SSL process.
3655
1. We will auto-verify your records every 10 seconds until the custom domain is added. Just ensure that the entered domain name or DNS Records are accurate.
3756
2. Verification typically takes a few minutes but can take up to 24 hours, depending on the DNS provider. Feel free to navigate away during the process.
3857

58+
To add multiple custom domains, simply repeat the above steps for each domain you want to configure.
59+
3960
## Troubleshooting \{#troubleshooting}
4061

4162
<details>
@@ -106,7 +127,7 @@ Also verify that the redirect URIs registered in <CloudLink to="/applications">C
106127

107128
</details>
108129

109-
## Use custom domain \{#use-custom-domain}
130+
## Use custom domains \{#use-custom-domains}
110131

111132
Once you've configured your settings, both your custom domain name and the default Logto domain name will be available for your tenant. However, certain configurations are required to activate your custom domain name.
112133

@@ -127,6 +148,8 @@ const client = new LogtoClient({
127148
});
128149
```
129150

151+
On the detail page of your application in <CloudLink to="/applications">Console > Applications</CloudLink>, scroll to the "Endpoints & Credentials" section. Switch the domain dropdown to view and copy the corresponding endpoints for updating your application settings.
152+
130153
### Modifying auth endpoints for other applications \{#modifying-auth-endpoints-for-other-applications}
131154

132155
If you have applications that aren't using the Logto SDK, it's necessary to update their auth endpoints.
@@ -137,8 +160,49 @@ You can locate the auth endpoints at the well-known URL:
137160
https://auth.example.com/oidc/.well-known/openid-configuration
138161
```
139162

140-
### Updating the social connector's callback URI \{#updating-the-social-connectors-callback-uri}
163+
### Updating social connector redirect URIs \{#updating-social-connector-redirect-uris}
164+
165+
[Social connectors](/connectors/social-connectors) use the OIDC/OAuth protocol. When users sign in through a custom domain, the redirect URI will automatically use that custom domain. You need to update the redirect URI in your social provider's developer console.
166+
167+
**Steps:**
168+
169+
1. Navigate to <CloudLink to="/connectors/social">Console > Connectors > Social Connectors</CloudLink> and select your connector.
170+
2. Copy the redirect URI shown in the connector details. Logto lists all available redirect URIs for your configured custom domains.
171+
3. Add this redirect URI to your social provider's developer console (e.g., Google, GitHub, Facebook).
172+
173+
**For multiple custom domains:**
174+
175+
- Add all redirect URIs for each custom domain you've configured. This ensures social login works regardless of which domain users access.
176+
- The default Logto domain (`*.logto.app`) remains valid. Include it only if you want to support logins through the default domain as well.
177+
- For the GitHub connector, use GitHub Apps instead of OAuth apps configured in the GitHub dashboard, as GitHub Apps support multiple redirect URIs. OAuth apps only support a single redirect URI.
178+
179+
### Updating OIDC-based enterprise SSO connector redirect URIs \{#updating-oidc-enterprise-sso-redirect-uris}
180+
181+
[OIDC-based enterprise connectors](/connectors/enterprise-connectors) follow the same pattern as social connectors.
182+
183+
**Steps:**
184+
185+
1. Navigate to <CloudLink to="/enterprise-sso">Console > Enterprise SSO</CloudLink> and select your OIDC connector.
186+
2. Copy the redirect URIs from the connector details. Logto lists all available redirect URIs for your configured custom domains.
187+
3. Update the redirect URI in your identity provider (IdP) settings.
188+
189+
**For multiple custom domains:** Add all corresponding redirect URIs to your IdP to ensure enterprise SSO works across all domains.
190+
191+
### Updating SAML-based enterprise SSO connector ACS URLs \{#updating-saml-enterprise-sso-acs-urls}
192+
193+
[SAML-based enterprise connectors](/connectors/enterprise-connectors) use an Assertion Consumer Service (ACS) URL instead of a redirect URI.
194+
195+
**Steps:**
196+
197+
1. Navigate to <CloudLink to="/enterprise-sso">Console > Enterprise SSO</CloudLink> and select your SAML connector.
198+
2. In the "Configure in the IdP" section, use the domain dropdown to switch between your custom domains.
199+
3. Copy the ACS URL for the domain you want to support.
200+
4. Add these ACS URLs to your SAML identity provider configuration.
201+
202+
**Important:** The domain you select determines where users are redirected after SSO authentication. Configure this based on which domain your application expects to receive the SAML response.
203+
204+
### Passkey for MFA \{#passkey-for-mfa}
141205

142-
The social connector's callback URI will be updated automatically if your users are using the custom domain. You need to go to the social provider's developer console to update the callback URI.
206+
[Passkeys for multi-factor authentication (MFA)](/end-user-flows/mfa/webauthn) are bound to the domain where they were registered. Users must sign in through the same domain to use their Passkeys.
143207

144-
When your users are using the custom domain, the social connector's callback URI will be using the new domain. Therefore, you need to navigate to the social provider's developer console to manually update the callback URI.
208+
Current limitation: Logto does not yet support cross-domain Passkey verification. If a user registers a Passkey on `auth.us.example.com`, they must sign in through `auth.us.example.com` to use that Passkey for authentication. The Passkey registered on one domain cannot be used when signing in through a different custom domain.

β€Ždocs/logto-cloud/system-limit.mdxβ€Ž

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ At Logto, we've set generous limits across all plans and provide flexible pay-as
44

55
You may notice that some items on the pricing page are marked as _unlimited_ or as _continuous pay-as-you-go without a ceiling_. This means they can generally be used without restriction, but Logto reserves the right to adjust these actual limits over time to maintain fair use for all users. In other words, entity limits are strict caps that protect the platform's overall health. They are not part of pricing, though they may vary across different plan groups.
66

7-
If your use case is reasonable but reaches a system limit, feel free to contact us and share your feedback. This helps us better understand real-world usage patterns and adjust system limits to better support our loyal customers.
7+
If your use case is reasonable but reaches a system limit, feel free to [contact us](https://logto.io/contact) and share your feedback. This helps us better understand real-world usage patterns and adjust system limits to better support our loyal customers.
88

99
## Tenant-level rate limit protection \{#tenant-level-rate-limit-protection}
1010

1111
### Dev tenants \{#dev-tenants}
1212

13-
For Dev tenants, users can take advantage of Logto's free features and offerings. To prevent abuse and set clear expectations, we define certain system limits. These limits help us manage our platform sustainably while still providing free access for testing and development purposes.
13+
For [Development tenants](/logto-cloud/tenant-settings#development), users can take advantage of Logto's free features and offerings. To prevent abuse and set clear expectations, we define certain system limits. These limits help us manage our platform sustainably while still providing free access for testing and development purposes.
1414

15-
If you'd like to increase your quota, you can contact us for assistance. We also recommend upgrading from **Dev** to **Pro**, which removes the cap and gives you full access immediately.
15+
If you'd like to increase your quota, you can contact us for assistance. We also recommend [upgrading from **Dev** to **Pro**](/logto-cloud/billing-and-pricing#dev-tenant-upgrade-to-pro), which removes the cap and gives you full access immediately.
1616

1717
| **Feature** | **Entity limit** |
1818
| ------------------------------------- | ---------------- |
@@ -39,11 +39,12 @@ If you'd like to increase your quota, you can contact us for assistance. We also
3939
| **Developers and platform** | |
4040
| Webhooks | 10 |
4141
| Audit log retention | 14 days |
42+
| Custom domains | 2 |
4243
| Tenant members | 20 |
4344

44-
### Pro tenant \{#pro-tenant}
45+
### Pro tenants \{#pro-tenants}
4546

46-
For Pro tenants, entity limits define the upper ceiling for add-ons and other "unlimited" entities such as applications. The details of the Pro plan's system limits are listed below.
47+
For Pro plan tenants, entity limits define the upper ceiling for add-ons and other "unlimited" entities such as applications. The details of the Pro plan's system limits are listed below.
4748

4849
| **Feature** | **Entity limit** |
4950
| ------------------------------------- | ---------------- |
@@ -74,6 +75,6 @@ For Pro tenants, entity limits define the upper ceiling for add-ons and other "u
7475
| Custom domains | 10 |
7576
| Tenant members | 100 |
7677

77-
### Enterprise \{#enterprise}
78+
### Enterprise tenants \{#enterprise-tenants}
7879

79-
For Enterprise plans, limits and features are fully customizable and managed through a the contract. Please [contact us](https://logto.io/contact) for more details.
80+
For Enterprise plans, limits and features are fully customizable and managed through the contract. Please [contact us](https://logto.io/contact) for more details.
Binary file not shown.
95.2 KB
Loading
-136 KB
Binary file not shown.
68.5 KB
Loading

0 commit comments

Comments
Β (0)