/oauth/token
に追加されました。/oauth/ro
エンドポイントの使用は2017年7月8日に廃止されました。/oauth/ro
エンドポイントは、IDトークンやアクセストークンのためにエンドユーザーがメールまたはSMSで受信するワンタイムパスワード(OTP)のやり取りに使用されていました。Auth0にはこのユースケースの/oauth/ro
に代わる新しいAPIが実装されているため、その新しいエンドポイントの使用をお勧めします。
影響のある機能
この変更がユーザーに影響するのは、リソース所有者のパスワードフロー(リソース所有者のパスワード付与またはROPGとも呼ばれる)を使用していて、Auth0ライブラリーやSDKを使わずに/oauth/ro
を直接呼び出す場合です。LockやAuth0.jsなどのAuth0ライブラリーは、内部で/oauth/ro
を使用しないように更新されました。lock-ライブラリーでは、その代わりに、Lockでパスワードレスモードが使用できるようになりました。
ユーザーの
/oauth/ro
ベースのアクセストークンが期限切れになると、強制的に再認証が行われます(強制ログアウトが必要)。これは、/oauth/ro
のリフレッシュトークンでは、/oauth/token
を呼び出して新しいアクセストークンを取得することができないからです。/oauth/ro
から/oauth/token
への移行時に、ログインしているユーザーはすべてログアウトしなければなりません。アクション
更求での変更
これまで、/oauth/ro
への要求には、以下のようなペイロードが含まれていました。
- トークン交換を実行するエンドポイントは
/oauth/token
になりました。 - Auth0独自の付与タイプは、特定の接続(またはレルム)からユーザーを認証するために使用されます。
- Auth0では、カスタムAPIで定義されたスコープの他に、標準OIDCスコープがサポートされます。
- 上記の
favorite_color
など、これらのどのカテゴリーにも該当しないスコープは、有効なスコープではなくなりました。 device
パラメーターは削除されました。audience
パラメーターは任意です。
/oauth/token
への要求のペイロードの例です。
- ここでは、付与タイプは標準の
password
でなく、password-realm
として指定されています。 client_id
、username
とpassword
パラメーターに変更はありません。- パスワードレルムの付与タイプを使用しているため、
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(移行)] まで下へスクロールして、 [Legacy
/oauth/ro
Endpoint(レガシー/oauth/roエンドポイント)] をオフにします。このスイッチをオフにすると、廃止されたエンドポイントがテナントで無効となり、使用を防ぐことができます。