メインコンテンツへスキップ
このガイドは、Auth0.swift SDKを使って、iOSやmacOSアプリで認証の追加とユーザプロファイル情報へのにアクセスを行う方法について説明します。このクイックスタートを使用するには、以下の手順に従います:
  • Auth0の無料アカウントにサインアップするか、Auth0にログインします。
  • 統合したいiOSまたはmacOSのアプリを準備します。または、ログインした後に、サンプルアプリを表示してダウンロードすることもできます。
    1

    Auth0を構成する

    Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションが必要です。Auth0アプリケーションは、開発中のアプリに対してどのように認証が動作して欲しいかを構成する場所です。

    Auth0アプリケーションを構成する

    対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、既存のネイティブ のAuth0アプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリがSDKを通じてAuth0 APIを呼び出す際に使用されます。このクイックスタートを使って構成されたすべての設定は、DashboardのAuth0アプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。完了済みの構成を見てみたい場合は、サンプルアプリをご覧ください。

    Callback URLとログアウトURLを構成する

    Auth0はリダイレクトでユーザーをアプリに戻すため、Callback URLとログアウトURLを呼び出します。Auth0は、ユーザーを認証した後にCallback URLを呼び出し、セッションのクッキーを削除した後にログアウトURLを呼び出します。Callback URLとログインURLを設定しないと、ユーザーはアプリにログインやログアウトが行えなくなり、アプリにエラーが発生します。
    iOS 17.4以降とmacOS 14.4以降では、ユニバーサルリンクをCallback URLおよびログアウトURLとして使用できます。有効になっている場合、古いバージョンのiOS/macOSでは、Auth0.swiftはフォールバックとしてカスタムURLスキームを使用します。この機能にはXcode 15.3以降と有料のApple Developerアカウントが必要です。
    アプリのプラットフォームに応じて、以下のCallback URLログアウトURL を追加してください。カスタムドメインがある場合は、Auth0テナントのドメインに代わってそちらを使用します。

    iOS

    https://{yourDomain}/ios/YOUR_BUNDLE_IDENTIFIER/callback,
    YOUR_BUNDLE_IDENTIFIER://{yourDomain}/ios/YOUR_BUNDLE_IDENTIFIER/callback
    

    macOS

    https://{yourDomain}/macos/YOUR_BUNDLE_IDENTIFIER/callback,
    YOUR_BUNDLE_IDENTIFIER://{yourDomain}/macos/YOUR_BUNDLE_IDENTIFIER/callback
    
    たとえば、iOSのバンドル識別子がcom.example.MyAppでAuth0ドメインがexample.us.auth0.comの場合には、次の値になります:
    https://example.us.auth0.com/ios/com.example.MyApp/callback,
    com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback
    

    関連ドメインを構成する

    この手順では有料のApple Developerアカウントが必要になります。Callback URLおよびログアウトURLとしてユニバーサルリンクを使用する必要があります。代わりにカスタムURLスキームを使用する場合はこの手順をスキップしてください。

    チームIDとバンドル識別子を構成する

    Auth0アプリケーションの設定ページに移動して最後までスクロールし、 [Advanced Settings(詳細設定)]>[Device Settings(デバイス設定)] を開きます。[iOS] セクションで**[Team ID(チームID)]** にApple Team IDを、[App ID(アプリID)] にアプリのバンドルIDを設定します。
    Auth0 Dashboard> [Applications(アプリケーション)] > [Applications(アプリケーション)] > [Native App(ネイティブアプリ)] > [Settings(設定)]タブ > [Advanced Settings(詳細設定)] > [Device Settings(デバイス設定)]タブ
    これで、アプリがAuth0テナントのapple-app-site-associationファイルに追加されます。

    関連ドメインの機能を追加する

    Xcodeで、アプリのターゲット設定の**[Signing & Capabilities(署名と機能)]** タブに移動し、[+ Capability(+機能)] ボタンを押します。それから**[Associated Domains(関連ドメイン)]** を選択します。
    [Xcode]> [Signing & Capabilities(署名と機能)]タブ > [Add New(新規追加)] > [Associated Domains(関連ドメイン)]
    次に、以下の エントリーを**[Associated Domains(関連ドメイン)]** の下に追加します:
    webcredentials:labs-fundtraining.us.auth0.com
    
    カスタムドメインがある場合は、Auth0テナントのドメインではなくそちらを使用してください。
    関連ドメインが動作するためには、iOSシミュレーター用に構築されている場合でも 、アプリが自分のチーム証明書で署名されている必要があります。Apple Teamには必ず、Auth0アプリケーションの設定ページで構成されたチームIDのものを使用してください。
    2

    SDKをインストールする

    Swift Package Managerを使用する

    Xcodeで以下のメニュー項目を開きます:[File(ファイル)] > [Add Package Dependencies…(パッケージの依存関係を追加する…)][Search or Enter Package URL(パッケージURLを検索または入力)] 検索ボックスに次のURLを入力します:
    https://github.com/auth0/Auth0.swift
    
    それから依存ルールを選択して**[Add Package(パッケージを追加)]** を押します。
    SPMの詳細については、公式ドキュメントを確認してください。

    CocoaPodsを使用する

    以下のラインをPodfileに追加します:
    pod 'Auth0', '~> 2.0'
    
    それからpod installを実行します。
    CocoaPodsの詳細は、公式ドキュメントを確認してください。

    Carthageを使用する

    以下のラインをCartfileに追加します:
    github "auth0/Auth0.swift" ~> 2.0
    
    それからcarthage bootstrap --use-xcframeworksを実行します。
    Carthageの詳細については、公式ドキュメントを確認してください。
    3

    SDKを構成する

    Auth0.swiftのSDKにはAuth0domainClient ID が必要です。これらの値はAuth0アプリケーションの設定ページで確認できます
    • domain :Auth0テナントのドメインです。カスタムドメインがある場合は、Auth0テナントのドメインではなくそちらを使用してください。
    • クライアントID :このクイックスタートで前にセットアップした、Auth0アプリケーションの英数字からなる一意のIDです。
    Auth0ドメインとクライアントIDの値を含むアプリバンドルにAuth0.plistという名前のplistファイルを作成します。
    SDKはプログラムコードによって構成することも可能です。詳細はREADMEをご覧ください。
    チェックポイント
    Auth0.swift SDKの構成を完了しました。アプリを実行して、SDKに関連したエラーを出していないことを確認します。
    4

    アプリケーションにログインを追加する

    ログインページを提示したいファイルにAuth0モジュールをインポートします。それからログイン ボタンのアクションでユニバーサルログインページを提示します。
    コールバックに基づいたAPIの代わりにasync/awaitまたはCombineを使用できます。詳細はREADMEをご覧ください。
    iOSアプリのユニバーサルログイン画面の例
    チェックポイント
    ログインボタンを押して次の点を確認します: アラートボックスが表示され、同意を求める。 [Continue(続行)]を選択するとSafariモーダルでユニバーサルログインページが開く。 ユーザー名とパスワード、またはソーシャルプロバイダーを使って、ログインまたはサインアップできる。 その後、Safariモーダルが自動的に閉じる。
    5

    アプリケーションにログアウトを追加する

    アプリにログインできるようになったら、ログアウトする方法が必要です。ログアウト ボタンのアクションでclearSession()メソッドを呼び出し、ユニバーサルログインセッションのクッキーを消去します。
    チェックポイント
    ログアウトボタンを押して次の点を確認します: アラートボックスが表示され、同意を求める。 [Continue(続行)]を選択するとSafariモーダルでページが開く。 その直後にSafariモーダルが自動的に閉じる。
    6

    ユーザープロファイル情報にアクセスする

    ログイン後に得るCredentialsインスタンスにはIDトークンが含まれます。IDトークンは、ログインしたユーザーに関連するプロファイル情報(メールアドレスやプロフィール写真など)を含みます。これらの詳細情報はアプリのユーザーインターフェイスをパーソナライズするために使用できます。Auth0.swiftのSDKには、IDトークンのようなJWTをデコードするためのユーティリティが含まれています。ユーザープロファイル情報にアクセスしたいファイルへJWTDecodeモジュールをインポートすることで開始します。それから、decode(jwt:)メソッドを使ってIDトークンをデコードし、そこに含まれるクレームにアクセスします。
    最新のユーザー情報はuserInfo(withAccessToken:)メソッドで取得できます。詳細はEXAMPLESをご覧ください。
    チェックポイント
    ログイン後にemail、picture、その他すべてのクレームにアクセスできることを確認します。

次のステップ

成功です!ここまで来れば、アプリケーションにログイン、ログアウト、ユーザープロファイル情報が備わっているはずです。これでクイックスタートチュートリアルは終了ですが、機能はまだまだたくさんあります。Auth0でできることについて詳しくは、以下をご覧ください。
  • Auth0 Dashboard - Auth0のテナントやアプリケーションを構成して管理する方法について説明します
  • Auth0.swift SDK - このチュートリアルで使用されているSDKをより詳しく説明します
  • Auth0 Marketplace - Auth0の機能性を拡張できる各種の統合を見つけられます
I