シングルページアプリケーションのManagement APIアクセストークンを取得する
Auth0のManagement Dashboardでなく、Auth0のManagement APIを使用して、アプリケーションとAPIを管理したい場合もあるでしょう。
Management APIエンドポイントを呼び出すには、Management APIトークンと呼ばれる特殊なアクセストークンを使って認証を行う必要があります。Management APIトークンとは、呼び出したいManagement APIトークンに固有の付与された権限(スコープとも呼ばれる)を含むJSON Web Tokens(JWT)を指します。
制限事項
シングルページアプリケーション(SPA)はパブリッククライアントで、(クライアントシークレットなどの)機微情報を安全に保存できないため、他のアプリケーションタイプとは異なり、フロントエンドからManagement APIトークンを取得する必要があります。つまり、SPAのManagement APIトークンには一定の制限事項が設けられています。具体的には、Management APIトークンはAuth0に現在サインインしているユーザーのコンテキスト内で発行され、更新はログインしたユーザーのデータのみに制限されます。これによって、Management APIの使用は制限されますが、ログインしたユーザーのユーザープロファイルの更新に関連するアクションを今までどおり実行することができます。
使用できるスコープとエンドポイント
Management APIトークンがSPA用に発行されると、以下のスコープ(およびエンドポイント)にアクセスすることができます。
現在のユーザーのスコープ | エンドポイント |
---|---|
read:current_user |
GET /api/v2/users/{id} GET /api/v2/users/{id}/enrollments |
update:current_user_identities |
POST/api/v2/users/{id}/identities DELETE /api/v2/users/{id}/identities/{provider}/{user_id} |
update:current_user_metadata |
PATCH /api/v2/users/{id} |
create:current_user_metadata |
PATCH /api/v2/users/{id} |
create:current_user_device_credentials |
POST /api/v2/device-credentials |
delete:current_user_device_credentials |
DELETE /api/v2/device-credentials/{id} |
Management APIトークンを使用してSPAからManagement APIを呼び出す
SPAから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アクセストークンにそれぞれ、必ず置き換えてください。