仕組み

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

- iOS の下にある App ID フィールドに、ネイティブアプリの App ID/Bundle Identifier を入力します。
- Auth0 Dashboard > Authentication > Social に移動し、Create Connection を選択します。
- Apple 接続を選択し、同意します。
-
Settings タブで、次のフィールドに入力します。
- 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トークンに含まれて返されるのは、最初のレスポンス時のみです。より破壊的なログアウト方法 (ユーザーの削除など) を取ると、ユーザープロファイル情報が失われる可能性があり、その場合、エンドユーザーはアプリの認可を解除してから再度認可し直す必要があります。