AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使えば、agent skills を利用して数分で Auth0 認証を自動追加できます。インストール:次に、AI アシスタントに次のように依頼します。AI アシスタントが Auth0 アプリケーションを自動的に作成し、認証情報を取得して、Auth0.swift SDK 依存関係の追加、Auth0.plist の設定、コールバック URL の設定、ログイン/ログアウトフローの実装まで行います。agent skills の完全なドキュメント →
はじめに
新しいプロジェクトを作成
このクイックスタート用に、新しい iOS または macOS のプロジェクトを作成します。Xcode で:
- File → New → Project (または ⌘+Shift+N)
- 次のいずれかを選択します。
- iOS タブ → App テンプレート
- macOS タブ → App テンプレート
- プロジェクトを設定します。
- Product Name:
Auth0-Sample - Interface: SwiftUI
- Language: Swift
- Use Core Data: チェックなし
- Include Tests: チェックあり (推奨)
- Product Name:
- 保存場所を選択して Create をクリックします
Auth0 SDK を追加
お好みのパッケージマネージャーを使用して、Auth0 SDK をプロジェクトに追加します。
- Swift Package Manager
- CocoaPods
- Carthage
Xcode で:
- File → Add Package Dependencies… (または ⌘+Shift+K)
- Auth0 SDK の URL を入力します。
- Add Package → アプリのターゲットを選択 → Add Package
Auth0 を設定する
新しい Auth0 アプリケーションを作成し、コールバックURLを設定します。
- Auth0 Dashboard に移動します
- Applications > Create Application > 名前を入力し、Native を選択して Create をクリックします
- Settings タブで、クライアントID と ドメイン を控えます
- 次のURLを Allowed Callback URLs に追加します:
- iOS
- macOS
- 次のURLを Allowed Logout URLs に追加します:
- iOS
- macOS
- Save Changes をクリックします
アプリケーションの認証情報を設定
プロジェクトディレクトリに
Auth0.plistを作成します:Auth0.plist
Auth0.plist を Xcode にドラッグし、“Add to target” がチェックされていることを確認します。認証サービスを作成する
AuthenticationService.swift を作成します。- プロジェクトを右クリック → New File… → Swift File
- 名前を
AuthenticationServiceにします - 内容を次のように置き換えます。
AuthenticationService.swift
認証フローを設定する(任意)
ユーザーエクスペリエンスを向上させるために、次の方法でシステムアラートを最小限に抑えられます。
- Universal Links を使用する: リダイレクト中に表示される「“AppName”で開きますか?」というプロンプトが表示されなくなります。注: ASWebAuthenticationSession の権限アラートは引き続き表示されます。
- Ephemeral Sessions を使用する: すべての権限アラートが表示されなくなります。注: これによりシングルサインオン (SSO) と共有 Cookie は無効になります。
- Universal Links
- Ephemeral Session
- Auth0 Dashboard → Applications → アプリ → Settings → Advanced Settings → Device Settings
- Apple Team ID と bundle identifier を追加 → Save
- Xcode: Target → Signing & Capabilities → + Capability → Associated Domains
- 追加:
webcredentials:{yourDomain}
チェックポイントこれで、iOS または macOS アプリで Auth0 ログインが完全に動作するようになりました!
トラブルシューティングと詳細設定
よくある問題と解決策
よくある問題と解決策
ビルドエラー: ‘Auth0’ モジュールが見つからない
解決策:- Swift Package Manager: Package Dependencies を確認し、
Auth0.swiftが一覧に表示されていることを確認します - CocoaPods:
.xcodeprojではなく.xcworkspaceファイルを開いていることを確認します - Carthage:
Auth0.xcframeworkが Frameworks, Libraries, and Embedded Content に追加されていることを確認します - クリーンして再ビルドします: ⌘+Shift+K の後に ⌘+R
- 必要に応じて Xcode を再起動します
アプリがクラッシュする: ‘Auth0.plist not found’
修正方法:Auth0.plistが Xcode のプロジェクトナビゲーター内にあることを確認します- ファイルを選択 → Inspector → アプリのターゲットにチェックが入っていることを確認します
ClientIdキーとDomainキーに自分の値が設定されていることを確認します- 別の方法: コードによる設定を使用します (下の詳細な統合セクションを参照)
ブラウザーは開くがアプリに戻らない
修正方法:- Auth0 Dashboard のコールバック URL が、bundle identifier とプラットフォームに完全に一致していることを確認します
- iOS の場合: URL に
/ios/を含めます。macOS の場合:/macos/を含めます - Xcode の bundle identifier が Auth0 の設定と一致していることを確認します
- URL にタイプミスがないことを確認します (よくある例: コロンの抜け、誤ったドメイン形式)
- カスタムドメインを使用している場合: Auth0 ドメインではなく、カスタムドメインを使用していることを確認します
毎回権限アラートが表示される
これは、カスタム URL スキームを使用する際の iOS/macOS の標準的なセキュリティ動作です。Universal Links または Ephemeral Sessions を使用してこのアラートを回避する方法については、ステップ 6 を参照してください。カスタムドメインの設定
カスタムドメインの設定
カスタムドメイン を使用している場合は、すべての箇所で Auth0 ドメインの代わりにその値を使用してください。例:
tenant.auth0.com ではなく login.example.com を使用します特定の機能を正しく動作させるには、これは必須です:Auth0.plistをカスタムドメインで更新します- コールバック URL とログアウト URL にカスタムドメインを使用します
- Universal Links には次を使用します:
webcredentials:login.example.com
本番環境へのデプロイ
本番環境へのデプロイ
App Store 公開の準備
- 権限アラートを回避するために Universal Links を設定します
- 複数のプラットフォームバージョンとデバイスサイズでテストします
- ネットワーク障害に対する適切なエラーハンドリングを実装します
- 生体認証とともに Keychain を使用する場合は Privacy Usage の説明を追加します
- 認証フローについては App Store Review Guidelines に従います
セキュリティのベストプラクティス
- 本番環境では機密性の高い認証データを決してログに出力しないでください
- App Transport Security (ATS) に準拠するよう実装します
- すべてのネットワークリクエストに HTTPS を使用します
- Auth0 API 証明書のピン留めはしないでください - Auth0 はこの方法を推奨していません
パフォーマンスの最適化
- すべての非同期処理で、UI 更新に
@MainActorが適切に使用されています @Publishedプロパティでは適切なメモリ管理が行われています- 認証情報はオフラインアクセス用に Keychain に安全にキャッシュされます
- ユーザープロファイルは IDトークン から取得されます (追加のネットワークリクエストは不要)
高度な統合
高度な統合