Skip to main content

はじめに

1

新しいプロジェクトを作成

このクイックスタート用に新しい iOS または macOS プロジェクトを作成してください。Xcode で:
  1. FileNewProject(または ⌘+Shift+N
  2. 次のいずれかを選択します:
    • iOS タブ → App テンプレート
    • macOS タブ → App テンプレート
  3. プロジェクトを設定します:
    • Product Name: Auth0-Sample
    • Interface: SwiftUI
    • Language: Swift
    • Use Core Data: チェックを外す
    • Include Tests: チェックを入れる(推奨)
  4. 保存場所を選択し、Create をクリックします
これにより、SwiftUI を使用し Swift Package Manager に対応した標準的なアプリが作成され、Auth0 を統合するのに最適です。
2

Auth0 SDK を追加する

Auth0 ソフトウェア開発キット (SDK) を、好みのパッケージマネージャーを使ってプロジェクトに追加します。
Xcode で:
  1. FileAdd Package Dependencies…(または ⌘+Shift+K
  2. Auth0 SDK の URL を入力します:
  3. Add Package → アプリのターゲットを選択 → Add Package
3

Auth0 を設定する

新しい Auth0 アプリケーションを作成して、コールバックURLを設定します。
  1. Auth0 Dashboard にアクセスします
  2. Applications > Create Application に進み、名前を入力して Native を選択し、Create をクリックします
  3. Settings タブで、Client IDDomain を確認しておきます
  4. 次のURLを Allowed Callback URLs に追加します:
  1. 次のURLを Allowed Logout URLs に追加します:
  1. Save Changes をクリックします
4

アプリケーションクレデンシャルの設定

プロジェクトディレクトリに Auth0.plist ファイルを作成します。
Auth0.plist
Auth0.plist を Xcode にドラッグし、「Add to target」にチェックが付いていることを確認してください。
5

認証サービスの作成

AuthenticationService.swift を作成します。
  1. プロジェクトを右クリックし、New File…Swift File を選択します
  2. ファイル名を AuthenticationService にします
  3. 内容を次のコードに置き換えます:
AuthenticationService.swift
6

UI コンポーネントの作成

UI ファイルを作成してコードを追加する
7

認証フローの設定(任意)

ユーザーエクスペリエンスを向上させるために、次の方法でシステムアラートを最小限に抑えることができます。
  1. ユニバーサルリンクを使用する: リダイレクト中に表示される「“AppName” で開きますか?」というプロンプトをなくします。注: ASWebAuthenticationSession の許可アラートは引き続き表示されます。
  2. エフェメラルセッションを使用する: すべての許可アラートをなくします。注: Single Sign-On (SSO) と共有 Cookie が無効になります。
許可アラートありのデフォルトの動作を使用する場合は、この手順をスキップしてください。この設定は後から行うこともできます。
  1. Auth0 Dashboard → Applications → 対象のアプリ → SettingsAdvanced SettingsDevice Settings
  2. Apple Team IDbundle identifier を追加 → Save
  3. Xcode: Target → Signing & Capabilities+ CapabilityAssociated Domains
  4. webcredentials:{yourDomain} を追加
要件: 有料の Apple Developer アカウント、iOS 17.4+/macOS 14.4+
本番アプリに最適です。
8

アプリを実行する

Xcode で ⌘+R キーを押します。
  1. “Log In” をタップ → (デフォルト設定を使用している場合)アクセス許可のアラート → “Continue” をタップ
  2. ブラウザでログインを完了します
  3. プロファイルが表示されます!
チェックポイントこれで、iOS または macOS アプリに Auth0 によるログイン機能が完全に実装されました。

トラブルシューティングと詳細設定

ビルドエラー: ‘Auth0’ モジュールが見つかりません

解決策:
  1. Swift Package Manager: Package Dependencies を確認し、Auth0.swift が一覧に含まれていることを確認する
  2. CocoaPods: .xcodeproj ではなく .xcworkspace ファイルを開いていることを確認する
  3. Carthage: Auth0.xcframeworkFrameworks, Libraries, and Embedded Content に追加されていることを確認する
  4. クリーンして再ビルド: ⌘+Shift+K の後に ⌘+R
  5. 必要であれば Xcode を再起動する

アプリがクラッシュする: ‘Auth0.plist not found’

対処方法:
  1. Auth0.plist が Xcode のプロジェクトナビゲーターに含まれていることを確認する
  2. ファイルを選択 → Inspector → アプリのターゲットにチェックが入っていることを確認する
  3. ClientIdDomain キーに、ご自身の値が設定されていることを確認する
  4. 代替案: プログラムによる設定を使用する(下記の「高度な統合」セクションを参照)

ブラウザは開くがアプリに戻ってこない

対処方法:
  1. Auth0 Dashboard のコールバック URL が、バンドル識別子およびプラットフォームと完全に一致していることを確認する
  2. iOS の場合: URL には /ios/ を含める。macOS の場合: /macos/ を含める
  3. Xcode のバンドル識別子が Auth0 の設定と一致していることを確認する
  4. URL にタイプミスがないことを確認する(よくある例: コロン抜け、ドメイン形式の誤り)
  5. カスタムドメイン利用時: Auth0 のドメインではなく、自身のカスタムドメインを使用していることを確認する

毎回パーミッションアラートが表示される

これはカスタム URL スキーム使用時の、標準的な iOS/macOS のセキュリティ動作です。ユニバーサルリンクまたはエフェメラルセッションを使用してこのアラートを解消するには、ステップ 6 を参照してください。
カスタムドメイン を使用している場合は、Auth0 のドメインの代わりに、その値をすべての箇所で使用してください。例: tenant.auth0.com の代わりに login.example.com を使用するこれは、特定の機能を正しく動作させるには 必須 です:
  • Auth0.plist をカスタムドメインで更新する
  • コールバック URL / ログアウト URL にカスタムドメインを使用する
  • ユニバーサルリンクでは webcredentials:login.example.com を使用する

App Store への準備

  • パーミッションアラートをなくすためにユニバーサルリンクを設定する
  • 複数のプラットフォームバージョンおよびデバイスサイズでテストする
  • ネットワーク障害に対する適切なエラー処理を実装する
  • 生体認証付きで Keychain を使用する場合は、プライバシー使用目的の説明を追加する
  • 認証フローに関して App Store Review ガイドラインに従う

セキュリティのベストプラクティス

  • 本番環境では機密性の高い認証データをログに出力しない
  • App Transport Security (ATS) に準拠する
  • すべてのネットワークリクエストで HTTPS を使用する
  • Auth0 の API 証明書を ピン留めしないでください - Auth0 はこの手法を推奨していません

パフォーマンス最適化

  • すべての非同期処理で、UI 更新には @MainActor を正しく使用する
  • @Published プロパティで適切なメモリ管理を行う
  • 資格情報をオフラインアクセス用に Keychain に安全にキャッシュする
  • ユーザーのプロファイルは IDトークンから取得し、追加のネットワークリクエストは発生させない