Skip to main content
Resource Owner Password (ROP) Flow ではアプリケーションがユーザーのパスワードを扱うため、サードパーティのクライアントでは使用しないでください。
推奨はしていませんが、高信頼アプリケーションでは、Resource Owner Password Flow ( Password Grant または ROPG とも呼ばれます) を使用してサーバーサイド API を呼び出すことができます。このフローでは通常、対話型フォームを使用して、ユーザーに資格情報 (ユーザー名とパスワード) の入力を求めます。総当たり攻撃対策が有効になっている場合、Auth0 が資格情報を検証する際に、攻撃をチェックして、攻撃が検出されると適切な対応を行うこともあります。 ただし、このフローをと併用すると、一部の機能が正常に動作しないことがあります。ただし、よくある問題の一部は回避できます。

攻撃対策とサーバーサイド API

総当たり攻撃対策とでは、ユーザーの IP アドレスが必要です。サーバーから API を呼び出すと、Auth0 はサーバーの IP アドレスをユーザーの IP アドレスとして扱い、総当たり攻撃対策と不審な IP スロットリングの判定に使用します。その結果、誤検知が発生し、正当なリクエストであっても攻撃対策によってユーザーがブロックされたり、警告がトリガーされたりする可能性があります。 これを避けるには、ユーザーの資格情報とあわせてユーザーの IP アドレスを Auth0 に送信し、その IP アドレスを信頼するようにアプリケーションを設定してください。
セキュリティ上の理由により、この方法で設定できるのは、認証済みアプリケーション (クライアントシークレットに基づく認証を使用するものなど) に限られます。認証済みアプリケーションは、保護されたリソース (通常はサーバーサイド) からのみ使用してください。シークレットを保存できないため、ネイティブアプリケーションやシングルページアプリケーション (SPA) では使用しないでください。

IP アドレスを信頼するようにアプリケーションを設定する

通常の Web アプリケーション または Machine-to-Machine Application のいずれかを登録します。アプリケーションの設定時に、次のようにします。
  1. 資格情報 で、None 以外の 認証方法 を選択します。
  2. 設定 > 詳細設定OAuth タブを開き、Trust Token Endpoint IP Header を有効にします。これにより、auth0-forwarded-for ヘッダーが、総当たり攻撃対策のためにユーザーの IP アドレスの信頼できる送信元として使用されます。この設定は、認証を行わないアプリケーションでは使用できません。

サーバーからユーザーの IP アドレスを送信する

  1. Resource Owner Password Flow を使用してトークンをリクエストする場合は、ユーザーの IP アドレスを値に含む auth0-forwarded-for ヘッダーを含めます。指定する IP アドレスが実際にそのユーザーのものであることを必ず確認してください。
    auth0-forwarded-for のようなヘッダー (または一般に、アプリケーションから送られるデータ) をユーザーの IP アドレスの情報源として信頼することには、リスクがあります。このヘッダーは簡単に偽装でき、攻撃対策の検証を回避できてしまうため、信頼できると確信できる場合にのみ使用してください。
  2. 総当たり攻撃対策と不審な IP スロットリングがトリガーされる際に無視する IP の許可リストを指定します。

総当たり攻撃対策と不審な IP スロットリングでの許可リスト

認証済みのアプリケーションが auth0-forwarded-for ヘッダーを送信するよう設定されている場合:
  • auth0-forwarded-for ヘッダーに含まれる IP アドレスのみが、総当たり攻撃対策および不審な IP スロットリングの許可リストと照合されます。
  • プロキシの IP アドレスは総当たり攻撃対策および不審な IP スロットリングでは無視されるため、許可リストに追加する必要はありません。
  • プロキシを使用する特定のクライアントを総当たり攻撃対策または不審な IP スロットリングの対象にしたくない場合は、それらを許可リストに追加してください。
auth0-forwarded-for ヘッダーは、クライアントシークレット を使用した認証済みの呼び出しでのみ受け入れられます。アプリケーションが認証されていない場合、または auth0-forwarded-for ヘッダーを送信するよう設定されていない場合:
  • 各リクエストの送信元 IP アドレスが、総当たり攻撃対策および不審な IP スロットリングの許可リストと照合されます。
  • IP プロキシを許可リストに追加すると、そのプロキシを通過するすべてのトラフィックが総当たり攻撃対策および不審な IP スロットリングの対象外になります。これはおそらく意図したものではありません。

漏えいパスワードの検知のレスポンスを処理する

テナントで 漏えいパスワードの検知 を有効にしている場合は、Auth0 Authentication API からのレスポンスを適切に処理できるよう、アプリケーションを設定する必要があります。 たとえば、ROP フローを使用してパスワードを送信した際に、Auth0 がそのパスワードの漏えいを検知すると、Authentication API は HTTP 401 Unauthorized ステータスコードと、次のボディを含むレスポンスを返します。
アプリケーションはこのエラーを処理し、ユーザーにメッセージをレンダリングして、対話型のパスワードリセットフローをトリガーする必要があります。

ログで確認する

設定が正しく機能している場合、ログに次の内容が表示されます。

詳細はこちら