影響を受けるエンドポイント
エンドポイント | ユースケース |
---|---|
GET /api/v2/users/ | ユーザーの情報を取得する |
GET /api/v2/users//enrollments | ユーザーのGuardian MFA登録をすべて取得する |
PATCH /api/v2/users/ | ユーザーの情報を更新する |
DELETE /api/v2/users//multifactor/ | ユーザーのMFAプロバイダー設定を削除する |
POST /api/v2/device-credentials | デバイスの公開鍵を作成する |
DELETE /api/v2/device-credentials/ | デバイスの資格情報を削除する |
POST/api/v2/users//identities | さまざまなIDプロバイダーからユーザーアカウントをリンクする |
DELETE /api/v2/users//identities// | ユーザーアカウントのリンクを解除する |
アクション
スコープの変更
Management APIで実行できるアクションは、アクセストークンに含まれるスコープに依存します。この移行により、ログインしているユーザーのデータのみを更新できる制限付きアクセストークン、または任意のユーザーのデータを更新できるアクセストークンを取得できます。以下の表で、トークンに必要なスコープをケースとエンドポイントごとに確認してください。 例えば、read:users
というスコープを含むアクセストークンを取得した場合、GET /api/v2/users/{id}
エンドポイントを使用して任意のユーザーデータを取得することができます。しかし、トークンにread:current_user
スコープが含まれる場合、現在ログインしているユーザー(トークンが発行されたユーザー)の情報のみ取得することができます。
エンドポイント | 現在のユーザーのスコープ | 他のユーザーのスコープ |
---|---|---|
GET /api/v2/users/ | read:current_user | read:users |
GET /api/v2/users//enrollments | read:current_user | read:users |
POST/api/v2/users//identities | update:current_user_identities | update:users |
DELETE /api/v2/users//identities// | update:current_user_identities | update:users |
PATCH /api/v2/users/ | update:current_user_metadata | update:users |
PATCH /api/v2/users/ | create:current_user_metadata | update:users |
DELETE /api/v2/users//multifactor/ | delete:current_user_metadata | update:users |
POST /api/v2/device-credentials | create:current_user_device_credentials | create:device_credentials |
DELETE /api/v2/device-credentials/ | delete:current_user_device_credentials | delete:device_credentials |
アクセストークンの取得
Auth0は、前述のエンドポイントについてトークンを取得する方法を変更しました。ユーザーの認証とトークンの取得方法にはいくつか種類があり、認証に使用するテクノロジーとフローによって異なります。- ブラウザーで動作するSPA :認可エンドポイントを使用する。
- サーバー、モバイルアプリ、サーバープロセスまたは信頼性の高いアプリで動作するWebアプリ :トークンエンドポイントを使用する。
- クロス認証 :異なるドメインから要求が来る場合、ユーザー認証には埋め込みのロックまたはauth0.jsを使用する。
認可エンドポイント
このセクションでは、認可エンドポイントでトークンを取得する方法の違いについて例を用いて説明します。どのエンドポイントを移行したいかに関わらず変更点は同じで、唯一異なる点は要求で指定するスコープです。 以下の例では、GET User by ID
エンドポイントを使用して、ログインユーザーの完全なプロファイル情報を取得します。そのために、まず、暗黙的付与を使用してユーザーを認証し、トークンを取得します。以下は、IDトークンを取得し、それを使用してエンドポイントを呼び出す、以前の方法の実装例です。
audience
をhttps://{yourDomain}/api/v2/
に設定する- スコープ
${scope}
を要求する response_type
をid_token token
に設定し、Auth0がIDトークンとアクセストークンの両方を送るようにする
aud
はテナントのAPI URI、スコープ
は${scope}
、sub
はログインユーザーのユーザーIDに設定されています。
アクセストークンを取得したら、それを使ってエンドポイントを呼び出します。この部分は同じで、要求のうち、Bearer
トークンとして使用する値を除き変更はありません。応答も同じです。
トークンエンドポイント
このセクションでは、トークンエンドポイントでトークンを取得する方法の違いについて例を用いて説明します。どのエンドポイントを移行したいかに関わらず変更点は同じで、唯一異なる点は要求で指定するスコープです。 以下の例では、GET User by ID
エンドポイントを使用して、ログインユーザーの完全なプロファイル情報を取得します。まず、パスワード交換の付与タイプを使ってユーザーを認証してから、トークンを取得します。以下は、IDトークンを取得する(そして、それを使用してエンドポイントを呼び出す)以前の方法の実装例です。
aud
をhttps://{yourDomain}/api/v2/
に設定する- スコープ
read:current_user
を要求する
Bearer
トークンとして使用する値を除き変更はありません。応答も同じです。
埋め込みのロックまたはauth0.js
アプリケーションにロックまたはauth0.js v9を埋め込んだ場合、クロスオリジン認証を使用しています。これは、異なるドメインから要求が来る場合、ユーザーの認証に使用します。 Management APIへのアクセスとユーザーの管理にauth0.jsを使用する場合、スクリプトを更新する必要があります。 以下の例は、以前の方法です。-
応答でIDトークンとアクセストークンの両方を要求する
responseType:'token id_token'
-
Management APIを意図したトークンのオーディエンスとして設定する
audience:'https://YOUR_DOMAIN/api/v2/'
-
必要なアクセス許可を要求する
scope:'read:current_user'
- アクセストークンを使ってManagement APIで認証する
アカウントリンクの変更
この機能性の変更点は以下の通りです。-
Authorization
ヘッダーにIDトークンを使用することはできなくなりました。 -
Authorization
ヘッダーでアクセストークンを使用し、付与されたアクセス許可がupdate:users
の場合、要求のボディにはセカンダリアカウントのuser_id
またはIDトークンのいずれかを送信できます。 -
Authorization
ヘッダーでアクセストークンを使用し、付与されたアクセス許可がupdate:current_user_metadata
の場合、要求のボディにはセカンダリアカウントのIDトークンのみ送信できます。次のような条件があります。- IDトークンは
RS256
を使用して署名される必要があります(この値は、[Dashboard]>[Applications(アプリケーション)]>[Application Settings(アプリケーションの設定)]>[Advanced Settings(高度な設定)]>[OAuth] から設定できます) - IDトークンの
aud
クレームは、アプリケーションを特定し、アクセストークンのazp
クレームと同じ値でなければいけません。
- IDトークンは
制限
Management APIにアクセスするために使用されるアクセストークンは、aud
クレームの値が1つのみである必要があります。トークンに複数の値がある場合、Management APIへの要求はエラーになります。