メインコンテンツへスキップ

パスキー

パスキーの有効化

パスキーは SDK Portal から有効化します。Android側のインテグレーションに変更は不要です。有効化はプラットフォーム側で完結します。

メモ

パスキーは現在 Androidのみ 対応しています。iOS SDKはこの機能をサポートしていません。

技術的背景: Digital Asset Links (DAL)

AndroidのパスキーはDigital Asset Linksプロトコルを使用して、クライアントのネイティブアプリケーションとUnicoのWebドメインの間に検証可能で安全な関連付けを確立します。このリンクは、Googleモバイルアプリケーションでパスキーによる認証を行うために、Androidオペレーティングシステムの設計上必須です。

セキュリティ検証の仕組み

パスキーのキーペアを生成する前に、AndroidのAuthenticatorはサーバーのレスポンスに含まれるRelying Party ID (RP ID)を、Digital Asset Linksファイルに指定されたドメイン名と照合して検証します。この検証が成功しなければ、パスキーは機能しません。

SHA-256とは何か、なぜ必要なのか?

SHA-256フィンガープリントは、アプリの署名証明書から生成された一意のハッシュであり、アプリの真正性と整合性を識別するために使用されます。

この証明書は、Google Play Storeで配布する前にAPK/AABに署名するために使用されたキーに対応しています。このフィンガープリントを、Unicoが/.well-known/assetlinks.jsonというパスでホストするassetlinks.jsonファイルに登録する必要があります。このファイルはUnicoが完全に管理しており、サポートチケットを提出することでのみ更新できます。

assetlinks.jsonファイルの構造

このファイルには2つの特定のパーミッションを含める必要があります:

  • delegate_permission/common.handle_all_urls — Android App Links用
  • delegate_permission/common.get_login_creds — WebサイトとAndroidアプリ間での認証情報の共有用

…さらに、クライアントのパッケージ名SHA-256フィンガープリントが必要です。

メモ

SHA-256は2か所に登録する必要があります: 公開されているassetlinks.jsonファイルとサーバー設定(想定されるオリジン)です。使用しているすべての署名設定(デバッグ、リリース、任意のプロダクトフレーバー)のフィンガープリントを登録してください。それぞれが異なるフィンガープリントを生成するためです。

SHA-256の取得方法

Java Development Kit (JDK)のkeytoolツールを使用してSHA-256フィンガープリントを抽出するか、Google Play ConsoleのApp Signingセクション(Setup > App integrity)で直接確認することができます。

keytool -list -v -keystore <your-keystore.jks> -alias <key-alias>
前提条件のまとめ

パスキーの操作を成功させるには、以下の条件が満たされている必要があります:

  • アプリのパッケージ名とSHA-256フィンガープリントがUnicoのassetlinks.jsonファイルに登録されていること(フィンガープリントの登録・更新はサポートチケットを提出してください)
  • アプリのSHA-256フィンガープリントがサーバー設定(想定されるオリジン)に登録されていること
  • 使用しているすべての署名設定(デバッグ、リリース、プロダクトフレーバー)のフィンガープリントが登録されていること
参考資料