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

# シングルページアプリケーションのManagement APIアクセストークンを取得する

> シングルページアプリケーション（SPA）のManagement APIトークンに使用できるスコープとエンドポイントについて説明します。

Auth0のManagement Dashboardでなく、Auth0の[Management API](/docs/ja-jp/api/management/v2#!)を使用して、アプリケーションとAPIを管理したい場合もあるでしょう。

<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>エンドポイントを呼び出すには、Management APIトークンと呼ばれる特殊な[アクセストークン](/docs/ja-jp/secure/tokens/access-tokens)を使って認証を行う必要があります。Management APIトークンとは、呼び出したいManagement APIトークンに固有の付与された権限（スコープとも呼ばれる）を含む[JSON Web Tokens（JWT）](/docs/ja-jp/secure/tokens/json-web-tokens)を指します。

## 制限事項

シングルページアプリケーション（SPA）はパブリッククライアントで、（**クライアントシークレット** などの）機微情報を安全に保存できないため、他の[アプリケーションタイプ](/docs/ja-jp/get-started/applications)とは異なり、フロントエンドからManagement APIトークンを取得する必要があります。つまり、SPAのManagement APIトークンには一定の制限事項が設けられています。具体的には、Management APIトークンはAuth0に現在サインインしているユーザーのコンテキスト内で発行され、更新はログインしたユーザーのデータのみに制限されます。これによって、Management APIの使用は制限されますが、ログインしたユーザーのユーザープロファイルの更新に関連するアクションを今までどおり実行することができます。

<Warning>
  Auth0では、Management APIトークンをフロントエンドに配置することは推奨していません。なぜなら、ユーザーに対してユーザーメタデータの変更を許可することになるからです。ユーザーが自分のメタデータを変更できると、アプリケーションに有害な形で操作されてしまう可能性があります。また、顧客が、レート制限を超えるようにスパムを送信し、誰かのManagement APIにDoS攻撃を仕掛けることも可能になります。
</Warning>

## 使用できるスコープとエンドポイント

Management APIトークンがSPA用に発行されると、以下のスコープ（およびエンドポイント）にアクセスすることができます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  [PATCH /api/v2/users/{id}](/docs/ja-jp/api/management/v2#!/Users/patch_users_by_id)エンドポイントを通じたパスワードの変更は、SPAに対して発行されたManagement APIトークンでは**実行できません** 。
</Callout>

| 現在のユーザーのスコープ                             | エンドポイント                                                                                                                                                                                                                            |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `read:current_user`                      | [GET /api/v2/users/{id}](/docs/ja-jp/api/management/v2#!/Users/get_users_by_id)<br />[GET /api/v2/users/{id}/enrollments](/docs/ja-jp/api/management/v2#!/Users/get_enrollments)                                                   |
| `update:current_user_identities`         | [POST/api/v2/users/{id}/identities](/docs/ja-jp/api/management/v2#!/Users/post_identities)<br />[DELETE /api/v2/users/{id}/identities/{provider}/{user_id}](/docs/ja-jp/api/management/v2#!/Users/delete_user_identity_by_user_id) |
| `update:current_user_metadata`           | [PATCH /api/v2/users/{id}](/docs/ja-jp/api/management/v2#!/Users/patch_users_by_id)                                                                                                                                                |
| `create:current_user_metadata`           | [PATCH /api/v2/users/{id}](/docs/ja-jp/api/management/v2#!/Users/patch_users_by_id)                                                                                                                                                |
| `create:current_user_device_credentials` | [POST /api/v2/device-credentials](/docs/ja-jp/api/management/v2#!/Device_Credentials/post_device_credentials)                                                                                                                      |
| `delete:current_user_device_credentials` | [DELETE /api/v2/device-credentials/{id}](/docs/ja-jp/api/management/v2#!/Device_Credentials/delete_device_credentials_by_id)                                                                                                       |

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  上記のスコープとエンドポイントには[レート制限](/docs/ja-jp/troubleshoot/customer-support/operational-policies/rate-limit-policy)が適用されます。
</Callout>

## Management APIトークンを使用してSPAからManagement APIを呼び出す

SPAからManagement APIトークン（Management APIのオーディエンスを使って生成）を取得し、トークンを使用してManagement APIを呼び出し、現在ログインしているユーザーの完全なユーザープロファイルを取得します。

1. [Management APIトークンを取得します](/docs/ja-jp/secure/tokens/access-tokens/management-api-access-tokens/get-management-api-access-tokens-for-production)。

   1. ユーザー認証を行うには、ユーザーのログインまたはサインアップ時の移動先である認可エンドポイントにユーザーをリダイレクトします。
   2. 受け取ったManagement APIトークンは、[JSON Webトークン形式](/docs/ja-jp/secure/tokens/json-web-tokens/json-web-token-structure)になります。
   3. トークンをデコードし、その内容を確認します。
2. Management APIを呼び出し、[Get User by ID](/docs/ja-jp/api/management/v2#!/Users/get_users_by_id)エンドポイントからログインしているユーザーのユーザープロファイルを取得します。

   1. エンドポイントを呼び出すには、要求の`Authorization`ヘッダーで取得した、エンコードされたManagement APIトークンを含めます。
   2. `USER_ID`と`MGMT_API_ACCESS_TOKEN`プレースホルダーの値を、ログインしたユーザーのユーザーID（エンコードされたManagement APIトークンの`sub`値）とManagement APIアクセストークンにそれぞれ、必ず置き換えてください。

## もっと詳しく

* [テスト用にManagement APIアクセストークンを取得する](/docs/ja-jp/secure/tokens/access-tokens/management-api-access-tokens/get-management-api-access-tokens-for-testing)
* [本番環境のManagement APIアクセストークンの取得](/docs/ja-jp/secure/tokens/access-tokens/management-api-access-tokens/get-management-api-access-tokens-for-production)
