制限事項
シングルページアプリケーション(SPA)はパブリッククライアントで、(クライアントシークレット などの)機微情報を安全に保存できないため、他のアプリケーションタイプとは異なり、フロントエンドからManagement APIトークンを取得する必要があります。つまり、SPAのManagement APIトークンには一定の制限事項が設けられています。具体的には、Management APIトークンはAuth0に現在サインインしているユーザーのコンテキスト内で発行され、更新はログインしたユーザーのデータのみに制限されます。これによって、Management APIの使用は制限されますが、ログインしたユーザーのユーザープロファイルの更新に関連するアクションを今までどおり実行することができます。Auth0では、Management APIトークンをフロントエンドに配置することは推奨していません。なぜなら、ユーザーに対してユーザーメタデータの変更を許可することになるからです。ユーザーが自分のメタデータを変更できると、アプリケーションに有害な形で操作されてしまう可能性があります。また、顧客が、レート制限を超えるようにスパムを送信し、誰かのManagement APIにDoS攻撃を仕掛けることも可能になります。
使用できるスコープとエンドポイント
Management APIトークンがSPA用に発行されると、以下のスコープ(およびエンドポイント)にアクセスすることができます。PATCH /api/v2/users/エンドポイントを通じたパスワードの変更は、SPAに対して発行されたManagement APIトークンでは実行できません 。
現在のユーザーのスコープ | エンドポイント |
---|---|
read:current_user | GET /api/v2/users/ GET /api/v2/users//enrollments |
update:current_user_identities | POST/api/v2/users//identities DELETE /api/v2/users//identities// |
update:current_user_metadata | PATCH /api/v2/users/ |
create:current_user_metadata | PATCH /api/v2/users/ |
create:current_user_device_credentials | POST /api/v2/device-credentials |
delete:current_user_device_credentials | DELETE /api/v2/device-credentials/ |
上記のスコープとエンドポイントにはレート制限が適用されます。
Management APIトークンを使用してSPAからManagement APIを呼び出す
SPAからManagement APIトークン(Management APIのオーディエンスを使って生成)を取得し、トークンを使用してManagement APIを呼び出し、現在ログインしているユーザーの完全なユーザープロファイルを取得します。-
Management APIトークンを取得します。
- ユーザー認証を行うには、ユーザーのログインまたはサインアップ時の移動先である認可エンドポイントにユーザーをリダイレクトします。
- 受け取ったManagement APIトークンは、JSON Webトークン形式になります。
- トークンをデコードし、その内容を確認します。
-
Management APIを呼び出し、Get User by IDエンドポイントからログインしているユーザーのユーザープロファイルを取得します。
- エンドポイントを呼び出すには、要求の
Authorization
ヘッダーで取得した、エンコードされたManagement APIトークンを含めます。 USER_ID
とMGMT_API_ACCESS_TOKEN
プレースホルダーの値を、ログインしたユーザーのユーザーID(エンコードされたManagement APIトークンのsub
値)とManagement APIアクセストークンにそれぞれ、必ず置き換えてください。
- エンドポイントを呼び出すには、要求の