Documentation Index Fetch the complete documentation index at: https://auth0-feat-ionic-capacitor-quickstart-modernization.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
ネイティブパスキーは、現在、限定早期アクセスでご利用いただけます。Auth0のリリースについては、「製品のリリース段階 」を参照してください。
ネイティブパスキーは、従来の認証形式(ユーザー名/パスワードなど)に代わるフィッシング耐性のある代替手段であり、より簡単かつ安全なユーザーエクスペリエンスを提供します。実装の詳細については、「モバイルアプリケーション向けのネイティブパスキー 」を確認してください。
ネイティブパスキーは、Auth0とネイティブiOSまたはAndroid APIの組み合わせを使用して、チャレンジフローをモバイルアプリケーションに直接埋め込みます。以下に表示されたエンドポイントはAuth0 Authentication APIのサブセットとして、限定早期アクセスで現在利用することができます。このAPIの使用については、「Authentication APIについて 」を確認してください。
サインアップフロー
サインアップチャレンジを要求する
POST /passkey/register
新規ユーザーのパスキーサインアップフローを開始します。応答時に、Auth0はPublicKeyCredentialCreationOptions とセッションIDを返します。
要求パラメーター
パラメーター 説明 client_id必須 。アプリケーションのclient_idです。realm任意 。このユーザーに関連付ける接続の名前です。 接続が指定されていない場合は、テナントのデフォルトのディレクトリが使用されます。user_profile必須 。ユーザーのID情報を含むオブジェクトです。デフォルトでは、有効なemailと任意の表示nameが含まれます。 データベース接続に柔軟な識別子 を有効にした場合は、識別子としてemail、phone_number、usernameを組み合わせて使うことができます。これらのオプションは必須または任意にできますが、柔軟な識別子の構成に一致する必要があります。 渡された識別子(`emailなど)がディレクトリに既に存在する場合には、代わりに、ユーザーにログインフローの完了を求めるメッセージが表示されます。
コード例
要求
POST /passkey/register
Content-Type: application/json
{
"client_id" : "<CLIENT_ID>" ,
"realm" : "<OPTIONAL_CONNECTION>" ,
"user_profile" : {
"email" : "<VALID_EMAIL_ADDRESS>" ,
"name" : "<OPTIONAL_USER_DISPLAY_NAME>" ,
}
}
応答
HTTP/ 1.1 200 OK
Content-Type: application/json
{
"authn_params_public_key" : {
"challenge" : "<GENERATED_CHALLENGE_FOR_THIS_SESSION>" ,
"timeout" : <MILLISECONDS> ,
"rp" : {
"id" : "<THE_CUSTOM_DOMAIN>" ,
"name" : "<THE_CUSTOM_DOMAIN>"
},
"pubKeyCredParams" : [
{ type : 'public-key' , alg : -8 },
{ type : 'public-key' , alg : -7 },
{ type : 'public-key' , alg : -257 }
],
"authenticatorSelection" : {
"residentKey" : "required" ,
"userVerification" : "preferred"
},
"user" : {
"id" : "<GENERATED_ID>" ,
"name" : "<USER-ENTERED_IDENTIFIER>" ,
"displayName" : "<USER-ENTERED_DISPLAY_NAME_OR_IDENTIFIER_IF_MISSING>"
}
},
"auth_session" : "<SESSION_ID>"
}
チャレンジ要求を完了したら、アプリケーションはネイティブのAndroid またはiOS APIを使用して、ユーザー登録プロセスを続行することができます。
その後、ネイティブAPIから取得した情報を使用して新規ユーザーを認証 し、フローを完了する必要があります。
新規ユーザーを認証する
POST /oauth /token
トークンエンドポイントを使用して、指定された資格情報でユーザーを認証し、アカウントを作成して要求されたトークンを返します。
authn_responseパラメーターは、Web Authentication APIの仕様 に基づいています。ネイティブパスキーフローでは、このエンドポイントに渡された情報は、モバイルアプリケーションのネイティブAPIを介して取得することができます。
パラメーター 説明 grant_type必須 。次の値を含みます:urn:okta:params:oauth:grant-type:webauthnscope任意 。openidを使用してIDトークンを取得するか、openid profile emailを使用してIDトークンにユーザープロファイル情報を含めます。audience任意 。アクセストークンを取得したいAPIのAPI識別子です。auth_session必須 。最初のパスキーチャレンジ要求中に返されるセッションIDです。authn_response必須 。以下の項目を含むオブジェクトです。idrawIdtypeauthenticatorAttachmentresponseauthn_response.id必須 。Base64URLの資格情報IDです。authn_response.rawId必須 。Base64URLの資格情報IDです。authn_response.type必須 。次の値を含みます:public-keyauthn_response.authenticatorAttachment必須 。次の値を含みます:authn_response.response必須 。以下の項目を含むオブジェクトです。
要求パラメーター
POST /oauth/token
Content-Type: application/json
{
"grant_type" : "urn:okta:params:oauth:grant-type:webauthn" ,
"client_id" : "<CLIENT_ID>" ,
"realm" : "<OPTIONAL_CONNECTION>" ,
"scope" : "<OPTIONAL_REQUESTED_SCOPE>" ,
"audience" : "<OPTIONAL_REQUESTED_AUDIENCE>"
"auth_session" : "<SESSION_ID_FROM_THE_FIRST_REQUEST>" ,
"authn_response" : {
"id" : "<BASE64URL_ID>" ,
"rawId" : "<BASE64URL_RAWID>" ,
"type" : "public-key" ,
"authenticatorAttachment" : "platform|cross-platform" ,
"response" : {
"clientDataJSON" : "<BASE64URL_CLIENT_DATA_JSON>" ,
"attestationObject" : "<BASE64URL_ATTESTATION_OBJECT>" ,
<OTHER_PROPERTIES>
}
}
コード例
要求
HTTP/ 1.1 200 OK
Content-Type: application/json
{
"access_token" : "<BASE64_TOKEN>" ,
"refresh_token" : "<BASE64_TOKEN>" ,
"id_token" : "<BASE64_TOKEN>" ,
"token_type" : "Bearer" ,
"expires_in" : <SECONDS>
}
応答
POST /passkey/challenge
ログインフロー
ログインチャレンジを要求する
初回のサインアップ時にパスキーをアカウントに保存した既存のユーザーについて、パスキーログインフローを開始します。
応答時に、Auth0はPublicKeyCredentialRequestOptions とセッションIDを返します。
パラメーター 説明 client_id必須 。アプリケーションのclient_idです。realm任意 。ユーザーに関連付ける接続の名前です。 接続が指定されていない場合は、テナントのデフォルトのディレクトリが使用されます。
要求パラメーター
POST /passkey/challenge
Content-Type: application/json
{
"client_id" : "<CLIENT_ID>" ,
"realm" : "<OPTIONAL_CONNECTION>"
}
コード例
要求
HTTP/ 1.1 200 OK
Content-Type: application/json
{
"authn_params_public_key" : {
"challenge" : "<GENERATED_CHALLENGE_FOR_THIS_SESSION>" ,
"timeout" : <AUTH_TIMEOUT_IN_MILLISECONDS> ,
"rpId" : "<CUSTOM_DOMAIN>" ,
"userVerification" : "preferred"
},
"auth_session" : "<SESSION_ID>"
}
応答
POST /oauth/token
チャレンジ要求を完了したら、アプリケーションはネイティブのAndroid またはiOS APIを使用して、ログインプロセスを続行することができます。
その後、ネイティブAPIから取得した情報を使用して既存のユーザーを認証し 、フローを完了する必要があります。
既存のユーザーを認証する
トークンエンドポイントを使用して、指定された資格情報でユーザーを認証し、アカウントを作成して要求されたトークンを返します。
authn_responseパラメーターは、Web Authentication APIの仕様 に基づいています。ネイティブパスキーフローでは、このエンドポイントに渡された情報は、モバイルアプリケーションのネイティブAPIを介して取得することができます。
パラメーター 説明 grant_type必須 。次の値を含みます:urn:okta:params:oauth:grant-type:webauthnscope任意 。openidを使用してIDトークンを取得するか、openid profile emailを使用してIDトークンにユーザープロファイル情報を含めます。audience任意 。アクセストークンを取得したいAPIのAPI識別子です。auth_session必須 。最初のパスキーチャレンジ要求中に返されるセッションIDです。authn_response必須 。以下の項目を含むオブジェクトです。idrawIdtypeauthenticatorAttachmentresponseauthn_response.id必須 。Base64URLの資格情報IDです。authn_response.rawId必須 。Base64URLの資格情報IDです。authn_response.type必須 。次の値を含みます:public-keyauthn_response.authenticatorAttachment必須 。次の値を含みます:authn_response.response必須 。以下の項目を含むオブジェクトです。
要求パラメーター
POST /oauth/token
Content-Type: application/json
{
"grant_type" : "urn:okta:params:oauth:grant-type:webauthn" ,
"client_id" : "<CLIENT_ID>" ,
"realm" : "<OPTIONAL_CONNECTION>" ,
"scope" : "<OPTIONAL_REQUESTED_SCOPE>" ,
"audience" : "<OPTIONAL_REQUESTED_AUDIENCE>"
"auth_session" : "<SESSION_ID_FROM_THE_FIRST_REQUEST>" ,
"authn_response" : {
"id" : "<BASE64URL_ID>" ,
"rawId" : "<BASE64URL_RAWID>" ,
"type" : "public-key" ,
"authenticatorAttachment" : "platform|cross-platform" ,
"response" : {
"authenticatorData" : "<BASE64URL_AUTHENTICATORDATA>" ,
"clientDataJSON" : "<BASE64URL_CLIENTDATAJSON>" ,
"signature" : "<BASE64URL_SIGNATURE>" ,
"userHandle" : "<BASE64URL_USERHANDLE>"
},
"clientExtensionResults" : <OPTIONAL_OBJECT>
}
コード例
要求
HTTP/ 1.1 200 OK
Content-Type: application/json
{
"access_token" : "<BASE64_TOKEN>" ,
"refresh_token" : "<BASE64_TOKEN>" ,
"id_token" : "<BASE64_TOKEN>" ,
"token_type" : "Bearer" ,
"expires_in" : <SECONDS>
}
応答
HTTP/ 1.1 200 OK
Content-Type: application/json
{
"access_token" : "<BASE64_TOKEN>" ,
"refresh_token" : "<BASE64_TOKEN>" ,
"id_token" : "<BASE64_TOKEN>" ,
"token_type" : "Bearer" ,
"expires_in" : <SECONDS>
}