ネイティブパスキーは、現在、限定早期アクセスでご利用いただけます。Auth0のリリースについては、「製品のリリース段階」を参照してください。
- Webベースのアプリケーション用のユニバーサルログインのパスキー
- AndroidおよびiOSアプリケーション用のネイティブパスキー
仕組み
ネイティブのパスキーは、Auth0 Authentication APIとネイティブiOSまたはAndroid APIの組み合わせを使用して、チャレンジフローをモバイルアプリケーションに直接埋め込みます。そうすることで、アプリケーションのサインアップとログインで統合されたエクスペリエンスを作り出すことができます。認証を完了するのに、ブラウザーでユーザーをリダイレクトする必要はありません。 以下の例は、パスキーのサインアップフローでユーザーが体験するかもしれないプロセスを説明したものです。- 新しいユーザーがモバイルアプリケーションを起動して、ログイン画面にアクセスします。新しいユーザーであるため、[サインアップ]ボタンを選択します。
- ユーザーが次の画面でメールアドレスを入力し、[アカウントの作成]を選択します。
- 次に、アプリケーションのパスキーを作成したいかがユーザーに尋ねられます。ユーザーが[続ける]を選択して続行します。
- パスキーを生成するために、ユーザーは生体認証や他の認証方法(PINの入力など)を使って、デバイスをローカルで認証しなければなりません。
- ローカルの認証が完了すると、新しいパスキーがユーザーのデバイスに保存され、iCloudやGoogleなどのパスキープロバイダーと同期されます。
- パスキーが保存されると、ユーザーが新規登録プロセスを続行して、アカウントを完了させます。
開始する前に
カスタムドメインを構成する
ネイティブのパスキーにはカスタムドメインの使用が必要です。始める前に、テナントにカスタムドメインが構成されていることを確認してください。詳細については、「カスタムドメイン」をお読みください。パスキーポリシーを構成する
AndroidまたはiOSのアプリケーションにネイティブのパスキーを実装するには、まずAuth0テナントでパスキーポリシーを構成しなければなりません。テナントを準備するには、「パスキーポリシーを構成する」に記載の手順に従います。アプリケーションを準備する
ネイティブのパスキーにアプリケーションを準備するには、[Device Settings(デバイスの設定)]を構成し、Passkey付与を追加する必要があります。構成には、またはを使用することができます。
Auth0 Dashboard
- [Applications(アプリケーション)]>[Application(アプリケーション)]に移動して、更新したいアプリケーションを選択します。
- [Settings(設定)]タブの下までスクロールして、[Advanced Settings(高度な設定)] を選択します。次に、[Device Settings(デバイスの設定)] タブを選択します。
- アプリケーションに必要な iOS または Android のセクションを完了させます。そして、[Save Changes(変更の保存)] をクリックします。
- [Advanced Settings(詳細設定)]セクションで [Grant Types(付与タイプ)] タブを選択します。
- [Passkey(パスキー)] の付与を有効にしてから、[Save Changes(変更の保存)] を選択します。
Mangement API
クライアント更新エンドポイントを呼び出して、以下を行います。grant_typesを更新して、urn:okta:params:oauth:grant-type:webauthnを含めるようにします。mobileオブジェクトを使用し、必要に応じてiOSとAndroidのデバイス設定を指定します。
パスキーフローを実装する
アプリケーションには以下のパスキーフローを定義することができます。- サインアップフロー:新しいユーザーがユーザー登録プロセスでパスキーを生成して保存できるようにします。
- ログインフロー:パスキーに登録済みの既存のユーザーが、ログインプロセスで保存済みのパスキーを使って認証できるようにします。
サインアップフロー
アプリケーションに初めてログインしようとしたときに、ユーザーがパスキーのサインアップフローを始めます。 ユーザーが既存の識別子を提供した場合には、代わりに、ログインフローの完了をユーザーに求めることをお勧めします。そうしないと、アクションが失敗します。フローの手順
- ユーザーがアプリケーションを開いて、新しいアカウントの登録を選択します。アプリケーションが要求するメールアドレスなどの識別子をユーザーが入力します。
-
アプリケーションがAuth0 Authentication APIのサインアップチャレンジ要求エンドポイントを呼び出して、サインアップチャレンジを始めます。
realmを指定しない場合には、テナントにデフォルトのディレクトリが使用されます。- デフォルトでは、メールが必須の識別子です。データベース接続でFlexible Identifierを有効にした場合は、
email、phone_numberとusernameの組み合わせを識別子として使用することができます。これらのオプションは必須または任意にできますが、Flexible Identifierの構成に一致する必要があります。
-
応答で、Auth0はPublicKeyCredentialCreationOptionsを
auth_sessionIDと一緒に返します。 -
アプリケーションが適切なネイティブAPIを使用して、ユーザー登録プロセスを完了します。
- 「Androidでの登録に関するドキュメント」をご覧ください。
- 「iOSでの登録に関するドキュメント」をご覧ください。
-
アプリケーションが
authn_responseの詳細などを含む、登録プロセスで取得した資格情報を使用して、トークンエンドポイントを呼び出します。 -
Auth0が新しいユーザーアカウントを作成して、要求されたトークンを返し、フローが完了します。
ログインフロー
既存のユーザーがアプリケーションにログインしようとしたときに、パスキーのログインフローを始めます。このフローは、既存のユーザーが最初のサインアップでアカウントにパスキーを保存している場合にのみ有効です。フローの手順
-
ユーザーがアプリケーションを起動して、ログイン画面を開きます。アプリケーションがAuthentication APIのログインチャレンジ要求エンドポイントを呼び出して、ログインチャレンジを始めます。
realmを指定しない場合には、テナントにデフォルトのディレクトリが使用されます。 -
応答で、Auth0はPublicKeyCredentialRequestOptionsを
auth_sessionと一緒に返し、アプリケーションでフローを続行します。 -
アプリケーションが適切なネイティブAPIを使用して、ログインプロセスを完了します。
- 「Androidでのログインに関するドキュメント」をご覧ください。
- 「iOSでのログインに関するドキュメント」をご覧ください。
-
アプリケーションが
authn_responseの詳細などを含む、ログインプロセスで取得した資格情報を使用して、トークンエンドポイントを呼び出します。 -
Auth0が資格情報を認証して、要求されたトークンを返し、フローが完了します。
リファレンス
モバイルアプリケーションにネイティブパスキーを実装する際には、以下のリソースを参考にすることができます。- Auth0 Authentication API
- Androidのリソース
- iOSのリソース