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

影響を受ける機能

この変更は、リソース所有者資格情報交換を使用し、Auth0 のライブラリや SDK を使わずに /oauth/ro を直接呼び出している場合に影響します。
ユーザーの /oauth/ro ベースのアクセストークンの有効期限が切れると、Auth0 は再認証を強制します (強制ログアウトが必要です) 。これは、/oauth/ro のリフレッシュトークンを使って新しいアクセストークンを取得するために /oauth/token を呼び出すことができないためです。現在ログインしているすべてのユーザーは、/oauth/ro から /oauth/token への移行時に再度ログインする必要があります。

Actions

リクエストの変更

以前は、/oauth/ro へのリクエストのペイロードは次のようになっていました。
新しい実装における変更点は次のとおりです。
  • token exchange を実行するエンドポイントは /oauth/token になりました。
  • 特定の接続 (またはレルム) のユーザーを認証するために、Auth0 独自のグラントタイプが使用されます。
  • Auth0 は標準の OIDC スコープに加えて、カスタム API で定義したスコープもサポートしています。
  • 上記の favorite_color のように、これらのカテゴリのいずれにも当てはまらない scope は、無効になりました。
  • device パラメーターは削除されました。
  • audience パラメーターは省略可能です。
/oauth/token へのリクエストのペイロードの例を次に示します。
  • グラントタイプは、ここでは http://auth0.com/oauth/grant-type/passwordless/otp として指定します。
  • パラメーター client_idusername は変わりません。
  • client_secret は、 (例: regular web app) の場合に指定する必要があります。
  • ワンタイムパスワードは、password パラメーターではなく otp パラメーターで送信する必要があります。
  • realm は接続を識別するために使用され、以前の呼び出しで使われていた connection パラメーターの代わりになります。
  • scope パラメーターはほぼ同じですが、OIDC 以外の値は受け付けません。
  • audience パラメーターを追加して、トークンの対象となる API の を指定できます。

レスポンスの変更

/oauth/ro からのレスポンスは、次のような形式でした。
  • 返されたアクセストークンは、/userinfo エンドポイントを呼び出すために有効です (audience パラメーターで指定された API が、として RS256 を使用している場合) 。また、指定されていればカスタム API に対しても有効です。
  • から要求された場合、ID トークンは強制的に RS256 で署名されます。
  • offline_access スコープが付与され、API で オフラインアクセスの許可 が設定されている場合にのみ、が返されます。
以下は、/oauth/token から返される OIDC 準拠レスポンスの例です。

SDK を使用する場合のコード変更

アプリケーションで Android または iOS 向けの Auth0 Native library を使用している場合は、組み込んでいる library のバージョンが、少なくとも以下に記載の最小バージョン以上であることを確認してください。また、library の設定時には、OIDC Conformant flag を true に設定してください。

移行の確認

  1. 非推奨のエンドポイントを使用しているかどうかを確認するには、テナントログを確認し、非推奨通知で絞り込んだうえで、oauth/ro passwordless: This feature is being deprecated と表示されるログを探します。次のクエリを使って、直接検索することもできます: type:depnote AND description:*passwordless*
  2. コードベースの移行を終え、アプリがそのエンドポイントを呼び出していないことを確認したら、Auth0 DashboardTenant Settings > Advanced に移動します。
  3. Migrations までスクロールし、レガシー /oauth/ro エンドポイント をオフにします。このスイッチをオフにすると、テナント内でその非推奨エンドポイントが無効になり、使用できなくなります。
このスイッチをオフにした結果、ログイン失敗が発生する場合は、アプリケーションからレガシーコードをまだ完全に取り除けていないことを示しています。 本番環境での移行が正常に完了したら、このスイッチはオフにしてそのまま維持し、非推奨機能が以後使われないようにしてください。

詳しくはこちら