AppleでサインインをネイティブiOSアプリに追加する
ネイティブiOSアプリケーションに機能を追加して、ユーザーが「Appleでサインイン」を使用して認証できるようにすることができます。実装の詳細については、Auth0 iOS Swift - Appleでサインインクイックスタートをお試しください。
仕組み
ネイティブアプリの場合、「Appleでサインイン」ログインフローは次のように機能します。

ステップ1と2:ユーザーはiOSデバイス上のAppleのSDKを介して認証し、応答で認可コードを受け取ります。ユーザーはアプリを離れてブラウザを使用してログインする必要はありません。
ステップ3:アプリケーションはAuth0 の
/oauth/token
エンドポイントを呼び出して、Apple認可コードをAuth0トークンと交換します。ステップ4と5:Auth0プラットフォームは、トークンと引き換えにAppleと認可コードを交換します。Auth0はトークンを検証し、トークン内のクレームを使用してユーザーのIDを構築します。
ステップ6:Auth0はユーザープロファイルを保存し、ルールと認可を実行してから、要求に応じてAuth0のアクセストークン(更新トークンとIDトークン)を発行します。これらのトークンは、Auth0によって管理されるAPIとユーザーを保護するために使用されます。
前提条件
Auth0でネイティブアプリに「Appleでサインイン」を構成する前に、次の操作を行ってください。
Appleの有料アカウントであるApple Developerアカウントを持っている。(iOS Developer University Programに参加していない限り、無料トライアルはご利用いただけません。)
まだ登録していない場合は、Apple Developer Portalにアプリを登録してください。Auth0 Dashboardのアプリケーション接続設定の次のIDとキーをメモします。
App ID(アプリID)
Apple Team ID
クライアントシークレット署名鍵
キーID
クラシックログインフローを使用している場合、またはアプリケーションに
Lock.js
を埋め込んでいる場合は、Lock.js
バージョン11.16以降を使用していることを確認してください。
Auth0で接続を構成して有効にする
Apple Developerアカウントから必要な資格情報を取得したら、Auth0でアプリケーションクライアントと接続設定を構成する必要があります。
[Auth0 Dashboard(Auth0ダッシュボード)]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、アプリケーションを選択し、ギアアイコンを選択して設定ページを表示します。
ページ下部で[Show Advanced Settings(詳細設定を表示)]を選択し、[Device Settings(デバイス設定)]ビューを選択します。[Native Social Login(ネイティブソーシャルログイン)]で[Enable Sign In with Apple(Appleでサインインを有効にする)]を有効にします。
iOSで、App IDフィールドにネイティブアプリのApp ID/バンドル識別子を入力します。
[Auth0 Dashboard]>[Authentication(認証)]>[Social(ソーシャル)]に移動して、[Create Connection(接続の作成)]を選択します。
Apple接続を選択し、同意します。
[Settings(設定)]タブで、次のフィールドを記入しします。
[Apple Team ID(AppleチームID)]
クライアントシークレット署名鍵
キーID
[Applications(アプリケーション)]ビューにを選択し、アプリケーションの接続を有効にします。
[Save(保存)]をクリックします。
ログアウト
ネイティブiOSログイン実装では標準のブラウザベースのフローが使用されないため、アプリケーション所有者はログアウトを適切に実行するように注意する必要があります。アプリケーションがログアウトを実行する必要がある場合、次のアクションを実行してください。
iCloudキーチェーンに保存されているAuth0リフレッシュトークンを削除する
iCloudキーチェーンに保存されているAppleユーザー識別子を削除します。 また、ログアウトは、ユーザーのアクション(「ログアウト」ボタンのクリックなど)や、ユーザーが特定のアプリへのアクセスを取り消したことで発生する場合があることに注意してください。後者は、ネイティブのASAuthorizationAppleIDProvider.getCredentialStateメソッドを通じて示されます。