カスタムドメイン
サービス公開後にドメインを変更すると、アプリケーションコードや統合が古いドメインを参照し続けるため、トラブルの原因となる場合があります。スムーズな移行のために、本番テナント作成時にカスタムドメインを設定することを推奨します。
Logto テナントには、デフォルトで無料のドメイン {{tenant-id}}.app.logto が付与されます。しかし、auth.example.com のようなカスタムドメインを利用することで、ユーザー体験やブランド認知を向上させることができます。
カスタムドメインは、以下の用途で使用されます:
- サインインおよび登録ページ の URL
- ソーシャルコネクター や エンタープライズ SSO コネクター のコールバック URI
- パスキー および パスキーサインイン 関連の URL(パスキー連携後にドメインを変更すると、MFA やパスキーサインインが利用できなくなる場合があります)
- アプリケーションと Logto を統合するための SDK エンドポイント
複数カスタムドメインのサポート
Logto では、1 テナントにつき 複数のカスタムドメイン を設定できるようになりました。これにより、複数のブランドドメインからサインインページへアクセス可能です。
プランごとの制限:
- 開発テナント:テスト目的で最大 2 つまで無料で追加可能
- フリープラン:1 つのカスタムドメインを無料で追加可能
- プロプラン:1 つのカスタムドメインが含まれ、アドオンで最大 10 個まで追加可能
- エンタープライズプラン:10 個以上や特別な要件の場合は お問い合わせ ください
詳細は Logto 料金表 をご覧ください。
複数カスタムドメインの活用例:
- 地域、ロケール、アプリケーション、組織、トップレベルドメインごとに異なるドメインを利用
- サインイン前後で一貫したブランド体験を維持し、信頼性を向上
- カスタム UI により、地域やブランドごとに異なる認証 (Authentication) 体験を提供
Console でカスタムドメインを設定する
Logto Console で新しいカスタムドメインを追加する手順:
-
Console > 設定 > ドメイン に移動します。
-
「カスタムドメインを追加」セクションで、サブドメイン(例:
auth.example.com、auth.us.example.com)を入力し、「ドメインを追加」をクリックします。
-
テーブル内の CNAME 値
domains.logto.appをコピーし、ドメインの DNS プロバイダーでレコードを追加します。
-
認証および SSL 処理が完了するまで待ちます。
- レコードが追加されるまで 10 秒ごとに自動で検証します。入力したドメイン名や DNS レコードが正しいことを確認してください。
- 検証は通常数分で完了しますが、DNS プロバイダーによっては最大 24 時間かかる場合があります。処理中は他の画面に移動しても問題ありません。
複数のカスタムドメインを追加する場合は、上記の手順をドメインごとに繰り返してください。
トラブルシューティング
SSL 証明書の問題
カスタムドメイン設定時に SSL 証明書の問題が発生した場合、DNS 設定の CAA レコードが原因の可能性があります。CAA レコードは、どの認証局 (CA) が証明書を発行できるかを指定します。CAA レコードを利用している場合は、「letsencrypt.org」と「pki.goog」の両方を許可する必要があります。
CAA レコードに関連する SSL 証明書の問題の解決方法は、Cloudflare のドキュメント をご参照ください。
「The hostname is associated with a held zone」エラー
カスタムドメイン追加時に「The hostname is associated with a held zone, please contact the owner to have the hold removed」というエラーが表示される場合、そのドメインがすでに Cloudflare のゾーンにあり、「Zone Hold」ステータスになっています。詳細は Cloudflare のドキュメント をご覧ください。
この問題を解決するには、ゾーンホールドを解除する必要があります。解除方法は上記リンクをご参照ください。
Cloudflare 管理ドメインでの「Connection timed out (Error code 522)」
ドメインが Cloudflare で管理されている場合、CNAME レコードの Cloudflare プロキシを無効にしてください。
カスタムドメイン設定後の「Redirect URI does not match」エラー
カスタムドメイン追加後に「redirect URI does not match」エラーが発生した場合、SDK 設定のエンドポイントをカスタムドメインに更新する必要があります。
「プライマリドメイン」について:
Logto には「プライマリドメイン」設定はありません。カスタムドメイン追加後も、カスタムドメインとデフォルトの {tenant-id}.logto.app ドメインの両方が有効です。SDK の endpoint パラメーターで指定したドメインが認証 (Authentication) フローで使用されます。
解決方法:
SDK 初期化時の endpoint パラメーターをカスタムドメインに更新してください:
const client = new LogtoClient({
endpoint: 'https://auth.example.com', // カスタムドメインを使用
appId: 'your-app-id',
// ... その他のオプション
});
また、Console → アプリケーション で登録済みのリダイレクト URI が使用するドメインと一致しているか確認してください。
注意: Logto はカスタムドメイン用の SSL 証明書を自動で発行・管理します。独自に証明書を設定する必要はありません。
カスタムドメインの利用
設定が完了すると、カスタムドメイン名とデフォルトの Logto ドメイン名の両方がテナントで利用可能になります。ただし、カスタムドメインを有効化するには追加の設定が必要です。
本記事では、カスタムドメインを auth.example.com と仮定します。
アプリケーションの SDK エンドポイントを更新する
Logto SDK の初期化コードで、エンドポイントのドメイン名を変更してください。
const client = new LogtoClient({
...,// その他のオプション
endpoint: 'https://auth.example.com',
});
Console > アプリケーション のアプリ詳細ページで「エンドポイント & 資格情報」セクションまでスクロールし、ドメインのドロップダウンを切り替えて、アプリ設定用のエンドポイントを確認・コピーできます。
他のアプリケーションの認証 (Authentication) エンドポイントを変更する
Logto SDK を利用していないアプリケーションの場合は、認証 (Authentication) エンドポイントを更新する必要があります。
認証 (Authentication) エンドポイントは、次の well-known URL で確認できます:
https://auth.example.com/oidc/.well-known/openid-configuration
ソーシャルコネクターのリダイレクト URI を更新する
ソーシャルコネクター は OIDC / OAuth プロトコルを利用します。カスタムドメイン経由でサインインする場合、リダイレクト URI も自動的にカスタムドメインになります。ソーシャルプロバイダーの開発者コンソールでリダイレクト URI を更新してください。
手順:
- Console > コネクター > ソーシャルコネクター でコネクターを選択します。
- コネクター詳細に表示されているリダイレクト URI をコピーします。Logto では設定済みカスタムドメインごとにすべてのリダイレクト URI を表示します。
- このリダイレクト URI をソーシャルプロバイダーの開発者コンソール(例:Google、GitHub、Facebook)に追加します。
複数カスタムドメインの場合:
- 設定したすべてのカスタムドメインのリダイレクト URI を追加してください。これにより、どのドメインからでもソーシャルログインが利用可能になります。
- デフォルトの Logto ドメイン(
*.logto.app)も有効です。デフォルトドメインでのログインも許可したい場合のみ追加してください。 - GitHub コネクターの場合、GitHub ダッシュボードで OAuth アプリではなく GitHub Apps を利用してください。GitHub Apps は複数のリダイレクト URI をサポートしますが、OAuth アプリは 1 つのみです。
OIDC ベースのエンタープライズ SSO コネクターのリダイレクト URI を更新する
OIDC ベースのエンタープライズコネクター もソーシャルコネクターと同様のパターンです。
手順:
- Console > エンタープライズ SSO で OIDC コネクターを選択します。
- コネクター詳細からリダイレクト URI をコピーします。Logto では設定済みカスタムドメインごとにすべてのリダイレクト URI を表示します。
- アイデンティティプロバイダー (IdP) の設定でリダイレクト URI を更新します。
複数カスタムドメインの場合: すべてのカスタムドメインのリダイレクト URI を IdP に追加してください。これにより、すべてのドメインでエンタープライズ SSO が利用可能になります。
SAML ベースのエンタープライズ SSO コネクターの ACS URL を更新する
SAML ベースのエンタープライズコネクター では、リダイレクト URI の代わりに Assertion Consumer Service (ACS) URL を使用します。
手順:
- Console > エンタープライズ SSO で SAML コネクターを選択します。
- 「IdP で設定」セクションで、ドメインのドロップダウンを切り替えてカスタムドメインを選択します。
- 対応するドメインの ACS URL をコピーします。
- SAML アイデンティティプロバイダーの設定にこれらの ACS URL を追加します。
重要: 選択したドメインによって、SSO 認証 (Authentication) 後のリダイレクト先が決まります。アプリケーションが SAML レスポンスを受け取るドメインに合わせて設定してください。
MFA およびサインイン用パスキー
多要素認証 (MFA) 用パスキー および パスキーサインイン は、登録時のドメインに紐づきます。ユーザーは、パスキーを利用する際、登録したのと同じドメインでサインインする必要があります。
現在の制限:Logto はクロスドメインでのパスキー認証 (Authentication) をまだサポートしていません。たとえば、auth.us.example.com でパスキーを登録した場合、そのパスキーは auth.us.example.com でのみ MFA やパスキーサインインに利用できます。別のカスタムドメインでサインインする際には、そのパスキーは利用できません。