> ## 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.

# パスキーチャレンジを開始する

> ユーザーが登録済みのパスキーを使用して Native または Web アプリケーションで認証できるように、パスキーチャレンジをリクエストします。

<div id="endpoint">
  ## エンドポイント
</div>

`POST /passkey/challenge`

ユーザーが事前に登録したパスキーを使用して Native または Web アプリケーションで認証できるように、パスキーの チャレンジ をリクエストします。このエンドポイントは、アプリケーションがプラットフォーム認証器を呼び出すために使用する WebAuthn パラメータと、パスキー グラントを使用して `/oauth/token` でトークンと交換する `auth_session` 値を返します。

このエンドポイントは、Native および Web アプリケーション向けの Passkey API を支えています。このエンドポイントは、Auth0 の[パスキー用トークン交換](https://auth0.com/docs/authenticate/database-connections/passkeys)グラントタイプと組み合わせて使用します。

<div id="remarks">
  ### 注記
</div>

* アプリケーションの[グラントタイプ](/docs/ja-jp/get-started/applications/application-settings#grant-types)に、`urn:okta:params:oauth:grant-type:webauthn`が含まれている必要があります。
* アプリケーションは[ファーストパーティアプリケーション](https://auth0.com/docs/get-started/applications/confidential-and-public-applications)である必要があります。サードパーティアプリケーションからこのエンドポイントを呼び出すことはできません。
* アプリケーションはOIDCに準拠している必要があります。
* リクエストは、テナント用に設定された[カスタムドメイン](https://auth0.com/docs/customize/custom-domains)に対して行う必要があります。デフォルトのAuth0ドメイン (`{tenant}.auth0.com`) への呼び出しは拒否されます。

<div id="request-body">
  ## リクエスト本文
</div>

<ParamField body="client_id" type="string" required>
  アプリケーションの`client_id`。
</ParamField>

<ParamField body="client_secret" type="string">
  アプリケーションの`client_secret`。`client_secret_post`トークンエンドポイント認証方法を使用する機密アプリケーションでは必須です。
</ParamField>

<ParamField body="realm" type="string">
  認証に使用するデータベース接続の名前。省略した場合、Auth0はそのアプリケーションに対してテナントのデフォルトのデータベース接続を使用します。
</ParamField>

<ParamField body="organization" type="string">
  ユーザーがサインインする[Auth0 Organization](https://auth0.com/docs/manage-users/organizations)のID。アプリケーションの`organization_usage`が`require`に設定されている場合は必須です。
</ParamField>

<div id="response">
  ## レスポンス
</div>

成功時のレスポンスには、アプリケーションからプラットフォーム認証器に渡す WebAuthn パラメータと、後続のアサーションをこのチャレンジに紐付ける `auth_session` 値が含まれます。

<ResponseField name="auth_session" type="string">
  不透明なセッション識別子。パスキーログインを完了するトークン交換リクエストで渡します。
</ResponseField>

<ResponseField name="authn_params_public_key" type="object">
  プラットフォーム認証器で使用する WebAuthn `PublicKeyCredentialRequestOptions`。

  <Expandable title="プロパティ">
    <ResponseField name="challenge" type="string">
      認証器が署名する、サーバー生成のチャレンジ。
    </ResponseField>

    <ResponseField name="timeout" type="integer">
      チャレンジの有効期間 (ミリ秒) 。この期間を過ぎるとチャレンジは期限切れとなり、再利用できません。
    </ResponseField>

    <ResponseField name="rpId" type="string">
      [Relying Party Identifier (RP ID) ](/docs/ja-jp/authenticate/database-connections/passkeys#relying-party-id-for-passkeys)。デフォルトはテナントのカスタムドメインです。テナントにカスタム Relying Party Identifier が設定されている場合、Auth0 は代わりに `rp.id` の値を返します。
    </ResponseField>

    <ResponseField name="userVerification" type="string">
      WebAuthn のユーザー検証要件。常に `preferred` が返されます。
    </ResponseField>
  </Expandable>
</ResponseField>

| ステータス | 説明                                                                                                                    |
| ----- | --------------------------------------------------------------------------------------------------------------------- |
| 200   | チャレンジが正常に生成されました。                                                                                                     |
| 400   | 無効なリクエスト。一般的な原因には、パラメータの欠落または無効、アプリケーションがパスキー認証用に設定されていないこと、カスタムドメインに対してリクエストが行われていないこと、アプリケーションがサードパーティであることなどがあります。 |
| 401   | 未認可。クライアント資格情報が無効です。                                                                                                  |
| 404   | テナントで Passkey API が有効になっていません。                                                                                        |
| 429   | リクエストが多すぎます。IP ごとのレート制限を超過しました。                                                                                       |
