/oauth/token に password のサポートが追加されました。/oauth/ro エンドポイントの使用は 2017 年 7 月 8 日に非推奨となりました。/oauth/ro エンドポイントは以前、エンドユーザーがメールまたは SMS で受け取ったワンタイムパスワード (OTP) を、 と に交換するために使用されていました。Auth0 では、このユースケース向けに /oauth/ro を置き換える新しい API を実装しており、新しいエンドポイントへの移行を推奨しています。
影響を受ける機能
/oauth/ro を直接呼び出している場合、この変更の影響を受けます。Lock や Auth0.js などの Auth0 ライブラリは、内部で /oauth/ro を使用しないよう更新されています。lock- ライブラリを使用している場合は、代わりに Lock のパスワードレスモードを使用できるようになりました。
ユーザーの
/oauth/ro ベースのアクセストークンの有効期限が切れると、/oauth/ro のリフレッシュトークンを使って新しいアクセストークンを取得するために /oauth/token を呼び出すことができないため、Auth0 は再認証を要求します (強制ログアウトが必要です) 。/oauth/ro から /oauth/token への移行中は、現在ログインしているすべてのユーザーが再度ログインする必要があります。Actions
リクエストの変更点
/oauth/ro へのリクエストのペイロードは次のようになっていました。
- トークン交換を実行するエンドポイントは、
/oauth/tokenになりました。 - 特定の接続 (またはレルム) からユーザーを認証するには、Auth0 独自のグラントタイプを使用します。
- Auth0 は、標準の OIDC スコープに加えて、カスタム API で定義したスコープもサポートします。
- 上記の
favorite_colorのように、これらのカテゴリのいずれにも当てはまらないスコープは、有効なスコープではなくなりました。 deviceパラメーターは削除されました。audienceパラメーターは省略可能です。
/oauth/token へのリクエストペイロードの例です。
- ここでは、標準の
passwordではなく、password-realmをグラントタイプとして指定します。 client_id、username、passwordの各パラメーターはそのままです。- Password Realm グラントタイプを使用しているため
realmが含まれており、以前の呼び出しで使っていたconnectionパラメーターの代わりになります。 scopeパラメーターもほぼ同じですが、OIDC 以外の値は受け付けません。audienceパラメーターを追加して、トークンの対象となる API のを指定できます。
レスポンスの変更
/oauth/ro からのレスポンスは、次のような形式でした。
- 返されたアクセストークンは、
/userinfoエンドポイントの呼び出しに使用できます (audienceパラメーターで指定した API が、として RS256 を使用している場合) 。また、指定されている場合は、カスタム API の呼び出しにも使用できます。 - から要求された場合、IDトークンは必ず RS256 で署名されます。
- は、
offline_accessスコープが付与され、かつ API で Allow offline access が有効になっている場合にのみ返されます。
/oauth/token から返される OIDC 準拠レスポンスの例です。
移行の確認
- コードベースの移行が完了し、アプリがそのエンドポイントを呼び出していないことを確認したら、Dashboard > Tenant Settings > Advanced に移動します。
- Migrations までスクロールし、レガシー
/oauth/roEndpoint をオフにします。このスイッチをオフにすると、テナントで非推奨のエンドポイントが無効になり、使用できなくなります。