RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/アプリ開発
アプリ開発/2026-07-02上級

パスワードを預からないログインへ — Rork Max アプリにパスキー認証を組み込む実装手順

Rork Max が生成した Swift アプリに AuthenticationServices のパスキー認証を組み込む手順です。Associated Domains の設定から WebAuthn サーバー検証、実機テストの落とし穴まで動くコードでまとめました。

Rork Max230パスキーWebAuthnAuthenticationServicesSwift48認証14

プレミアム記事

運営中のアプリのサポート窓口で、いちばん多い問い合わせが「パスワードを忘れました」だった時期があります。機能の不具合ではなく、ログインできないことへの返信に毎週時間を使う。個人開発では、この種の目立たない運用コストが積もっていきます。

パスキーに切り替えてから、その問い合わせはほぼ消えました。ユーザーは Face ID をかざすだけで、私のサーバーにはパスワードという「漏れたら終わりの秘密」がそもそも存在しません。ここでは、Rork Max が生成した Swift アプリにパスキー認証を組み込んだ手順を、私自身がつまずいた箇所まで含めて書きます。

パスキーで何が変わり、何は変わらないのか

パスキーは WebAuthn の公開鍵認証をベースにした仕組みです。端末側で秘密鍵を生成し、サーバーには公開鍵だけを渡します。ログイン時はサーバーが出すチャレンジに端末が署名し、サーバーが公開鍵で検証する。パスワードのように「同じ秘密を両側で持つ」構造ではないため、サーバーが漏洩しても資格情報は盗まれません。秘密鍵は iCloud キーチェーンで同期されるので、機種変更でも引き継がれます。

一方で、変わらないものもあります。サーバーは依然として必要です。チャレンジの発行と署名の検証、公開鍵の保存はサーバーの仕事で、ここを省略した「クライアントだけのパスキー」は成立しません。Rork Max はネイティブ Swift のクライアント側を生成してくれますが、この記事の半分はサーバー側の話になります。

なお「Apple のアカウントで代わりにログインする」方式とは役割が違います。あちらは ID 連携、パスキーは自分のアカウント基盤をそのまま無パスワード化する技術です。ID 連携側の実装は Sign in with Apple のサーバー検証とアカウント削除の実装 に書いたので、両方を並べる設計も検討できます。

最初に整える土台 — Associated Domains と AASA ファイル

パスキーは「どのドメインの資格情報か」をアプリとサーバーの双方で一致させる必要があります。この紐づけが Associated Domains です。手順は 3 点セットで覚えています。

  1. アプリ側に webcredentials:example.com の Associated Domains を持たせる
  2. サーバー側の https://example.com/.well-known/apple-app-site-association に AASA ファイルを置く
  3. AASA にアプリの App ID(TeamID.BundleID)を記載する

AASA ファイルはこれだけの JSON です。

{
  "webcredentials": {
    "apps": ["YOUR_TEAM_ID.com.example.yourapp"]
  }
}

配信時の条件が地味に厳格で、私は最初ここで半日を失いました。リダイレクトなしの HTTPS で返すこと、Content-Type: application/json で返すこと、パスは /.well-known/ 直下であること。拡張子は付けません。

Rork Max の場合、Xcode を開かずにビルドまで進む構成なので、Associated Domains は生成時のプロンプトで明示します。「webcredentials の Associated Domains として example.com を含めてください」と要求し、生成後に entitlements へ反映されているかを確認してから先へ進む。ケーパビリティが絡む機能は、生成コードが正しくても署名設定が欠けると実機で沈黙する、というのが Core NFC のときから変わらない教訓です。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
webcredentials と apple-app-site-association を最短で正しく通すための設定チェックリスト
登録とログインの両フローを Swift と Node.js(@simplewebauthn/server)の動くコードで最後まで通す
RP ID 不一致のエラー 1004 や AASA キャッシュなど、実機テストで詰まる点の切り分け手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

アプリ開発2026-07-05
Rork Max(Swift)と通常版(React Native)、どちらで作るか — 個人開発者のための意思決定フレーム
Rork Max のネイティブ Swift と通常版の React Native、どちらでアプリを作るかを迷ったときの判断軸を、コスト・機能境界・移行のしやすさから整理します。個人開発の視点で書いた意思決定フレームです。
アプリ開発2026-07-03
Rork Max アプリで通信の切断と復帰に強くする — NWPathMonitor によるオフライン検知と再送設計
Rork Max のネイティブ Swift アプリで、電波が切れても壊れない通信設計を NWPathMonitor で組み立てます。オフラインの検知、Low Data Mode やモバイル回線の判定、復帰時の自動再送キューまで、動く Swift コードで示します。
アプリ開発2026-07-03
Rork Max アプリでダウンロードをアプリ終了後も続ける — バックグラウンド URLSession の設計と再起動復帰
Rork Max のネイティブ Swift アプリで、アプリがサスペンド・終了されてもダウンロードを OS 側で継続させるバックグラウンド URLSession の設計を解説します。再起動復帰・resumeData・isDiscretionary の実測挙動まで動くコードで示します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →