Skip to main content
Auth0のManagement Dashboardでなく、Auth0のManagement APIを使用して、アプリケーションとAPIを管理したい場合もあるでしょう。 エンドポイントを呼び出すには、Management APIトークンと呼ばれる特殊なアクセストークンを使って認証を行う必要があります。Management APIトークンとは、呼び出したいManagement APIトークンに固有の付与された権限(スコープとも呼ばれる)を含むJSON Web Tokens(JWT)を指します。

制限事項

シングルページアプリケーション(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_userGET /api/v2/users/
GET /api/v2/users//enrollments
update:current_user_identitiesPOST/api/v2/users//identities
DELETE /api/v2/users//identities//
update:current_user_metadataPATCH /api/v2/users/
create:current_user_metadataPATCH /api/v2/users/
create:current_user_device_credentialsPOST /api/v2/device-credentials
delete:current_user_device_credentialsDELETE /api/v2/device-credentials/
上記のスコープとエンドポイントにはレート制限が適用されます。

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

SPAからManagement APIトークン(Management APIのオーディエンスを使って生成)を取得し、トークンを使用してManagement APIを呼び出し、現在ログインしているユーザーの完全なユーザープロファイルを取得します。
  1. Management APIトークンを取得します
    1. ユーザー認証を行うには、ユーザーのログインまたはサインアップ時の移動先である認可エンドポイントにユーザーをリダイレクトします。
    2. 受け取ったManagement APIトークンは、JSON Webトークン形式になります。
    3. トークンをデコードし、その内容を確認します。
  2. Management APIを呼び出し、Get User by IDエンドポイントからログインしているユーザーのユーザープロファイルを取得します。
    1. エンドポイントを呼び出すには、要求のAuthorizationヘッダーで取得した、エンコードされたManagement APIトークンを含めます。
    2. USER_IDMGMT_API_ACCESS_TOKENプレースホルダーの値を、ログインしたユーザーのユーザーID(エンコードされたManagement APIトークンのsub値)とManagement APIアクセストークンにそれぞれ、必ず置き換えてください。

もっと詳しく

I