> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Auth0の認証機能でカスタムドメインを設定する方法を学びます。

# 機能でカスタムドメインを使用するよう設定する

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****MASKED*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

Auth0 の機能で <Tooltip tip="カスタムドメイン: 専用名やブランド名を使用した第三者ドメイン。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=custom+domain">カスタムドメイン</Tooltip> を使用するように設定するには、利用している機能によっては追加の手順が必要になる場合があります。たとえば、ログインページでカスタムドメインを使用したり、API を呼び出したりする前に、変更が必要になることがあります。

Auth0 をすでにしばらく利用していて、後からカスタムドメインを有効にする場合は、以下の説明に従って既存のアプリを移行し、設定を更新する必要があります。これには、使用している VPN やファイアウォールの設定変更も含まれます。なお、`{yourDomain}` で作成された既存のセッションは、カスタムドメインの使用を開始すると無効になるため、ユーザーは再度ログインする必要があります。

<div id="prerequisites">
  ## 前提条件
</div>

カスタムドメインの設定と検証が完了している必要があります。

<div id="features">
  ## 機能
</div>

| 機能                                                                                | 参照するセクション                                                                    |
| --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| カスタマイズされたログインページを備えた [Universal Login](/docs/ja-jp/glossary?term=Universal+Login) | [Universal Login](#universal-login)                                          |
| アプリケーションに埋め込まれた Lock                                                              | [Embedded Lock](#embedded-lock)                                              |
| Auth0 SPA SDK、Auth0.js、またはその他の Auth0 SDK                                          | [Auth0 SPA SDK、Auth0.js、およびその他の SDK](#auth0-spa-sdk-auth0-js-and-other-sdks) |
| Auth0 のメールおよび電話通知でのカスタムドメイン                                                       | [メールおよび電話通知でカスタムドメインを使用する](#use-custom-domains-in-emails-and-phone)          |
| ソーシャル アイデンティティプロバイダー                                                              | [ソーシャル アイデンティティプロバイダーを設定する](#configure-social-identity-providers)            |
| カスタムドメインを使用する Google Workspace 接続                                                 | [Google Workspace 接続を設定する](#configure-g-suite-connections)                   |
| API 用のアクセストークンを発行する、またはアプリケーションから Auth0 API にアクセスする                               | [API](#apis)                                                                 |
| [SAML](/docs/ja-jp/glossary?term=SAML) アイデンティティプロバイダー                             | [SAML アイデンティティプロバイダーを設定する](#configure-saml-identity-providers)               |
| SAML アプリケーション                                                                     | [SAML アプリケーションを設定する](#configure-saml-applications)                           |
| Web Service Federation (WS-Fed) アプリケーション                                          | [WS-Fed アプリケーションを設定する](#configure-ws-fed-applications)                       |
| Azure AD 接続                                                                       | [Azure AD 接続を設定する](#configure-azure-ad-connections)                          |
| ADFS 接続                                                                           | [ADFS 接続を設定する](#configure-adfs-connections)                                  |
| Kerberos をサポートする AD/LAP 接続                                                        | [AD/LAP 接続を設定する](#configure-ad-ldap-connections)                             |

<div id="universal-login">
  ## Universal Login
</div>

[Auth0 Universal Login](/docs/ja-jp/authenticate/login/auth0-universal-login) を使用していて、ログインページをカスタマイズしている場合は、カスタムドメインを使用するようにコードを更新する必要があります。カスタマイズしていない**デフォルト**のログインページを使用している場合は、変更は不要です。詳しくは、Auth0 の<Tooltip tip="Universal Login: アプリケーションはユーザーの本人確認のために、Auth0 の Authorization Server でホストされている Universal Login にリダイレクトされます。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Universal+Login">Universal Login</Tooltip>をご覧ください。

[Lock for Web](/docs/ja-jp/libraries/lock) を使用している場合は、次のサンプルスクリプトのように、`configurationBaseUrl` と `overrides` オプションを設定する必要があります。

```javascript lines theme={null}
var lock = new Auth0Lock(config.clientID, config.auth0Domain, {
  //簡略化のためコードを省略
  configurationBaseUrl: config.clientConfigurationBaseUrl,
  overrides: {
  	__tenant: config.auth0Tenant,
  	__token_issuer: config.authorizationServer.issuer
  },
  //簡略化のためコードを省略
});
```

Universal Loginページで [Auth0.js](/docs/ja-jp/libraries/auth0js) を使用する場合は、`overrides` オプションを設定する必要があります。

```javascript lines theme={null}
var webAuth = new auth0.WebAuth({
  clientID: config.clientID,
  domain: config.auth0Domain,
  //簡略化のためコードを省略
  overrides: {
  	__tenant: config.auth0Tenant,
  	__token_issuer: config.authorizationServer.issuer
  },
  //簡略化のためコードを省略
});
```

ほとんどの場合、Auth0.js と Lock ライブラリは、ドメインからテナント名 (`/usernamepassword/login` に必要) と issuer (`id_token` の検証に必要) を取得します。ただし、プロキシを使用している Private Cloud のお客様や、ドメイン名がテナント名/issuer と異なるカスタムドメインを使用しているお客様は、`__tenant` と `__token_issuer` を使用して固有の値を指定できます。

<div id="embedded-lock">
  ## 埋め込み Lock
</div>

アプリケーションに [Lock for Web](/docs/ja-jp/libraries/lock) を埋め込んで使用している場合は、Lock を初期化する際にカスタムドメインを使うよう、コードを更新する必要があります。さらに、`configurationBaseUrl` も適切な CDN URL に設定する必要があります。

export const codeExample1 = `var lock = new Auth0Lock('{yourClientId}', '{yourCustomDomain}', {
  //簡潔にするため省略
  configurationBaseUrl: 'https://cdn.us.auth0.com'
  //簡潔にするため省略
});`;

<AuthCodeBlock children={codeExample1} language="javascript" />

CDN の URL はリージョンによって異なります。`https://cdn.[us|eu|au|jp].auth0.com` を使用してください (`us` は米国、`eu` はヨーロッパ、`au` はオーストラリア、`jp` は日本です) 。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  CDN の URL はリージョンによって異なります。2020 年 6 月 11 日以前に作成されたテナントでは、リージョンが米国の場合は `https://cdn.auth0.com` を使用し、ヨーロッパ、オーストラリア、日本の場合はそれぞれ `eu`、`au`、`jp` を追加してください。テナントが 2020 年 6 月 11 日より後に作成されている場合、リージョンが米国であれば `https://cdn.us.auth0.com` を使用してください。
</Callout>

<div id="auth0-spa-sdk-auth0js-and-other-sdks">
  ## Auth0 SPA SDK、Auth0.js、およびその他のSDK
</div>

[Auth0 SPA SDK](/docs/ja-jp/libraries/auth0-single-page-app-sdk)、[Auth0.js](/docs/ja-jp/libraries/auth0js)、または[その他のSDK](/docs/ja-jp/troubleshoot/customer-support/product-support-matrix#auth0-sdks)を使用する場合は、カスタムドメインを使ってSDKを初期化する必要があります。たとえば、Auth0.js SDKを使用する場合は、次の設定が必要です。

export const codeExample2 = `webAuth = new auth0.WebAuth({
  domain: '{yourCustomDomain}',
  clientID: '{yourClientId}'
});`;

<AuthCodeBlock children={codeExample2} language="js" />

Auth0 SPA SDK の場合は次のとおりです:

export const codeExample3 = `const auth0 = await createAuth0Client({
  domain: '{yourCustomDomain}',
  client_id: '{yourClientId}'
});`;

<AuthCodeBlock children={codeExample3} language="javascript" />

カスタムドメインを使用しており、[Auth0.js で Management API の操作を行う](/docs/ja-jp/libraries/auth0js#user-management)予定もある場合は、以下の API セクションを参照してください。

<div id="use-custom-domains-in-emails-and-phone-notifications">
  ## メールと電話通知でカスタムドメインを使用する
</div>

Auth0 のメールまたは電話通知でカスタムドメインを使用するには、この機能を有効にする必要があります。

1. [Auth0 Dashboard > Branding > Custom Domains](https://manage.auth0.com/#/branding/custom_domains) に移動します。
2. **Use Custom Domain in Emails** トグルを有効にします。

<div id="configure-social-identity-providers">
  ## Social アイデンティティプロバイダーを設定する
</div>

カスタムドメインを Social <Tooltip tip="アイデンティティプロバイダー（IdP）: デジタルアイデンティティを保存および管理するサービス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=identity+providers">アイデンティティプロバイダー</Tooltip> (IdP) で使用する場合は、IdP の許可済みリダイレクト URI の一覧にカスタムドメイン (`https://login.northwind.com/login/callback` など) が含まれるよう、更新する必要があります。

カスタムドメインでは、[Auth0 developer keys](/docs/ja-jp/authenticate/identity-providers/social-identity-providers/devkeys) は使用できません。

<div id="configure-google-workspace-connections">
  ## Google Workspace 接続を設定する
</div>

Google Workspace 接続でカスタムドメインを使用する場合は、<Tooltip tip="OAuth 2.0: 認可のプロトコルとワークフローを定義する認可フレームワーク。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=OAuth">OAuth</Tooltip> クライアント設定の Authorized Redirect URI を更新する必要があります。Google Cloud Console で **Credentials** に移動し、一覧から OAuth クライアントを選択すると、アプリの <Tooltip tip="Client ID: Auth0 から登録済みリソースに付与される識別値。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Client+ID">Client ID</Tooltip>、シークレット、その他の項目を含む設定ページが表示されます。**Authorized redirect URIs** フィールドに、カスタムドメインを含む `https://<YOUR-CUSTOM-DOMAIN>/login/callback` 形式の URL (例: `https://login.northwind.com/login/callback`) を追加します。

<div id="apis">
  ## APIs
</div>

API 識別子 (つまり `audience`) は変更されません。これは API ごとに一定の値であり、慣例的に URI が使われるものの、トークンの取得に使用するドメインとはまったく無関係です。

Auth0 は、トークンの取得に使用したドメインを `iss` クレームに持つトークンを発行します。

<div id="auth0-apis">
  ##### Auth0 API
</div>

`audience` を指定する際は、カスタムドメインではなく、引き続き既定のテナントドメイン名 (`https://{yourDomain}/userinfo` や `https://{yourDomain}/api/v2/` など) を使用してください。既定のテナントドメインを使用するのは、この箇所だけです。

すべてのリクエスト (つまり、トークンの取得と実際の API 呼び出し) では、同じドメインを使用する必要があります。カスタムドメイン経由で取得したトークンは、同じカスタムドメインの Auth0 API で使用しなければなりません。

カスタムドメインを使用した認証フローで、<Tooltip tip="Access Token: API へのアクセスに使用される、不透明な文字列または JWT 形式の認可資格情報。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Access+Tokens">アクセストークン</Tooltip>をリクエストして<Tooltip tip="Management API: 顧客が管理タスクを実行できるようにする製品。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip>にアクセスする場合は、Management API のエンドポイントもカスタムドメインで呼び出す必要があります。

```json lines theme={null}
POST https://mycustomdomain.com/oauth/token
... // その他のパラメータ 
...
audience:https://defaulttenant.eu.auth0.com/api/v2/
```

アクセストークンのリクエストは次のようになります

```json lines theme={null}
GET https://mycustomdomain.com/api/v2/clients

Headers:
Authorization: Bearer <access_token>
```

<div id="custom-apis">
  ##### カスタム API
</div>

Auth0 をカスタムドメインとともに使用して API 向けのアクセストークンを発行する場合は、<Tooltip tip="JSON Web Token (JWT): 2者間でクレームを安全に表現するために使用される標準的な ID トークン形式（多くの場合、アクセストークンの形式としても使用されます）。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=JWT">JWT</Tooltip> の issuer(s) がカスタムドメインに対応していることを検証する必要があります。たとえば、[express-jwt](https://github.com/auth0/express-jwt) ミドルウェアを使用している場合は、次の変更を行う必要があります。

```js lines theme={null}
app.use(jwt({
  issuer: 'https://<YOUR-CUSTOM-DOMAIN>/',
  //簡略化のためコードを省略
}));
```

<div id="configure-saml-identity-providers">
  ## SAMLアイデンティティプロバイダーを設定する
</div>

<Tooltip tip="Security Assertion Markup Language (SAML): パスワードなしで 2 者間の認証情報のやり取りを可能にする標準化されたプロトコル。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=SAML">SAML</Tooltip>アイデンティティプロバイダー (IdP) でカスタムドメインを使用するには、アイデンティティプロバイダー側で **Assertion Consumer Service (ACS) URL** を更新する必要があります。IdP がサポートしている機能に応じて、次の 2 つの方法のいずれかで対応できます。

1. Auth0 の `https://<YOUR-CUSTOM-DOMAIN>/samlp/metadata?connection=<YOUR-CONNECTION-NAME>` からサービスプロバイダーのメタデータを取得できます。これには、更新後の ACS URL が含まれます。次に、この値を IdP の設定で手動更新する必要があります。IdP 側でのこの変更は、アプリケーションでカスタムドメインの使用を開始するタイミングと同時に行う必要があります。設定対象の IdP が複数ある場合は、これが問題になることがあります。
2. IdP が対応している場合は、署名付きリクエストを使用してこの要件を満たすことができます。

* 署名証明書を `https://<TENANT>.auth0.com/pem` からダウンロードします。なお、`https://<YOUR-CUSTOM-DOMAIN>.com/pem` からも同じ証明書が返されます
* 証明書を IdP に渡し、アップロードしてもらいます。これにより、Auth0 が IdP に送信する `AuthnRequest` メッセージの署名を IdP で検証できるようになります
* IdP は証明書をインポートし、必要に応じて署名検証を有効にします (具体的な手順は IdP によって異なります)
* Dashboard の **Connections > Enterprise > SAML > CONNECTION** で **Sign Request** トグルをオンにします。これにより、Auth0 は IdP に送信する SAML `AuthnRequest` メッセージに署名するようになります。

これが完了し、アプリケーションで認証リクエストを開始する際にカスタムドメインを使用し始めると、IdP は署名付きリクエスト内でそのカスタムドメインを受け取ります。アプリケーションからの署名付きリクエストは信頼されるため、IdP は通常、ACS URL として設定されている値を自動的に上書きし、署名付きリクエストで送信された値に置き換えます。ただし、署名付きリクエスト内の ACS URL を受け付け**ない** IdP もあるため、これに対応しているかどうかを事前に必ず確認してください。

これがサポートされていれば、1 つまたは複数の IdP の設定を同時に変更する必要がなくなり、署名付きリクエストを受け入れられるよう事前に準備できます。また、IdP の設定で静的に構成されている ACS URL は後日変更することもできます。

SAMLアイデンティティプロバイダーがカスタムドメインを使用するよう設定されている場合、Dashboard の **Try** ボタンで接続をテストしても**機能せず**、Auth0 からメタデータをダウンロードするための既定のリンクには、カスタムドメインではなく常に既定のドメインが表示される点に注意してください。

IdP 開始の認証フローがある場合は、カスタムドメインを使用するために IdP とアプリケーションを同時に更新する必要があります。

<div id="configure-saml-applications">
  ## SAML アプリケーションを設定する
</div>

SAML アプリケーションでカスタムドメインを使用する場合 (Auth0 が IdP の場合) 、Auth0 の新しいアイデンティティプロバイダー メタデータを使って、サービスプロバイダーを更新する必要があります。カスタムドメインが反映された更新済みメタデータは、`https://<YOUR-CUSTOM-DOMAIN>/samlp/metadata/<YOUR-CLIENT-ID>` から取得できます。カスタムドメインを使用すると、Auth0 が返すアサーションの issuer entity ID も変わる点に注意してください (`urn:northwind.auth0.com` のようなものから、`urn:login.northwind.com` のようにカスタムドメインを含むものに変わります) 。

IdP 主導の認証フローがある場合は、そのフローを呼び出すための URL も、カスタムドメインを反映するように更新する必要があります。`https://<TENANT>.auth0.com/samlp/<YOUR-CLIENT-ID>` の代わりに、`https://<YOUR-CUSTOM-DOMAIN>/samlp/<YOUR-CLIENT-ID>` を使用してください。

<div id="configure-ws-fed-applications">
  ## WS-Fed アプリケーションを設定する
</div>

Auth0 を IdP として使用する <Tooltip tip="Web Service Federation (WS-Fed): ドメインをまたいでユーザーIDを管理するためのプロトコル。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=WS-Fed">WS-Fed</Tooltip> アプリケーションでカスタムドメインを利用する場合は、Auth0 の新しいアイデンティティプロバイダー メタデータを使ってサービスプロバイダーを更新する必要があります。カスタムドメインが反映されたメタデータは、`https://<YOUR-CUSTOM-DOMAIN>/wsfed/FederationMetadata/2007-06/FederationMetadata.xml` から取得できます。

<div id="configure-azure-ad-connections">
  ## Azure AD 接続を設定する
</div>

Azure AD 接続でカスタムドメインを使用する場合は、Azure AD の設定で Allowed Reply URL を更新する必要があります。Azure Active Directory で **Apps registrations** に移動し、対象のアプリを選択します。次に **Settings -> Reply URLs** をクリックし、`https://<YOUR-CUSTOM-DOMAIN>/login/callback` の形式で、カスタムドメインを含む URL (`https://login.northwind.com/login/callback` など) を追加します。

<div id="configure-adfs-connections">
  ## ADFS接続を設定する
</div>

ADFS接続でカスタムドメインを使用する場合は、ADFS設定のエンドポイントを更新する必要があります。コールバックURLでカスタムドメインを使用するには、`https://<YOUR-CUSTOM-DOMAIN>/login/callback` の形式 (例: `https://login.northwind.com/login/callback`) になるよう更新してください。

<div id="configure-adldap-connections">
  ## AD/LDAP 接続を設定する
</div>

Kerberos サポートが不要な場合、AD/LDAP 接続に追加の設定は必要ありません。

Kerberos サポート付きで AD/LDAP 接続を使用するには、カスタムドメインで動作するように Ticket エンドポイントを更新する必要があります。[Auth0 AD/LDAP connector documentation](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/active-directory-ldap/ad-ldap-connector/ad-ldap-connector-to-auth0#point-an-ad-ldap-connector-to-a-new-connection) に記載されているとおり、`config.json` ファイルを修正し、`PROVISIONING_TICKET` の値を `https://<YOUR-CUSTOM-DOMAIN>/p/ad/jUG0dN0R` の形式でカスタムドメインを使うように変更する必要があります。

この変更を保存したら、変更を反映するために AD/LDAP Connector サービスを再起動する必要があります。

<div id="learn-more">
  ## 詳しく見る
</div>

* [Auth0 管理証明書を使用してカスタムドメインを設定する](/docs/ja-jp/customize/custom-domains/auth0-managed-certificates)
* [自己管理証明書を使用してカスタムドメインを設定する](/docs/ja-jp/customize/custom-domains/self-managed-certificates)
