- Web ベースのアプリケーション向けのUniversal Login passkeys
- Android および iOS アプリケーション向けの ネイティブパスキー。
- Web ベースおよびネイティブアプリケーション向けのEmbedded Login
仕組み
- 新規ユーザーがモバイルアプリケーションを起動し、ログイン画面を開きます。新規ユーザーのため、Sign Up ボタンを選択します。
- 次の画面で、ユーザーはメールアドレスを入力し、Create Account を選択します。
- 次に、ユーザーはアプリケーション用のパスキーを作成するかどうか確認されます。続行するには、Continue を選択します。
- パスキーを生成するには、ユーザーは生体認証や PIN の入力などの認証方法を使って、デバイス上でローカル認証を行う必要があります。
- ローカル認証が完了すると、新しいパスキーがユーザーのデバイスに保存され、iCloud や Google などのパスキープロバイダーと同期されます。
- パスキーが保存されると、ユーザーは新規ユーザー登録プロセスを続け、アカウント作成を完了します。
始める前に
カスタムドメインを設定する
パスキーポリシーを設定する
アプリケーションを準備する
Passkey グラントを追加する必要があります。これらの設定は、またはで行えます。
関連ドメイン
Auth0 Dashboard を設定する
- Applications > Applications に移動し、更新するアプリケーションを選択します。
- Settings タブの下部にある Advanced Settings を選択し、次に Device Settings タブを選択します。
- アプリケーションに応じて iOS と Android の各セクションを設定し、Save Changes をクリックします。
- Advanced Settings セクションで、Grant Types タブを選択します。
- Passkey グラント を有効にし、Save Changes を選択します。
Management API
grant_typesを更新し、urn:okta:params:oauth:grant-type:webauthnを含めます。- 必要に応じて、
mobileオブジェクトを使用して iOS および Android デバイスの設定を指定します。
パスキーフローを実装する
- サインアップフロー: ユーザー登録時に、新規ユーザーがパスキーを生成して保存できるようにします。
- ログインフロー: すでにパスキーを登録済みの既存ユーザーが、ログイン時に保存済みのパスキーで認証できるようにします。
サインアップフロー
フローの手順
- ユーザーがアプリケーションにアクセスし、新しいアカウントの登録を選択します。ユーザーは、メールアドレスなど、アプリケーションで求められた識別子を入力します。
- 次に、アプリケーションは Auth0 Authentication API の Request Signup Challenge エンドポイントを呼び出して、サインアップチャレンジを開始します。
realmを指定しない場合は、テナントのデフォルトディレクトリが使用されます。- デフォルトでは、必須の識別子はメールアドレスです。データベース接続で Flexible Identifiers を有効にしている場合は、代わりに
email、phone_number、usernameの組み合わせを使用できます。これらのオプションは必須にも任意にも設定でき、Flexible Identifier の設定と一致している必要があります。
-
これに対して、Auth0 は
PublicKeyCredentialCreationOptionsを、auth_sessionID およびrp.idとしてのrpIdとともに返します。レスポンスで返されるrpIdは、関連ドメインでパスキーを機能させるために Web フローで使用されるドメインと一致します。 -
次に、アプリケーションは適切なネイティブ API を使用して、ユーザー登録プロセスを完了します。
- Android の登録に関するドキュメントを確認してください。
- iOS の登録に関するドキュメントを確認してください。
-
次に、アプリケーションは登録プロセスで取得した認証情報 (
authn_responseの詳細を含む) を使用して、Token エンドポイントを呼び出します。 -
Auth0 は新しいユーザーアカウントを作成し、要求されたトークンを返してフローを完了します。
ログインフロー
フローの手順
-
ユーザーがアプリケーションを起動してログインを開始すると、アプリケーションは Authentication API の Request Login Challenge エンドポイントを呼び出して、ログインチャレンジを開始します。
realmを指定しない場合は、テナントのデフォルトディレクトリが使用されます。 -
これに対し、Auth0 は
PublicKeyCredentialRequestOptionsと、アプリケーション内でフローを継続するためのauth_sessionを返します。 -
次に、アプリケーションは適切なネイティブ API を使用してログイン処理を完了します。
- Android のログインに関するドキュメントを参照してください。
- iOS のログインに関するドキュメントを参照してください。
-
次に、アプリケーションはログイン処理で取得した認証情報 (
authn_responseの詳細を含む) を使用して、Token エンドポイントを呼び出します。 -
Auth0 は認証情報を検証し、要求されたトークンを返してフローを完了します。
参考資料
- Auth0 Authentication API
- Android のリソース
- iOS のリソース