カスタムドメイン
サービス公開後にドメインを変更すると、アプリケーションコードや連携先が古いドメインを参照し続けるため、問題が発生する可能性があります。スムーズな移行のため、本番テナント作成時にカスタムドメインを設定することを推奨します。
Logto テナントには、デフォルトで無料のドメイン {{tenant-id}}.app.logto が付与されます。しかし、auth.example.com のようなカスタムドメインを利用することで、ユーザー体験やブランド認知を向上させることができます。
カスタムドメインは、以下の用途で使用されます:
- サインイン・登録ページ の URL
- ソーシャルコネクター や エンタープライズ SSO コネクター のコールバック URI
- パスキー 連携用 URL(パスキー連携後にドメインを変更すると認証できなくなる場合があります)
- アプリケーションと 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 レコードを利用している場合は、Logto で SSL 証明書を発行するために "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 での解除方法は上記リンクを参照してください。
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 をコピーします。
- これらの ACS URL を SAML アイデンティティプロバイダーの設定に追加します。
重要: 選択したドメインによって、SSO 認証 (Authentication) 後のリダイレクト先が決まります。アプリケーションが SAML レスポンスを受け取るドメインに合わせて設定してください。
MFA 用パスキー
多要素認証 (MFA) 用パスキー は、登録したドメインに紐付けられます。ユーザーは、パスキーを利用する際、登録時と同じドメインでサインインする必要があります。
現在の制限:Logto はドメインをまたいだパスキー認証 (Authentication) には未対応です。たとえば auth.us.example.com でパスキーを登録した場合、そのパスキーは auth.us.example.com でのみ利用できます。他のカスタムドメインでサインインする際には利用できません。