影響を受けるエンドポイント
| エンドポイント | ユースケース |
|---|---|
| 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// | ユーザーアカウントのリンクを解除する |
Actions
スコープの変更
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 |
アクセストークンを取得する
- ブラウザーで実行される SPA: 認可エンドポイントを使用します。
- サーバー上で実行される Web アプリ、モバイルアプリ、サーバープロセス、または信頼性の高いアプリ: を使用します。
- クロス認証: リクエストが異なるドメインから送信される場合は、埋め込み型の Lock または auth0.js を使用してユーザーを認証します。
GET User by ID エンドポイントを使用します。そのため、まず Implicit グラントを使用してユーザーを認証し、トークンを取得します。以下は、IDトークンを取得してからそれを使ってエンドポイントを呼び出す、従来の方法の実装例です。
以下の例では、アクセストークンを取得する新しいアプローチを確認できます。
Management API にアクセスできるアクセストークンを取得するには、次のように設定します。
audienceをhttps://{yourDomain}/api/v2/に設定します- スコープ
${scope}を要求します - Auth0 が IDトークン とアクセストークンの両方を送信するように、
response_typeをid_token tokenに設定します
aud にはテナントの API URI、scope には ${scope}、sub にはログイン中のユーザーのユーザー ID が設定されていることに注意してください。
アクセストークンを取得したら、それを使ってエンドポイントを呼び出せます。この部分は変わらず、リクエストで変わるのは Bearer トークンとして使用する値だけです。レスポンスも変わりません。
トークンエンドポイント
GET User by ID エンドポイントを使用します。まず、Password Exchange grant を使用してユーザーを認証し、その後トークンを取得します。以下は、IDトークンを取得し (その後それを使ってエンドポイントを呼び出す) 、従来の方法を実装した例です。
以下の例では、アクセストークンも取得できる新しい方法を確認できます。
Management API にアクセスできるアクセストークンを取得するには、次のようにします。
audをhttps://{yourDomain}/api/v2/に設定しますread:current_userスコープを要求します
Bearer トークンとして使用する値だけです。レスポンスも同じです。
埋め込み型 Lock または auth0.js
-
レスポンスで IDトークン とアクセストークンの両方を要求します
responseType: 'token id_token' -
トークンのとして Management API を設定します
audience: 'https://YOUR_DOMAIN/api/v2/' -
必要な権限を要求します
scope: 'read:current_user' - アクセストークンを使用して Management API に対して認証します
Account Linking の変更
-
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トークンは
制限事項
aud クレームに設定できる値は 1 つのみです。トークンに複数の値が含まれている場合、Management API へのリクエストはエラーになります。