> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# AppleでサインインをネイティブiOSアプリに追加する

> Apple を使用してネイティブアプリにネイティブログイン機能を追加する方法を説明します。

ネイティブiOSアプリケーションに機能を追加して、ユーザーが「Appleでサインイン」を使用して認証できるようにすることができます。実装の詳細については、Auth0 [iOS Swift - Appleでサインインクイックスタート](/docs/ja-JP/ja-jp/quickstart/native/ios-swift-siwa)をお試しください。

<div id="how-it-works">
  ## 仕組み
</div>

ネイティブアプリの場合、「Appleでサインイン」ログインフローは次のように機能します。

<Frame>
  <img src="https://mintcdn.com/generaltranslationinc/pgNtkB0vi40DIRw0/docs/images/ja-jp/cdy7uua7fh8z/I7xtPQoqoAFiHQiT2p7p5/ad2c3c1487ef8756e74c8f08f9b3301c/apple-siwa-authn-flow.png?fit=max&auto=format&n=pgNtkB0vi40DIRw0&q=85&s=26fb9b4b95d2f9c93881687441244905" alt="Diagram of the Sign In with Apple Authentication Flow" width="1500" height="923" data-path="docs/images/ja-jp/cdy7uua7fh8z/I7xtPQoqoAFiHQiT2p7p5/ad2c3c1487ef8756e74c8f08f9b3301c/apple-siwa-authn-flow.png" />
</Frame>

* **ステップ1と2** ：ユーザーはiOSデバイス上のAppleのSDKを介して認証し、応答で認可コードを受け取ります。ユーザーはアプリを離れてブラウザを使用してログインする必要はありません。

  <Warning>
    nonceの使用は避けてください。nonceを使用すると、Appleへの要求がステップ4で失敗し、Auth0がユーザーに400エラー「Error from Apple connection（Apple接続からのエラー）」を返します。
  </Warning>

* **ステップ3** ：アプリケーションはAuth0 の`/oauth/token`エンドポイントを呼び出して、Apple認可コードをAuth0トークンと交換します。

* **ステップ4と5** ：Auth0プラットフォームは、トークンと引き換えにAppleと認可コードを交換します。Auth0はトークンを検証し、トークン内のクレームを使用してユーザーのIDを構築します。

* **ステップ6** ：Auth0はユーザープロファイルを保存し、ルールと認可を実行してから、要求に応じてAuth0のアクセストークン（更新トークンとIDトークン）を発行します。これらのトークンは、Auth0によって管理されるAPIとユーザーを保護するために使用されます。

<div id="prerequisites">
  ## 前提条件
</div>

Auth0でネイティブアプリに「Appleでサインイン」を構成する前に、次の操作を行ってください。

* Appleの有料アカウントである[Apple Developer](https://developer.apple.com/programs/)アカウントを持っている。（[iOS Developer University Program](https://developer.apple.com/support/compare-memberships/)に参加していない限り、無料トライアルはご利用いただけません。）
* まだ登録していない場合は、[Apple Developer Portalにアプリを登録](https://marketplace.auth0.com/integrations/apple-social-connection)してください。<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>のアプリケーション接続設定の次のIDとキーをメモします。

  * App ID（アプリID）
  * Apple Team ID
  * クライアントシークレット署名鍵
  * キーID
* クラシックログインフローを使用している場合、またはアプリケーションに`Lock.js`を埋め込んでいる場合は、`Lock.js` バージョン11.16以降を使用していることを確認してください。

<div id="configure-and-enable-the-connection-in-auth0">
  ## Auth0で接続を構成して有効にする
</div>

Apple Developerアカウントから必要な資格情報を取得したら、Auth0でアプリケーションクライアントと接続設定を構成する必要があります。

1. [［Auth0 Dashboard（Auth0ダッシュボード）］>［Applications（アプリケーション）］>［Applications（アプリケーション）］](https://manage.auth0.com/#/applications)に移動して、アプリケーションを選択し、ギアアイコンを選択して設定ページを表示します。

2. ページ下部で **［Show Advanced Settings（詳細設定を表示）］** を選択し、 **［Device Settings（デバイス設定）］** ビューを選択します。 **［Native Social Login（ネイティブソーシャルログイン）］** で **［Enable Sign In with Apple（Appleでサインインを有効にする）］** を有効にします。

   <Frame>
     <img src="https://mintcdn.com/generaltranslationinc/fJ7FJkQ9-WdlT49P/docs/images/ja-jp/cdy7uua7fh8z/2xkQ13r9yCb4GBZdeczZjJ/3e0bc35176c035c789bfc8d4eeaa0135/Native_App_-_Device_Settings_-_Japanese.png?fit=max&auto=format&n=fJ7FJkQ9-WdlT49P&q=85&s=252087c3032ee99c643b1860f15281f5" alt="Application Client Settings: Advanced Device Settings" width="1018" height="1171" data-path="docs/images/ja-jp/cdy7uua7fh8z/2xkQ13r9yCb4GBZdeczZjJ/3e0bc35176c035c789bfc8d4eeaa0135/Native_App_-_Device_Settings_-_Japanese.png" />
   </Frame>

3. **iOS** で、 **App ID** フィールドにネイティブアプリのApp ID/バンドル識別子を入力します。

4. [［Auth0 Dashboard］>［Authentication（認証）］>［Social（ソーシャル）］](https://manage.auth0.com/#/connections/social)に移動して、 **［Create Connection（接続の作成）］** を選択します。

5. **Apple** 接続を選択し、同意します。

6. **［Settings（設定）］** タブで、次のフィールドを記入しします。

   * **［Apple Team ID（AppleチームID）］**
   * **クライアントシークレット署名鍵**
   * **キーID**

     <Frame>
       <img src="https://mintcdn.com/generaltranslationinc/JoMgZsgQxj2_Gov3/docs/images/ja-jp/cdy7uua7fh8z/3mTTVYnrwbVYnUx5Mzy0V9/aac5097ada46262dbcff18030ab129e5/2025-01-13_16-45-07.png?fit=max&auto=format&n=JoMgZsgQxj2_Gov3&q=85&s=342e0ba1385678d507ecc7ac64f73a9d" alt="Apple Social Connection Settings" width="1037" height="1195" data-path="docs/images/ja-jp/cdy7uua7fh8z/3mTTVYnrwbVYnUx5Mzy0V9/aac5097ada46262dbcff18030ab129e5/2025-01-13_16-45-07.png" />
     </Frame>

7. **［Applications（アプリケーション）］** ビューにを選択し、アプリケーションの接続を有効にします。

8. **［Save（保存）］** をクリックします。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  ネイティブアプリをブラウザーからテストすることはできません。Apple接続にある **［Try Connection（接続を試す）］** ボタンは、Webベースのフローをテストするときに使用します。
</Callout>

<div id="logout">
  ## ログアウト
</div>

ネイティブiOSログイン実装では標準のブラウザベースのフローが使用されないため、アプリケーション所有者はログアウトを適切に実行するように注意する必要があります。アプリケーションがログアウトを実行する必要がある場合、次のアクションを実行してください。

* [Auth0リフレッシュトークンを取り消す](/docs/ja-JP/ja-jp/api/authentication#revoke-refresh-token)
* iCloudキーチェーンに保存されているAuth0リフレッシュトークンを削除する
* iCloudキーチェーンに保存されているAppleユーザー識別子を削除します。
  また、ログアウトは、ユーザーのアクション（「ログアウト」ボタンのクリックなど）や、ユーザーが特定のアプリへのアクセスを取り消したことで発生する場合があることに注意してください。後者は、ネイティブの[ASAuthorizationAppleIDProvider.getCredentialState](https://developer.apple.com/documentation/authenticationservices/asauthorizationappleidprovider/3175423-getcredentialstate)メソッドを通じて示されます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  AppleのIdPの特徴は、 **最初の** 応答で、要求されたスコープ（email、first name、last nameなど）のみをIDトークンに含めて返すことです。より破壊的なログアウトの方法（ユーザーを削除するなど）を採用すると、プロファイル情報が失われ、エンドユーザーがアプリの認証を解除して再認証しなければならなくなります。
</Callout>

<div id="learn-more">
  ## もっと詳しく
</div>

* [レート制限ポリシー](/docs/ja-JP/ja-jp/troubleshoot/customer-support/operational-policies/rate-limit-policy)
