仕組み

- Steps 1 & 2: ユーザーは iOS デバイス上で Apple の SDK を使って認証を行い、レスポンスで認可コードを受け取ります。アプリを離れてブラウザーでログインする必要はありません。
-
Step 3: アプリケーションは Auth0 の
/oauth/tokenエンドポイントを呼び出し、Apple の認可コードを Auth0 のトークンと交換します。 - Step 4 & 5: Auth0 プラットフォームは、認可コードを Apple に送ってトークンと交換します。Auth0 はそのトークンを検証し、トークン内のクレームを使ってユーザーのアイデンティティを構築します。
- Step 6: Auth0 はユーザープロファイルを保存し、ルールを実行して認可を行った後、要求に応じて Auth0 の ( と ) を発行します。これらのトークンは、API を保護し、Auth0 で管理されるユーザーに使用されます。
前提条件
- Apple Developer アカウント (Apple の有料アカウント) を持っていること。 (iOS Developer University Program に参加している場合を除き、無料トライアルはありません。)
-
まだ完了していない場合は、Apple Developer Portal でアプリを登録 していること。 のアプリケーションの接続設定で使用するため、次の ID とキーを控えておいてください。
- App ID
- Apple Team ID
- Client Secret Signing Key
- Key ID
-
クラシックログインを使用している場合、またはアプリケーションに
Lock.jsを埋め込んでいる場合は、Lock.jsバージョン 11.16 以降を使用していることを確認してください。
Auth0 で接続を設定して有効にする
- Auth0 Dashboard > アプリケーション > アプリケーション に移動し、アプリケーションを選択して、歯車アイコンから設定ページを表示します。
-
ページ下部で Show Advanced Settings を選択し、次に Device Settings 表示を選択します。Native Social Login の Enable Sign In with Apple トグルを有効にします。

- iOS の App ID フィールドに、ネイティブアプリの App ID/Bundle Identifier を入力します。
- Auth0 Dashboard > Authentication > Social に移動し、Create Connection を選択します。
- Apple 接続を選択して同意します。
-
設定 タブで、次のフィールドに入力します。
- Apple Team ID
- Client Secret Signing Key
-
Key ID

- アプリケーション 表示を選択して、この接続をアプリケーションで有効にします。
- Save をクリックします。
ネイティブアプリはブラウザーからテストできません。つまり、Apple 接続の Try Connection ボタンは、Web ベースのフローのテストにのみ使用されます。
ログアウト
- Auth0 のリフレッシュトークンを取り消す
- iCloud Keychain に保存されている Auth0 のリフレッシュトークンを削除する
- iCloud Keychain に保存されている Apple のユーザー識別子を削除する また、ログアウトはユーザーの操作 (たとえば「ログアウト」ボタンのクリック) によって発生する場合もあれば、ユーザーが対象のアプリへのアクセスを取り消すことで発生する場合もある点に注意してください。後者は、ネイティブの ASAuthorizationAppleIDProvider.getCredentialState メソッドで確認できます。
Apple の IdP には、要求したスコープ (メールアドレス、名、姓など) が 最初の 応答時の ID トークン でしか返されないという注意点があります。ユーザーの削除のような、より破壊的なログアウト方法を取ると、プロファイル情報が失われる可能性があり、その場合はエンドユーザーがアプリの認可を解除してから再度認可する必要があります。