/oauth/token で パスワードがサポートされるようになりました。/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 へのリクエストのペイロードは以下のようになっていました。
- token exchange を実行する endpoint は、
/oauth/tokenになりました。 - 特定の接続 (またはレルム) のユーザーを認証するために、Auth0 独自のグラントタイプが使用されます。
- Auth0 は標準の OIDC スコープに加えて、カスタム API で定義したスコープもサポートしています。
- 上記の
favorite_colorのように、これらのカテゴリのいずれにも当てはまらないスコープは、無効になりました。 deviceパラメーターは削除されました。audienceパラメーターは省略可能です。
/oauth/token への request の payload の例です。
- ここでは、グラントタイプとして標準の
passwordではなくpassword-realmを指定します。 client_id、username、passwordの各パラメータは変わりません。- Password Realm グラントタイプを使用するため
realmが含まれ、以前の呼び出しで使われていたconnectionパラメータの代わりになります。 scopeパラメータもほぼ同じですが、OIDC 以外の値は受け付けません。audienceパラメータを追加して、そのトークンの対象となる API の を指定することもできます。
レスポンスの変更
/oauth/ro からのレスポンスは、次のような形式でした。
- 返されたアクセストークンは、
audienceパラメーターで指定された API が として RS256 を使用している場合、/userinfoエンドポイントの呼び出しに使用できます。また、カスタム API が指定されている場合は、その API の呼び出しにも使用できます。 - から要求された場合、ID トークンは強制的に RS256 で署名されます。
- は、
offline_accessスコープが付与され、かつ API で オフラインアクセスの許可 が有効になっている場合にのみ返されます。
/oauth/token から返される OIDC 準拠レスポンスの例を次に示します。
Verify の移行確認
- コードベースの移行を完了し、アプリがそのエンドポイントを呼び出していないことを確認したら、Dashboard > Tenant Settings > Advanced に移動します。
- Migrations までスクロールし、レガシー
/oauth/roEndpoint をオフにします。このスイッチをオフにすると、テナントでこの非推奨エンドポイントが無効になり、使用できなくなります。