Skip to main content
/oauth/tokenパスワードがサポートされるようになりました。/oauth/ro エンドポイントの使用は 2017 年 7 月 8 日に非推奨となりました。/oauth/ro エンドポイントは以前、エンドユーザーがメールまたは SMS で受け取ったワンタイムパスワード (OTP) を、 に交換するために使用されていました。Auth0 では、このユースケース向けに /oauth/ro を置き換える新しい API を実装しており、新しいエンドポイントへの移行を推奨しています。

影響を受ける機能

この変更は、リソース所有者パスワードフロー (Resource Owner Password Grant または ROPG と呼ばれることもあります) を使用し、Auth0 のライブラリや SDK を使わずに /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_idusernamepassword の各パラメータは変わりません。
  • 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 の移行確認

  1. コードベースの移行を完了し、アプリがそのエンドポイントを呼び出していないことを確認したら、Dashboard > Tenant Settings > Advanced に移動します。
  2. Migrations までスクロールし、レガシー /oauth/ro Endpoint をオフにします。このスイッチをオフにすると、テナントでこの非推奨エンドポイントが無効になり、使用できなくなります。
このスイッチをオフにした結果、ログインに失敗する場合は、アプリケーション内のレガシーコードをまだ完全に削除できていないことを示しています。 本番環境で移行が正常に完了したら、このスイッチをオフにしてそのまま維持することで、非推奨機能が今後使用されないようにできます。