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

# データベース接続向けのパスキー認証

> 従来の認証方法に比べて多くの利点を持つ、フィッシング耐性のあるWebAuthnベースのデバイス認証情報であるパスキーについて、Auth0での実装を学びましょう。

export const ReleaseStageNotice = ({feature, stage, plans, contact, terms}) => {
  const stageTextMap = {
    "beta": "Beta",
    "ea": "早期アクセス"
  };
  const stageText = stageTextMap[stage] || "製品リリース段階";
  const prsLink = "/docs/troubleshoot/product-lifecycle/product-release-stages";
  const linkify = (text, url) => {
    return <a href={url} target="_blank" rel="noreferrer" class="link">{text}</a>;
  };
  const includeDetails = (plans, contact, terms) => {
    const hasDetails = terms || plans || contact;
    if (!hasDetails) return null;
    return <span data-as="p">
            {plans && <>この機能は{linkify(`${plans}プラン`, "https://auth0.com/pricing")}でご利用いただけます。 </>}
            {contact && "参加をご希望の場合は、" + contact + "までお問い合わせください。 "}
            {terms && <>この機能を使用することにより、Oktaの該当する無料トライアル規約および{linkify("Master Subscription Agreement", "https://www.okta.com/legal")}に同意したものとみなされます。</>}
        </span>;
  };
  return <Warning>
            <span data-as="p">
                <strong>{feature}機能は現在、{linkify(stageText, prsLink)}です。</strong>
            </span>

            {includeDetails(plans, contact, terms)}
        </Warning>;
};

パスキーは、[FIDO2 (WebAuthn および CTAP) 標準](https://en.wikipedia.org/wiki/WebAuthn)に基づく、安全なパスワードレス認証方法です。従来の識別子/パスワードによる認証と比べて、いくつかの利点があります。

* **パスキーを使うと、ユーザーは生体認証やデバイスに紐づいた資格情報** (指紋、PIN、パターンなど) で認証できるため、ログインが速くなり、パスワードを覚えておく必要もありません。

* **パスキーはデバイス間で資格情報を同期できるため**、ユーザーは新しいデバイスごとに再登録する必要がありません。

* **パスキーはフィッシングに強い**です。公開鍵暗号方式を使用するため共有シークレットが存在せず、さらにユーザーのデバイスがアカウントごとに一意のキーを生成するからです。

* **パスキーは、より確実な復旧をサポートします**。保存された資格情報は、利用を開始した元のデバイスを失っても引き続き使えるためです。

* **パスキーは資格情報を特定のドメインに結び付けるため**、ユーザーは 1 つのパスキーでドメイン全体にわたって認証できます。

パスキーの詳細については、[FIDO Alliance のパスキーの概要](https://fidoalliance.org/passkeys)をお読みください。

<div id="about-passkeys-on-auth0">
  ## Auth0 のパスキーについて
</div>

Auth0 では、アプリケーションの種類に応じて、データベース接続の認証方法としてパスキーを次の 3 つの方法で実装できます。

* Web アプリケーション向け Universal Login パスキー
* [埋め込みログインのネイティブアプリケーション](/docs/ja-jp/authenticate/passwordless/implement-login/embedded-login/native)
* [Android および iOS アプリケーション向け Native パスキー](/docs/ja-jp/authenticate/database-connections/passkeys/native-passkeys-for-mobile-applications)

Auth0 では、ユーザー 1 人あたり最大 20 個のパスキーまで使用できます。

データベース接続でパスキーを有効にすると、サインアップ時とログイン時にユーザーがパスキーを利用できるようになります。

<AccordionGroup>
  <Accordion title="サインアップフローのプレビュー">
    <Steps>
      <Step title="サインアップ UI で、ユーザーにメールアドレスの入力を求めます。">
        <Frame>
          <img src="https://mintcdn.com/docs-dev-feat-init-gt-translations/ZC0XT2ZcfW-tPJd_/docs/images/cdy7uua7fh8z/5SlpzscSseNOuJlvhOgBqr/318d95254ef48197a32e58c92be00d2b/signup-passkey_default.png?fit=max&auto=format&n=ZC0XT2ZcfW-tPJd_&q=85&s=80ba1389ae8f8d19c1e4ede36287d8ca" alt="" width="402" height="422" data-path="docs/images/cdy7uua7fh8z/5SlpzscSseNOuJlvhOgBqr/318d95254ef48197a32e58c92be00d2b/signup-passkey_default.png" />
        </Frame>

        ユーザーはメールアドレスを入力し、**続行** を選択します。
      </Step>

      <Step title="サインアップ UI で、ユーザーにパスキーの使用を求めます。">
        <Frame>
          <img src="https://mintcdn.com/docs-dev-feat-init-gt-translations/ZmqODkbyV9Q5Sot2/docs/images/cdy7uua7fh8z/7vZK4q4iUtxyld1Os6og4s/c6df982f684824ef9f11a7ef9a477700/Passkeys_-_UL_-_English.png?fit=max&auto=format&n=ZmqODkbyV9Q5Sot2&q=85&s=7090de742a9d801bdf17cf5d394491bd" alt="" width="494" height="769" data-path="docs/images/cdy7uua7fh8z/7vZK4q4iUtxyld1Os6og4s/c6df982f684824ef9f11a7ef9a477700/Passkeys_-_UL_-_English.png" />
        </Frame>

        ユーザーは **パスキーを作成** を選択します。
      </Step>

      <Step title="ユーザーの資格情報マネージャーが、パスキーの作成を求めます。">
        <Frame>
          <img src="https://mintcdn.com/docs-dev-feat-init-gt-translations/ZmqODkbyV9Q5Sot2/docs/images/cdy7uua7fh8z/IsWmSXNHc2fvRuEgn5DpK/52b2464e21c8dc68bb06869126043ba9/Signup_-_Passkey_-_Browser_OS_Create_a_Passkey.png?fit=max&auto=format&n=ZmqODkbyV9Q5Sot2&q=85&s=db8330dd645ac0b1c2f0b9ff032712a7" alt="" width="400" height="300" data-path="docs/images/cdy7uua7fh8z/IsWmSXNHc2fvRuEgn5DpK/52b2464e21c8dc68bb06869126043ba9/Signup_-_Passkey_-_Browser_OS_Create_a_Passkey.png" />
        </Frame>

        <Columns cols={2}>
          <div>
            ユーザーが **続行** を選択すると、デバイスの資格情報で認証するよう求められます。

            <Frame caption="デバイスの資格情報による認証プロンプトの例">
              <img src="https://mintcdn.com/docs-dev-feat-init-gt-translations/ga3rC1_4s-OF6Vr-/docs/images/cdy7uua7fh8z/6OJlPQrWBhgO8izXXoKbOw/a3c1af9a94aaeffc50793e3e9b88db8f/Signup_-_Passkeys_-_Chrome_Prompt_for_Device_Credentials.png?fit=max&auto=format&n=ga3rC1_4s-OF6Vr-&q=85&s=cd0a04b866fc70276c038788df744fab" alt="" width="400" height="469" data-path="docs/images/cdy7uua7fh8z/6OJlPQrWBhgO8izXXoKbOw/a3c1af9a94aaeffc50793e3e9b88db8f/Signup_-_Passkeys_-_Chrome_Prompt_for_Device_Credentials.png" />
            </Frame>
          </div>

          <div>
            ユーザーが **別の方法を試す** を選択すると、パスキーを作成したいデバイスで QR コードをスキャンするよう求められます。

            <Frame caption="QR コードの例">
              <img src="https://mintcdn.com/docs-dev-feat-init-gt-translations/AcBWN86l7cA24wcQ/docs/images/cdy7uua7fh8z/2yXrkVbYLxxp6MXnrZLqVN/5f67ddf9b8003729a11604a3af3e553d/passkey-browser-cross-device.png?fit=max&auto=format&n=AcBWN86l7cA24wcQ&q=85&s=06baabe37927e8e4f3400b878aa4d423" alt="" width="402" height="407" data-path="docs/images/cdy7uua7fh8z/2yXrkVbYLxxp6MXnrZLqVN/5f67ddf9b8003729a11604a3af3e553d/passkey-browser-cross-device.png" />
            </Frame>
          </div>
        </Columns>
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="ログインフローのプレビュー">
    <Steps>
      <Step title="ログイン UI で、ユーザーにメールアドレスの入力やパスキーの使用を求めます。">
        データベース接続のパスキーポリシーでは、ログイン UI で自動入力を許可するか、パスキーボタンを表示するか、またはその両方を有効にするかを選択できます。

        <Frame>
          <img src="https://mintcdn.com/docs-dev-feat-init-gt-translations/k7ye6-pv0VL5gE4A/docs/images/cdy7uua7fh8z/3qqI3Uo1z1yQhvb7boQ0cx/820f38ffdec77388331ef238ff80de88/login-passkey_default.png?fit=max&auto=format&n=k7ye6-pv0VL5gE4A&q=85&s=01bdfbb65468c4968e9fc243dc225684" alt="" width="402" height="570" data-path="docs/images/cdy7uua7fh8z/3qqI3Uo1z1yQhvb7boQ0cx/820f38ffdec77388331ef238ff80de88/login-passkey_default.png" />
        </Frame>

        ユーザーがメールアドレスを入力すると、自動入力によって、パスワードなどのほかの資格情報とあわせて保存済みのパスキーが候補として表示されます。

        ユーザーが **パスキーで続行** ボタンを選択すると、資格情報マネージャーで使用するパスキーを選ぶよう求められます。

        <Frame>
          <img src="https://mintcdn.com/docs-dev-feat-init-gt-translations/4n7yQNDlmu-4xlCI/docs/images/cdy7uua7fh8z/tC4UZmYFgo7Zjt9kviP9j/690b87af58068c18a4609c8e9431e5b7/Login_-_Passkeys_-_Choose_a_passkey.png?fit=max&auto=format&n=4n7yQNDlmu-4xlCI&q=85&s=4099dd71fc560cf09e4642bee584b64c" alt="" width="400" height="359" data-path="docs/images/cdy7uua7fh8z/tC4UZmYFgo7Zjt9kviP9j/690b87af58068c18a4609c8e9431e5b7/Login_-_Passkeys_-_Choose_a_passkey.png" />
        </Frame>
      </Step>

      <Step title="ユーザーの資格情報マネージャーが、デバイスの資格情報による認証を求めます。">
        <Frame caption="デバイスの資格情報による認証プロンプトの例">
          <img src="https://mintcdn.com/docs-dev-feat-init-gt-translations/ga3rC1_4s-OF6Vr-/docs/images/cdy7uua7fh8z/6OJlPQrWBhgO8izXXoKbOw/a3c1af9a94aaeffc50793e3e9b88db8f/Signup_-_Passkeys_-_Chrome_Prompt_for_Device_Credentials.png?fit=max&auto=format&n=ga3rC1_4s-OF6Vr-&q=85&s=cd0a04b866fc70276c038788df744fab" alt="" width="400" height="469" data-path="docs/images/cdy7uua7fh8z/6OJlPQrWBhgO8izXXoKbOw/a3c1af9a94aaeffc50793e3e9b88db8f/Signup_-_Passkeys_-_Chrome_Prompt_for_Device_Credentials.png" />
        </Frame>
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

パスキーは、ユーザーの既存の資格情報を置き換えたり無効にしたりするものではありません。ユーザーがパスキーを作成すると、認証方法としてそのアカウントに追加されますが、既存のメールアドレス／ユーザー名とパスワードによる資格情報も引き続き有効です。

<div id="offer-passwords-and-passkeys-at-login">
  ### ログイン時にパスワードとパスキーを提供する
</div>

同じログイン体験でパスキーとパスワードを併用でき、エンドユーザーはどちらの方法を使用するかを選択できます。データベース接続でパスキーを有効にしても、その接続でパスワード認証が許可されている限り、パスワードによるサインインは引き続き利用できます。

データベース接続のパスキーポリシーでは、ログイン時のパスキーの表示方法を制御します。

* 自動入力 (条件付き UI) : エンドユーザーがメールアドレスまたはユーザー名フィールドにフォーカスすると、資格情報マネージャーが、パスワードなどのほかの保存済み資格情報とともに、保存済みのパスキーを提示します。パスワードを使用したいユーザーは、この候補を無視して通常どおり資格情報を入力できます。

* パスキーボタン: ログイン画面には、標準の識別子フィールドとパスワードフィールドに加えて、**パスキーで続行**ボタンが表示されます。これにより、エンドユーザーはパスキーを選択することも、パスワードを使用することもできます。

自動入力、パスキーボタン、または両方を有効にできます。パスワードによるサインインを引き続き利用できるようにするには、接続でパスワード認証が許可されていることを確認し、接続のパスキーポリシーでこれらのオプションを設定してください。詳細については、[Configure Passkey Policy](/docs/ja-jp/authenticate/database-connections/passkeys/configure-passkey-policy)を参照してください。

<div id="passkeys-with-mfa-enabled">
  ### MFA が有効な場合のパスキー
</div>

<Tooltip tip="多要素認証（MFA）: SMS で送信されるコードなど、ユーザー名とパスワードに加えて認証要素を使用するユーザー認証プロセス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=MFA">MFA</Tooltip> が有効になっている場合、設定とリスク評価に応じて、ユーザーはパスキーで認証した後に MFA チャレンジの完了を求められることがあります。

デフォルトの動作では、使用した認証方法がパスワードでもパスキーでも、MFA チャレンジを完了する必要があります。パスキーは高いセキュリティを提供するため、ユーザーの負担を減らす目的で、パスキーで認証したユーザーについては MFA をスキップできます。これは post-login Action を使用して実現できます。

詳しくは、[Reduce friction with passkeys](/docs/ja-jp/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger#reduce-friction-with-passkeys) および [Multi-Factor Authentication](/docs/ja-jp/secure/multi-factor-authentication) を参照してください。

<div id="passkeys-with-multiple-custom-domains-mcd">
  ### パスキーと複数のカスタムドメイン (MCD)
</div>

<ReleaseStageNotice feature="複数のカスタムドメイン" stage="ea" plans="Enterprise" terms="true" />

テナントで複数のカスタムドメインが有効になっている場合、Auth0 はドメインとそのドメインのパスキーを 1 対 1 で対応付けます。パスキーが有効なデータベース接続を使用するユーザーは、作成されたドメインに紐付いたパスキーを使ってサインアップやログインを行えます。ユーザーがパスキーを登録できるのは 1 つのドメインに対してのみです (テナント上の複数のカスタムドメインのうち、最初に登録したドメイン) 。

パスワードレスログインでは、選択したカスタムドメインがパスワードレスログインフローのマジックリンクに反映されている必要があります。

<div id="relying-party-id-for-passkeys">
  ### パスキーの Relying Party ID
</div>

[relying party identifier (RP ID) ](https://www.w3.org/TR/webauthn-2/#relying-party-identifier) は、WebAuthn がパスキーなどの資格情報に関連付けるドメインです。RP ID は、認証に使用できるリクエスト元を定義します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  RP ID が正しく機能するには、アプリケーションのドメインを、[アプリケーション設定](https://manage.auth0.com/#/applications) の **Allowed Origins (CORS)** リストに追加する必要があります。
</Callout>

RP ID をオリジンのサフィックスとして定義すると、ユーザーは 1 つのパスキーでサブドメインをまたいで認証できます。たとえば、Web アプリケーションが `login.example.com` で提供され、ネイティブアプリケーションが `app.example.com` で提供されている場合、RP ID を `example.com` に設定すれば、エンドユーザーは 1 つのパスキーで両方のアプリケーション (および `example.com` の他のサブドメイン) を認証できます。

| 環境      | ルートドメイン                     | RP ID         |
| :------ | :-------------------------- | :------------ |
| Web     | `https://login.example.com` | `example.com` |
| iOS     | `app.example.com`           | `example.com` |
| Android | `assetlinks.json`           | `example.com` |

Auth0 では、RP ID をルートドメインまたは親ドメインに設定できるため、ユーザーは同じパスキーを使ってモバイルアプリケーションや Web アプリケーションで認証できます。複数のカスタムドメインを使用している場合は、各カスタムドメインに `rp.id` を設定することもできます。

RP ID をカスタマイズする方法については、[Configure Passkey Policy](/docs/ja-jp/authenticate/database-connections/passkeys/configure-passkey-policy) を参照してください。

<div id="learn-more">
  ## 詳細情報
</div>

* [パスキー認証を設定する](/docs/ja-jp/authenticate/database-connections/passkeys/configure-passkey-policy)
* [テナントログでパスキーイベントを監視する](/docs/ja-jp/authenticate/database-connections/passkeys/monitor-passkey-events-in-tenant-logs)
